Atlas Autocode ( AA ) [1] [2] es un lenguaje de programación desarrollado alrededor de 1965 en la Universidad de Manchester . Una variante del lenguaje ALGOL , fue desarrollado por Tony Brooker y Derrick Morris para la computadora Atlas .
Paradigmas | Procesal , imperativo , estructurado |
---|---|
Familia | ALGOL |
Diseñada por | Tony Brooker y Derrick Morris |
Desarrollador | Universidad de Manchester |
Apareció por primera vez | 1965 |
Disciplina de mecanografía | Estático , fuerte |
Alcance | Léxico |
Lenguaje de implementación | ALGOL 60 |
Plataforma | Atlas English Electric KDF9 |
SO | Supervisor |
Implementaciones importantes | |
IMP de Edimburgo | |
Influenciado por | |
ALGOL 60 |
La palabra Autocode fue básicamente un término temprano para el lenguaje de programación . Los diferentes códigos automáticos pueden variar mucho.
Características
AA presentaba variables , subrutinas y funciones escritas explícitamente . Omitió algunas características de ALGOL como pasar parámetros por nombre , que en ALGOL 60 significa pasar la dirección de memoria de una subrutina corta para recalcular un parámetro cada vez que se menciona.
El compilador AA generó una verificación de rango para los accesos a la matriz y permitió que una matriz tuviera dimensiones determinadas en tiempo de ejecución , es decir, una matriz podría declararse como , dónde y eran valores calculados.integer array Thing (i:j)
i
j
Las rutinas de alto nivel AA pueden incluir código de máquina , ya sea para hacer que un bucle interno sea más eficiente o para efectuar alguna operación que de otro modo no se podría realizar fácilmente. [1]
AA incluye un complex
tipo de datos [1] para representar números complejos , en parte debido a la presión del departamento de ingeniería eléctrica , ya que los números complejos se utilizan para representar el comportamiento de la corriente alterna . La raíz cuadrada unitaria imaginaria de -1 fue representada por i
, que se trató como una constante compleja fija = i .
El complex
tipo de datos se eliminó cuando Atlas Autocode evolucionó posteriormente al idioma Edinburgh IMP . IMP era una extensión de AA y se utilizó para escribir el sistema operativo Edinburgh Multiple Access System (EMAS) .
El segundo mayor reclamo de AA a la fama (después de ser el progenitor de IMP y EMAS) fue que tenía muchas de las características del Compilador Compilador original . Una variante del compilador AA incluía soporte en tiempo de ejecución para un analizador sintáctico descendente recursivo de arriba hacia abajo . El estilo de analizador utilizado en el Compilador Compilador se utilizó continuamente en Edimburgo desde los años 60 hasta casi el año 2000.
Se desarrollaron otros Autocodes para la computadora Titan , un prototipo Atlas 2 en Cambridge y Ferranti Mercury.
Sintaxis
La sintaxis de Atlas Autocode era muy similar a ALGOL, aunque estaba influenciada por el dispositivo de salida que el autor tenía disponible, un Friden Flexowriter . Por lo tanto, permitió símbolos como ½
para .5 y el superíndice 2 para elevado a 2 . El Flexowriter apoyaba la sobreexposición y, por lo tanto, AA también lo hacía: hasta tres caracteres se podían sobrecargar como un solo símbolo. Por ejemplo, el conjunto de caracteres no tenía ↑
símbolo, por lo que la exponenciación era un tachado de |
y *
. El subrayado antes mencionado de las palabras reservadas ( palabras clave) también se puede hacer usando sobresalir. El idioma se describe en detalle en el Atlas Autocode Reference Manual. [1]
Otros caracteres de Flexowriter que se utilizaron en AA fueron: α
en números de punto flotante, por ejemplo , 3.56α-7
para moderno 3.56e-7
; β
para referirse a la segunda mitad de una palabra de memoria Atlas de 48 bits ; π
para la constante matemática pi .
Cuando AA se transfirió a la computadora English Electric KDF9 , el conjunto de caracteres se cambió a la Organización Internacional para la Estandarización (ISO) y ese compilador se recuperó de una cinta de papel antigua por el Proyecto de Historia de la Computadora de Edimburgo y está disponible en línea, al igual que una alta -Escaneo de calidad de la versión original de Edimburgo del manual Atlas Autocode. [2]
Las palabras clave en AA se distinguían de otros textos por estar subrayadas, lo que se implementó mediante tachado en el Flexowriter (comparar con negrita en ALGOL). También hubo dos regímenes rigurosos . Primero, había un modo de "delimitadores de mayúsculas" en el que todas las letras mayúsculas (cadenas exteriores) se trataban como minúsculas subrayadas. En segundo lugar, en algunas versiones (pero no en la versión original de Atlas), era posible eliminar las palabras clave colocando un %
signo " " delante de ellas, por ejemplo, la palabra clave endofprogramme
podría escribirse como %end %of %programme
o %endofprogramme
. Esto redujo significativamente la escritura, debido a que solo se necesita un carácter, en lugar de sobrepasar toda la palabra clave. Al igual que en ALGOL, no había palabras reservadas en el idioma, ya que las palabras clave se identificaban subrayando (o trazando), no reconociendo secuencias de caracteres reservadas. En la declaración , hay una palabra clave y una variable nombrada .if token=if then result = token
if
if
Como en ALGOL, AA permitía espacios en nombres de variables, como integer previous value
. Los espacios no eran significativos y se eliminaron antes del análisis sintáctico en una etapa trivial previa al lexing llamada " reconstrucción de línea ". Lo que vería el compilador en el ejemplo anterior sería " ". Los espacios fueron posibles debido en parte a que las palabras clave se distinguen de otras formas, y en parte porque la fuente se procesó mediante análisis sintáctico sin escáner , sin una fase de lectura separada, lo que permitió que la sintaxis léxica fuera sensible al contexto.iftoken=ifthenresult=token
La sintaxis de las expresiones permite omitir el operador de multiplicación, por ejemplo, 3a
se trató como 3*a
, y a(i+j)
se trató como a*(i+j)
si a
no fuera una matriz. En usos ambiguos, se tomó el nombre más largo posible ( munch máximo ), por ejemplo ab
, no se trató como a*b
, se haya declarado o no a
y b
.
En el Atlas Autocode original para la computadora Atlas, las instrucciones del código de máquina Atlas se pueden interpolar entre las declaraciones AA.
Referencias
- ^ a b c d Brooker, RA; Rohl, JS (1965). "Atlas Autocode Reference Manual" . Departamento de Informática de la Universidad de Manchester. Archivado desde el original el 21 de julio de 2011 . Consultado el 29 de abril de 2020 .( Escaneos originales archivados el 16 de enero de 2019 en Wayback Machine )
- ^ a b Schofoeld, PD; Osbourne, MR (1965). "Programación en Atlas Autocode, Informe de Unidad de Computadora N ° 1" (PDF) . Universidad de Edimburgo. Archivado desde el original (PDF) el 15 de mayo de 2020 . Consultado el 12 de abril de 2006 .( Escaneos originales archivados el 21 de julio de 2011 en Wayback Machine )