TMG (idioma)

TMG
Diseñado porRobert M. McClure
ReveladorRobert M. McClure
Apareció por primera vez1963 ; hace 61 años [1] ( 1963 )
Dialectos
Dialecto Unix (por Douglas McIlroy )
Influenciado
TROL (por Donald Knuth ) [2]
Gestión de transacciones Unix
Programa TMG con sintaxis resaltada
ReveladorDouglas McIlroy
Apareció por primera vez1969 ; hace 55 años ( 1969 )
Extensiones de nombre de archivo.t
Dialectos
Versión PDP-7 , versión PDP-11
Influenciado por
ALGOL 68 , [3] B , PL/I , SNOBOL [4]
Influenciado
B , Yacc

En informática, TMG (TransMoGrifier) ​​es un compilador-compilador descendente recursivo [5] desarrollado por Robert M. McClure y presentado en 1965. [6] [7] [8] TMG se ejecutaba en sistemas que incluían OS/360 y los primeros Unix . [9] Se utilizó para crear EPL, una versión temprana de PL/I . [9]

Douglas McIlroy portó TMG a una versión temprana de Unix. Según Ken Thompson , McIlroy escribió TMG en TMG en un trozo de papel y "decidió darle a su trozo de papel su trozo de papel", compilando a mano el lenguaje ensamblador que introdujo y ensambló en el sistema Unix de Thompson que funcionaba con PDP-7 . [10] Thompson utilizó TMG en 1970 como herramienta para ofrecer Fortran , pero debido a las limitaciones de memoria de PDP-7 terminó creando el lenguaje de programación B que estaba muy influenciado por BCPL . [6]

El algoritmo de descenso recursivo de TMG fue estudiado formalmente por Alexander Birman y Jeffrey Ullman . La descripción formal de los algoritmos se denominó esquema de reconocimiento TMG (o simplemente TS ). [11]

Véase también

Referencias

  1. ^ "Sistemas de escritura de traductores tempranos: compilador Brooker-Morris Compiler 1966". Atlas Computer Laboratory . Archivado desde el original el 31 de enero de 2020 . Consultado el 12 de abril de 2020 . TMG, ... llega más tarde, pero parece que no ha sido influenciado por los sistemas anteriores [Syntax Machine de Alick Glennie de 1960, el compilador PSYCO de Ned Irons de 1960 o el compilador-compilador de Brooker y Morris de 1960].
  2. ^ Knuth, Donald (1990). "La génesis de las gramáticas de atributos" (PDF) . En P. Deransart; M. Jourdan (eds.). Actas de la Conferencia internacional sobre gramáticas de atributos y sus aplicaciones (París, Francia) . Lecture Notes in Computer Science. Vol. 461. Nueva York: Springer-Verlag. págs. 1–12. doi :10.1007/3-540-53101-7_1. ISBN. 978-3-540-53101-2.
  3. ^ Ritchie, Dennis M. (abril de 1993). El desarrollo del lenguaje C (PDF) . Association for Computing Machinery, Inc.
  4. ^ McIlroy, MD (13 de septiembre de 1972). A Manual for the Tmg Compiler-writing Language (Informe técnico). Murray Hill, Nueva Jersey: Bell Laboratories . Consultado el 31 de enero de 2020 .
  5. ^ "M. Douglas McIlroy". Dartmouth College . Archivado desde el original el 1 de febrero de 2020. Consultado el 12 de abril de 2020. Algunas cosas en las que he trabajado: Lenguajes y compiladores: macros, Lisp, PL/I, TMG (un compilador-compilador), expresiones regulares; influyó en Snobol, Altran, C++...
  6. ^ ab Ritchie, Dennis M. "La evolución del sistema de tiempo compartido de Unix*". Archivado desde el original el 8 de septiembre de 2014. Consultado el 9 de abril de 2004. Todos los programas para el sistema Unix PDP-7 original se escribieron en lenguaje ensamblador, y era un lenguaje ensamblador puro; por ejemplo, no había macros. Además, no había cargador ni editor de enlaces, por lo que cada programa tenía que ser completo en sí mismo. El primer lenguaje interesante que apareció fue una versión del TMG de McClure que fue implementada por McIlroy. Poco después de que TMG estuviera disponible, Thompson decidió que no podíamos pretender ofrecer un servicio informático real sin Fortran, por lo que se sentó a escribir un Fortran en TMG. Según recuerdo, el intento de manejar Fortran duró aproximadamente una semana. Lo que produjo en cambio fue una definición y un compilador para el nuevo lenguaje B.
  7. ^ McClure, RM (1965). "TMG—A Syntax-Directed Compiler". En L. Winner (ed.). Actas de la 20.ª conferencia nacional de 1965 (ACM '65) . ACM. págs. 262–274. doi :10.1145/800197.806050. ISBN . 978-1-4503-7495-8.S2CID44606611  .
  8. ^ McIlroy, MD (1987). A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139. Archivado (PDF) del original el 11 de abril de 2020. Doug (M. Douglas) McIlroy ejerció el derecho de un jefe de departamento para intervenir en el sistema PDP-7 original para dos usuarios. Más tarde contribuyó con una ecléctica bolsa de utilidades: tmg para escribir compiladores, speak para leer texto en voz alta, diff y join . También recopiló diccionarios y creó herramientas para usarlos: look (v7, siguiendo un modelo de Ossanna), dict (v8) y spell (v7). ... En el pequeño PDP-7, el ensamblador se complementó con tmg, la versión de Doug McIlroy del compilador-compilador de Bob McClure. ... V2 vio una explosión de lenguajes: un nuevo tmg , ... y el primer C de Ritchie ,
  9. ^ ab "TMG". www.multicians.org . Archivado desde el original el 2 de enero de 2020 . Consultado el 12 de abril de 2020 . ... TMG que corre bajo OS360 (sic) ... Mike Green tomó la versión 7090/7040 de Bob McClure e implementó el compilador-compilador en el 360; ... TMG fue la herramienta de definición de compilador utilizada por Ken Thompson para escribir el compilador para el lenguaje B en su PDP-7 en 1970. B fue el ancestro inmediato de C .
  10. ^ Ken Thompson (6 de mayo de 2019). «VCF East 2019: Brian Kernighan entrevista a Ken Thompson». YouTube . Consultado el 28 de octubre de 2019 .
  11. ^ Birman, Alexander; Ullman, Jeffrey D (1973). "Algoritmos de análisis sintáctico con retroceso". Información y control . 23 (1). Elsevier BV: 1–34. doi :10.1016/S0019-9958(73)90851-6. ISSN  0019-9958.
  • "TMG – Lenguaje de escritura de compiladores". HOPL: Enciclopedia histórica en línea de lenguajes de programación . Archivado desde el original el 21 de septiembre de 2007.
  • Puerto de Unix TMG en GitHub


Retrieved from "https://en.wikipedia.org/w/index.php?title=TMG_(language)&oldid=1260197446"