Articulo de referencia

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...

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:

  • Sintaxis de flujo de datos : los valores fluyen de izquierda a derecha, incluida la asignación
  • Basado en expresiones; [4] la mayoría de las construcciones podrían usarse en expresiones: bloques, IF, CASE, etc.
  • Macros recursivas basadas en texto
  • Operadores definidos por el usuario sobrecargados, no restringidos a identificadores predefinidos como en C++
  • Construcción y desreferenciación automática de punteros desde el contexto de tipo
  • Tipos de rango escalar
  • Enumeración de matrices y conjuntos en iteradores de bucle
  • Descriptores de matriz dinámica (ROW)

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

  • Conradi, Reidar; Holager, Per (1974). Libro de texto MARÍA . CORRER. ISBN 978-82-595-0403-6.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mary_(programming_language)&oldid=1241950178"