El lenguaje de programación de alto nivel Programated Inquiry, Learning, or Teaching ( PILOT ) es un lenguaje de programación sencillo desarrollado en la década de 1960. [ 1 ] Al igual que su hermano LOGO , se desarrolló como una incursión temprana en la tecnología de la instrucción asistida por computadora .
PILOT es un lenguaje imperativo con una estructura similar a BASIC y FORTRAN en su diseño y estructura básicos. Sus palabras clave son caracteres individuales: T"type" para imprimir texto y A"accept" para introducir valores del usuario.
Historia
A partir de 1960, John Amsden Starkweather, profesor de psicología en el centro médico de la Universidad de California en San Francisco (UCSF), desarrolló un sistema sencillo para automatizar la creación de exámenes informatizados de preguntas y respuestas. En colaboración con el Distrito Escolar Primario de Dixie en el Condado de Marin , para 1962 el sistema ya funcionaba en un IBM 1620 y recibió el nombre de COMPUTEST. [ 2 ]
La UCSF instaló un IBM System/360 Modelo 50, y Starkweather solicitó una subvención a la Oficina de Educación de los Estados Unidos en 1965 para su posterior desarrollo. [ 3 ] Con esta financiación, Starkweather comenzó el desarrollo de una versión ampliada del sistema con mayor funcionalidad. Le dio a esta versión el nuevo nombre de PILOT. Las primeras versiones se mostraron en 1966, y la versión casi completa se publicó en 1968. Al año siguiente, se hizo pública. [ 4 ]
PILOT fue adoptado posteriormente por H. Dean Brown en el Laboratorio de Educación del Instituto de Investigación de Stanford (SRI). Brown popularizó PILOT como un lenguaje para uso directo de los niños. Los esfuerzos de Brown transformaron el lenguaje, pasando de uno destinado a ser utilizado por los maestros para escribir exámenes y materiales didácticos a uno destinado a ser utilizado para enseñar programación. [ 5 ]
PILOT se adaptó a varios sistemas, y se añadieron diversas extensiones y cambios en estos sitios. Esto dio lugar a varias implementaciones incompatibles con nombres como PYLON y NYLON. [ 2 ] En 1973, Starkweather reunió a varias personas interesadas en la enseñanza asistida por ordenador para desarrollar una especificación independiente de la máquina para el lenguaje, PILOT-73. También se definió un subconjunto portátil como Core PILOT. Core se adaptó posteriormente al Datapoint 2200 , un terminal con procesador Intel 8008 que más tarde se conocería como ordenador personal . Con un precio de 13 000 dólares, era más caro que muchos miniordenadores de la época y no tuvo mucho uso. Sin embargo, esta adaptación resultó muy útil después de que el Intel 8080 saliera al mercado y diera lugar a muchos microordenadores económicos . [ 3 ]
A finales de la década de 1970, la Western Washington University comenzó a expandir el lenguaje a Common PILOT. Esto sentó las bases para varias variantes posteriores de microcomputadoras. Processor Technology desarrolló una versión para su Sol-20 , pero la empresa quebró antes de su publicación. Sin embargo, esto inspiró varias otras versiones durante esta época. Entre ellas se encontraba Nevada PILOT para sistemas CP/M , basado en Common, que a su vez fue la base de Atari PILOT, que añadió un sistema gráfico con gráficos de tortuga [ 2 ] y soporte básico de sonido. [ 2 ] PILOT para Apple II se escribió en UCSD Pascal . Estas versiones llevaron a un resurgimiento del lenguaje PILOT para la enseñanza y dieron lugar a una versión ampliada conocida como Super PILOT, que añadió control de dispositivos para que los programas pudieran reproducir videodiscos y realizar tareas similares. [ 3 ]
Durante un tiempo se intentó crear un estándar único para el lenguaje, denominado IEEE Standard 1154-1991, pero este intento se abandonó en 2000. [ 3 ] [ 6 ]
sintaxis del lenguaje
Una línea de código PILOT contiene (de izquierda a derecha) los siguientes elementos de sintaxis :
- una etiqueta opcional
- una carta de mando
- una Y (para sí) o una N (para no) opcional.
- una expresión condicional opcional entre paréntesis
- un punto (":")
- un operando , o varios operandos delimitados por comas.
Una etiqueta también puede aparecer sola en una línea, sin ir seguida de otro código. La sintaxis para una etiqueta consiste en un asterisco seguido de un identificador (cadena alfanumérica con una letra inicial).
Letras de comando
Los siguientes comandos se utilizan en "core PILOT". Las líneas que comienzan con "R:" indican una observación (o un comentario) que explica el código que sigue.
R: La siguiente línea de entrada reemplaza el contenido actual del búfer de aceptación. A: R: La siguiente línea de entrada reemplaza el búfer de aceptación y la variable de cadena 'FREE'. A:$GRATIS R: Las siguientes 3 líneas de entrada se asignarán a las variables de cadena 'X', 'Y' y 'Z'. A:$X,$Y,$Z R: Entrada numérica asignada a la variable numérica "Q" A:#Q
- do
- Calcular y asignar un valor numérico. La mayoría de las implementaciones de PILOT solo tienen aritmética de enteros y no matrices . Ejemplo:
R: Asignar la media aritmética de #X y #Y a #AM C:#AM=(#X+#Y)/2
- D
- Dimensionar un array, en algunas implementaciones.
- mi
- Finaliza (regresa de) una subrutina o (si está fuera de una subrutina) aborta el programa. Siempre se usa sin ningún operando.
- J
- Saltar a una etiqueta. Ejemplo:
J:*REINICIAR
- METRO
- Comparar el búfer de aceptación con variables de cadena o literales de cadena . Ejemplo:
R:Búsqueda de aceptación de búfer para "VERDAD", el valor de MÉXICO y "JUVENIL", en ese orden. M:VERDAD,$MÉXICO,JUVENIL
La primera cadena coincidente (si la hay) que sea una subcadena del búfer de aceptación se asigna a la variable especial $MATCH. Los caracteres del búfer a la izquierda de la primera coincidencia se asignan a $LEFT, y los caracteres a la derecha se asignan a $RIGHT.
El indicador de coincidencia se establece en 'sí' o 'no', según se encuentre una coincidencia. Cualquier instrucción que tenga una 'Y' después de la letra de comando se procesa solo si el indicador de coincidencia está activado. Las instrucciones con 'N' se procesan solo si el indicador no está activado.
- norte
- Equivalente a TN: (escriba si la última coincidencia no fue exitosa)
- R
- El operando de R: es un comentario y, por lo tanto, no tiene ningún efecto.
- T
- 'Escriba' el operando como salida. Ejemplos:
R: La siguiente línea imprime una cadena literal. T: Gracias por su apoyo. R: La siguiente línea combina una cadena literal con una expresión variable. T:Gracias, $NAME.
- U
- Utilice (llame) una subrutina. Una subrutina comienza con una etiqueta y termina con E: Ejemplo:
R: Llamar a la subrutina que comienza en la etiqueta *INITIALIZE U:*INICIALIZAR
- Y
- Equivalente a TY: (escriba si la última coincidencia fue exitosa)
- Paréntesis
- Si una instrucción contiene una expresión entre paréntesis, se trata de una expresión condicional , y la instrucción se procesa solo si la prueba tiene un valor de 'verdadero'. Ejemplo:
R:Escriba un mensaje si x>y+z T(#X>#Y+#Z): Condición cumplida
Derivados
Las extensiones al núcleo de PILOT incluyen matrices y números de punto flotante en Apple PILOT para Apple II , y gráficos de tortuga inspirados en LOGO en Atari PILOT para computadoras Atari de 8 bits . [ 7 ]
Entre 1979 y 1983, el Grupo de Usuarios de PILOT del Reino Unido estuvo dirigido por Alec Wood, profesor de la Wirral Grammar School for Boys en Merseyside, Reino Unido. Se produjeron varias versiones en código máquina de un mini PILOT para los microordenadores de la época, y una escuela en Escocia desarrolló un tutorial interactivo de idiomas extranjeros donde los alumnos guiaban huellas por una ciudad formulando y respondiendo preguntas en alemán, francés, etc. Un artículo en la revista Computer Age de diciembre de 1979 describió una implementación temprana llamada Tiny Pilot y proporcionó un listado completo del código máquina.
Se publicaron versiones de PILOT escritas con intérpretes BASIC en las décadas de 1970 y principios de 1980. La edición de abril de 1973 del boletín de People's Computer Company incluía un sistema de este tipo escrito en HP Time-Shared BASIC para el sistema HP 2100. [ 8 ] PETPILOT (PILOT para Commodore PET) fue el primer lenguaje no Commodore para el PET y se escribió en Microsoft BASIC, que venía incluido con el PET, con un poco de ayuda de Bill Gates. Fue creado en 1979 por Dave Gomberg y podía ejecutarse en un PET de 4K (que nunca se comercializó) y funcionaba bien en los PET de 8K que Commodore distribuyó. Se escribió en la sala de estar de Larry Tessler en el PET número de serie 2. En 1978, Byte Magazine publicó un derivado de PILOT no Turing completo conocido como Waduzitdo por Larry Kheriarty. [ 9 ] [ 10 ]
Atari PILOT, lanzado en formato de cartucho ROM en 1981 para las computadoras Atari de 8 bits, agregó gráficos de tortuga y soporte de sonido. [ 11 ] Estas instrucciones usaban comandos de dos letras. Atari usó PILOT como uno de sus lenguajes principales en los campamentos de computación que organizaron a principios de la década de 1980. [ 12 ] El Clarkson College of Technology desarrolló ZPILOT en 1983 para el Zenith Z-100 . [ 13 ]
Vanilla PILOT de 1983 para Commodore 64 también añadió gráficos de tortuga, [ 14 ] al igual que Super Turtle PILOT , que se publicó como un listado de entrada de texto en el número de octubre de 1987 de la revista COMPUTE!. [ 15 ]
En 1991, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) publicó un estándar para Pilot como IEEE Std 1154-1991. Posteriormente fue retirado. [ 16 ] Eric Raymond implementó una implementación de referencia basada en este estándar , la cual se mantuvo —a regañadientes— durante los siguientes 15 años. [ 17 ]
En 1990, Tom Nielsen, EdD, desarrolló y programó eSTeem PILOT para ordenadores Atari ST. Basado en los estándares IEEE para PILOT, incluye características específicas de Atari, como el control de dispositivos Laserdisc y CD-ROM. [ 18 ]
Una implementación amateur de 2018, psPILOT, basada en parte en el estándar IEEE, se implementó utilizando el lenguaje de scripting PowerShell de Microsoft. [ 19 ]
Referencias
- ↑ Rob Linwood. "Centro de recursos PILOT" . Proyecto Sourceforge . Consultado el 13 de octubre de 2011 .
- 1 2 3 4 Norma IEEE para la investigación, el aprendizaje o la enseñanza programados (PILOT) (Informe técnico). IEEE. 22 de agosto de 1991. doi : 10.1109/IEEESTD.1991.108548 . ISBN 978-0-7381-1184-1.
- 1 2 3 4 "PILOTO" . EDM2 . 4 de noviembre de 2022.
- ^ Xiuzhi Zhou (1998). "Registro de los artículos de John A. Starkweather, 1965-1985" . Biblioteca de la Universidad de California, San Francisco . Consultado el 13 de octubre de 2011 .
- ↑ Piloto estudiante (PDF) . Atari. 1981.
- ↑ "IEEE 1154-1991: Norma IEEE para la investigación, el aprendizaje o la enseñanza programados (PILOT)" . IEEE .
- ↑ Jim Conlan, Tracy Deliman (1983). Atari PILOT para principiantes . Reston Publishing. ISBN 9780835903028.
- ↑ "PILOTO '73" . People's Computer Company . Abril de 1973. págs. 11–17 .
- ↑ Brian Connors (6 de abril de 2001). "Waduzitdo 2001" . Consultado el 13 de octubre de 2011 .
- ↑ Larry Kheriarty (septiembre de 1978). "WADUZITDO: Cómo escribir un idioma en 256 palabras o menos". Byte .
- ↑ "PILOTO de Atari" . Atari Mania .
- ↑ "Campamentos de informática Atari" (PDF) .
- ↑ Zimmerman, Frederick (marzo-abril de 1984). "Un Z100 en cada escritorio: Clarkson College" . Sextant . N.° 9. págs. 8-14 . Consultado el 12 de febrero de 2026 .
- ↑ "Vanilla PILOT, PILOT con gráficos de tortuga" . Infoworld . 12 de septiembre de 1983. págs. 67–69 . Consultado el 13 de octubre de 2011 .
- ↑ Atarimagazines.com - ¡COMPUTE! Número 89, octubre de 1987, pág. 74
- ↑ Norma IEEE 1154-1991 para la investigación, el aprendizaje o la enseñanza programados (PILOT) . Comité de Normas IEEE. 1991. doi : 10.1109/IEEESTD.1991.108548 . ISBN 0-7381-1184-8Archivado del original el 11 de marzo de 2000.
- ↑ "Veinte años después" . 27 de septiembre de 2016.
- ↑ "Comunicado de prensa: Proyecto piloto eSTeem" .
- ↑ "psPilot" . GitHub .
Lecturas adicionales
- John Starkweather (1985). Guía del usuario de Pilot . Prentice-Hall. ISBN 978-0-13-937755-6.
- Lenguajes de programación educativa
- estándares IEEE