stringtranslate.com

María (lenguaje de programación)

Mary es un lenguaje de programación diseñado e implementado por Mark Rain [1] en RUNIT en Trondheim , Noruega durante la década de 1970. Tomó prestadas muchas características de ALGOL 68, pero fue diseñado para programación de sistemas (programación orientada a máquinas), con un subconjunto de operaciones reservadas para uso de nivel superior. [2]

Una característica inusual de su sintaxis era que las expresiones se construían utilizando los operadores infijos convencionales , pero todos ellos tenían la misma precedencia y la evaluación se hacía de izquierda a derecha a menos que hubiera corchetes. [3] La asignación tenía el destino a la derecha y la asignación se consideraba simplemente otro operador.

De manera similar a C , parece que existieron varias características del lenguaje que permitieron producir código razonablemente bien optimizado, a pesar de un generador de código bastante primitivo en el compilador. Estas incluían operadores similares a += et alter en C y declaraciones explícitas de registros para variables .

Características notables:

Los compiladores se crearon para los miniordenadores SM-4 y Norsk Data Nord-10/ND-100 de Kongsberg Våpenfabrikk . El compilador Mary original se escribió en NU ALGOL , se ejecutó en la serie Univac-1100 y se utilizó para iniciar un compilador nativo para ND-100 / Sintran -III. RUNIT implementó un compilador CHILL escrito en Mary que se ejecutó en ND-100 y tenía objetivos Intel 8086 y 80286. Cuando este compilador se trasladó a la plataforma VAX , se implementó un backend común para Mary y CHILL. Más tarde, estaban disponibles los backends para i386 y SPARC . Dado que el compilador Mary se implementó en Mary, fue posible ejecutar el compilador en todas estas plataformas. Se desarrolló una versión mejorada, Mary/2, utilizando un nuevo compilador en los Estados Unidos. [5]

María ya no se mantiene.

Ejemplo

COMENZAR INT i := 10; %% Variable con valor inicial. REF INT ri := i; %% Puntero inicializado para apuntar a i. INT j := 11; j :- REF INT =: ri; %% Conversión y asignación de tipos  %% ri ahora apunta a j. i =: (ri :- VAL REF INT);   %% Asignación y conversión de tipos  %% ri apunta a j por lo que j se cambia. SI j > 10 %% Sentencia condicional con resultado ENTONCES %% se utiliza dentro de una expresión aritmética. 1 DEMÁS 2 FI + j =: j;FIN

Véase también

Referencias

Este artículo se basa en material tomado del Diccionario gratuito en línea de informática antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencia" del GFDL , versión 1.3 o posterior.

  1. ^ van der Meulen, SG (junio de 1977). "ALGOL 68 podría haber sido". Avisos ACM SIGPLAN . 12 (6): 1–18. doi : 10.1145/872738.807137.
  2. ^ Gjessing, Stein; Nygaard, Kristen (1988). Conferencia europea ECOOP '88 sobre programación orientada a objetos: Oslo, Noruega, 15 al 17 de agosto de 1988. Actas . Medios de ciencia y negocios de Springer. ISBN 978-3-540-50053-7.
  3. ^ Rain, Mark (enero de 1973). "Expresiones de operación en MARY". Avisos SIGPLAN de ACM . 8 (1): 7–14. doi :10.1145/986925.986927.
  4. ^ Hills, Michael Turner; Kanō, Sadahiko (1976). Programación de sistemas de conmutación electrónica: aspectos en tiempo real y sus implicaciones lingüísticas . Peregrinus [para] la Institución de Ingenieros Eléctricos. ISBN 978-0-901223-80-7.
  5. ^ Rain, Mark. "La estructura del compilador MARY/2". Software, práctica y experiencia . 11. Penobscot Research Center: Wiley : 225–235.

Lectura adicional