PILOTO
Investigación, aprendizaje o enseñanza programados (PILOT) es un lenguaje de programación simple de alto nivel desarrollado en la década de 1960. Al igual que su hermano menor, LOGO, fue una incursión temprana en la tecnología de instrucción asistida por computadora.
PILOT es un lenguaje imperativo similar en estructura a BASIC y FORTRAN en su diseño y estructura básicos. Sus palabras clave son caracteres individuales, T
para "tipo" para imprimir texto, o A
para "aceptar", para ingresar valores del usuario.
Su Historia
PILOT fue desarrollado por John Amsden Starkweather, profesor de psicología en el centro médico de la Universidad de California en San Francisco. En 1962, desarrolló un lenguaje simple para automatizar pruebas de aprendizaje llamado Computest. A partir de 1968, desarrolló un proyecto de seguimiento llamado PILOT, para varias computadoras de la época, como la SDS 940.
Sintaxis del lenguaje
Una línea de código PILOT contiene (de izquierda a derecha) los siguientes elementos de sintaxis:
- una etiqueta opcional
- a command letter
- un Y opcional (para sí) o N (para no)
- una expresión condicional opcional en paréntesis
- un colon (":")
- an operand, o múltiples operands delimitados por comas.
Una etiqueta también puede estar sola en una línea, no seguida de otro código. La sintaxis de una etiqueta es un asterisco seguido de un identificador (cadena alfanumérica con carácter inicial alfabético).
Letras de mando
Los siguientes comandos se utilizan en "core PILOT". Líneas que comienzan con "R:" indicar una observación (o un comentario) que explique el código que sigue.
- A
- Aceptar entrada en "accept buffer". Ejemplos:
R:Siguiente línea de entrada reemplaza el contenido actual del amortiguador de aceptación A: R:Siguiente línea de entrada reemplaza a aceptar buffer, y variable de cadena 'FREE' A:$FREE R:Siguiente 3 líneas de entrada asignadas a variables de cadena 'X', 'Y' y 'Z' A:$X,$Y,$Z R: Entrada numérica asignada a la variable numérica "Q" A:#Q
- C
- Computar y asignar valor numérico. La mayoría de las implementaciones PILOT sólo tienen aritmética entero, y no hay arrays. Ejemplo:
R:Assign arithmetic mean of #X and #Y to #AM C:#AM=(#X+#Y)/2
- D
- Dimensionar un array, en algunas implementaciones.
- E
- Fin (retorno de) la subrutina o (si fuera de una subrutina) programa de aborto. Siempre se usa sin operar.
- J
- Salta a una etiqueta. Ejemplo:
J:*RESTART
- M
- Coincide con el amortiguador aceptado contra variables de cadena o literales de cadena. Ejemplo:
R:Búsqueda acepta el amortiguador por la verdad, el valor de MÉXICO y "YOUTH", en ese orden M: Verdad, MÉXICO, YOUTH
La primera cadena de coincidencia (si la hay) que es una subcadena del búfer de aceptación se asigna a la variable especial $COINCIDIR. Los caracteres del búfer a la izquierda de la primera coincidencia se asignan a $LEFT y los caracteres de la derecha se asignan a $RIGHT.
La marca de coincidencia se establece en 'sí' o 'no', dependiendo de si se realiza una coincidencia. Cualquier declaración que tenga una Y después de la letra de comando se procesa solo si se establece el indicador de coincidencia. Las declaraciones con N se procesan solo si el indicador no está establecido.
- N
- Equivalente a TN: (tipo si el último partido no tiene éxito)
- R
- El operado de R: es un comentario, y por lo tanto no tiene efecto.
- T
- Tipo operando como salida. Ejemplos:
R:La siguiente línea imprime una cadena literal T:Gracias por tu apoyo. R:La siguiente línea combina una cadena literal con una expresión variable Gracias.
- U
- Usar (llamar) una subrutina. Una subrutina comienza con una etiqueta y termina con E: Ejemplo:
R: Call subroutine starting at label *INITIALIZE U:*INITIALIZE
- Y
- Equivalente a TY: (tipo si el último partido exitoso)
- Parentheses
- Si hay una expresión paréntesis en una declaración, es una expresión condicional, y la declaración se procesa sólo si la prueba tiene un valor de 'verdad'. Ejemplo:
R:Tipo de mensaje si x títuloy+z T(#X título#Y+#Z):Condition met
Derivados
Las extensiones del núcleo de PILOT incluyen matrices y números de coma flotante en Apple PILOT, y la implementación de gráficos de tortuga inspirados en LOGO en Atari PILOT.
Entre 1979 y 1983, Alec Wood, un profesor de Wirral Grammar School for Boys, Merseyside, Reino Unido, dirigió el grupo de usuarios de UK PILOT. Se produjeron varias versiones en código de máquina de un mini PILOT para las microcomputadoras de la época y una escuela en Escocia desarrolló un tutorial interactivo de idioma extranjero en el que los alumnos guiaban huellas por una ciudad haciendo y respondiendo preguntas en alemán, francés, etc. Un artículo en el diciembre 1979 de Computer Age cubrió una implementación temprana llamada Tiny Pilot y proporcionó una lista completa de códigos de máquina.
Las versiones de PILOT superpuestas en los intérpretes BASIC de las primeras microcomputadoras no eran desconocidas a fines de la década de 1970 y principios de la de 1980, y Byte Magazine en un momento publicó un derivado completo de PILOT que no era de Turing conocido como Waduzitdo por Larry Kherarty como una forma de demostrando de lo que era capaz una computadora. PETPILOT (PILOT para Commodore PET) fue el primer lenguaje no Commodore para PET y fue escrito en Microsoft BASIC que se envió con PET, con un poco de ayuda de Bill Gates. Fue creado en 1979 por Dave Gomberg y podía ejecutarse en un PET 4K (que nunca se envió) y funcionó bien en los PET 8K que envió Commodore. Fue escrito en la sala de estar de Larry Tessler en el número de serie 2 de PET.
El Vanilla PILOT de 1983 para el Commodore 64 agregó gráficos de tortuga, al igual que Super Turtle PILOT, que se publicó como una lista para escribir en la edición de octubre de 1987 de COMPUTE. revista.
En 1991, el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE) publicó un estándar para Pilot como IEEE Std 1154-1991. Desde entonces ha sido retirado. Eric Raymond implementó una implementación de referencia basada en esto y la mantuvo, a regañadientes, durante los siguientes 15 años.
En 1990, eSTeem PILOT para computadoras Atari ST fue desarrollado y programado por Tom Nielsen, EdD. Basado en los estándares IEEE para PILOT, incluye funciones específicas de Atari, como el control de dispositivos Laserdisc y CDROM.
Una implementación de aficionados de 2018, psPILOT, basada en parte en el estándar IEEE, se implementó utilizando el lenguaje de secuencias de comandos PowerShell de Microsoft.
Contenido relacionado
Función recursiva general
Infraestructura de lenguaje común
Ligüística computacional