TMG (TransMoGrifier) es un compilador-compilador de descendencia recursiva [5] creado por Robert M. McClure y presentado en 1965. [6] [7] [8] TMG se ejecutó en sistemas como OS / 360 y los primeros Unix . [9] fue utilizado para construir EPL, una primera versión de PL / I . [9]
Diseñada por | Robert M. McClure |
---|---|
Desarrollador | Robert M. McClure |
Apareció por primera vez | 1963 [1] |
Dialectos | |
Dialecto Unix (por Douglas McIlroy ) | |
Influenciado | |
TROL (por Donald Knuth ) [2] |
Desarrollador | Douglas McIlroy |
---|---|
Apareció por primera vez | 1969 |
Extensiones de nombre de archivo | .t |
Dialectos | |
PDP-7 versión, PDP-11 versión | |
Influenciado por | |
ALGOL 68 , [3] B , PL / I , SNOBOL [4] | |
Influenciado | |
B , Yacc |
Douglas McIlroy portó TMG a una versión anterior de Unix. Según Ken Thompson , McIlroy escribió TMG en TMG en una hoja de papel y "decidió darle a su hoja de papel su hoja de papel", compilando a mano el lenguaje ensamblador que ingresó y ensambló en el sistema Unix de Thompson que se ejecuta en PDP-7 . [10] Thompson usó TMG en 1970 como una herramienta para ofrecer Fortran , pero debido a las limitaciones de memoria de PDP-7 terminó creando el lenguaje de programación B que fue 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]
Ver también
Referencias
- ^ "Sistemas de escritura del traductor temprano - compilador del compilador de Brooker-Morris 1966" . Laboratorio de Computación Atlas . Archivado desde el original el 31 de enero de 2020 . Consultado el 12 de abril de 2020 .
TMG, ... viene después, pero parece no haber sido influenciado por los sistemas anteriores [Syntax Machine de 1960 de Alick Glennie, compilador PSYCO de 1960 de Ned Irons o compilador-compilador de 1960 de Brooker y Morris].
- ^ Knuth, Donald (1990). P. Deransart; M. Jourdan (eds.). "La génesis de las gramáticas de atributos" (PDF) . Actas de la Conferencia Internacional sobre Gramáticas de Atributos y sus Aplicaciones (París, Francia) . Nueva York: Springer-Verlag.
- ^ Ritchie, Dennis M. (abril de 1993). El desarrollo del lenguaje C (PDF) . Asociación de Maquinaria de Computación, Inc.
- ^ McIlroy, MD (13 de septiembre de 1972). Un manual para el lenguaje de escritura del compilador Tmg (informe técnico). Murray Hill, Nueva Jersey: Bell Laboratories . Consultado el 31 de enero de 2020 .
- ^ "M. Douglas McIlroy" . Universidad de Dartmouth . 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 ++ ...
- ^ a b Ritchie, Dennis M. "La evolución del sistema de tiempo compartido Unix *" . Archivado desde el original el 8 de septiembre de 2014 . Consultado el 9 de abril de 2004 .
Todos los programas del sistema Unix PDP-7 original estaban escritos en lenguaje ensamblador, y en lenguaje ensamblador simple, por ejemplo, no había macros. Además, no había cargador ni editor de enlaces, por lo que cada programa tenía que estar 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, la intención de manejar a Fortran duró aproximadamente una semana. En cambio, lo que produjo fue una definición y un compilador para el nuevo lenguaje B.
- ^ McClure, RM (1965). "TMG: un compilador dirigido por sintaxis" . En L. Winner (ed.). Actas de la 20ª conferencia nacional de 1965 (ACM '65) . ACM. págs. 262-274. doi : 10.1145 / 800197.806050 .
- ^ McIlroy, MD (1987). Un lector UNIX de investigación: extractos comentados del Manual del programador, 1971-1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139. Archivado (PDF) desde el original el 11 de abril de 2020.
Doug (M. Douglas) McIlroy ejerció el derecho de un jefe de departamento a participar en el sistema original PDP-7 de dos usuarios. Más tarde contribuyó con una bolsa ecléctica de utilidades: tmg para la escritura del compilador, speak para leer el texto en voz alta, diff y join . También recopiló diccionarios e hizo herramientas para usarlos: buscar (v7, según un modelo de Ossanna), dict (v8) y deletrear (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 idiomas: un nuevo tmg , ... y la primera C de Ritchie ,
- ^ a b "TMG" . www.multicians.org . Archivado desde el original el 2 de enero de 2020 . Consultado el 12 de abril de 2020 .
... TMG que se ejecuta bajo OS360 (sic) ... Mike Green tomó la versión 7090/7040 de Bob McClure e implementó el compilador-compilador en el 360; ... TMG era la herramienta de definición compilador utilizado por Ken Thompson a escribir el compilador para el B lengua en su PDP-7 en 1970. B fue el antepasado inmediato del C .
- ^ Ken Thompson. "VCF East 2019 - Brian Kernighan entrevista a Ken Thompson" . Consultado el 28 de octubre de 2019 .
- ^ Birmano, Alexander; Ullman, Jeffrey D (1973). "Análisis de algoritmos con retroceso". Información y control . Elsevier BV 23 (1): 1–34. ISSN 0019-9958 .
enlaces externos
- "TMG - Lenguaje de escritura del compilador" . 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