TMG (від англ. transmogrifier — перетворювач) — компілятор компіляторів[5] створений Робертом Макклуром і представлений у 1965 році.[6][7][8] TMG працював на сучасних йому суперкомп'ютерах (CDC 1604, IBM 7094) і таких операційних системах, як OS360 та Unix.[9] Він був використаний для створення EPL, ранньої версії мови програмування PL/I в рамках проекту Multics.

TMG
Дата появи 1963; 61 років тому (1963)[1]
Творці Роберт M. Макклур
Розробник Роберт M. Макклур
Діалекти діалект Unix (Дуглас Макілрой)
Вплинула на TROL (Дональд Кнут)[2]
Unix TMG
Дата появи 1969; 55 років тому (1969)
Розробник Дуглас Макілрой
Діалекти версія для PDP-7,
версія для PDP-11
Під впливом від АЛГОЛ 68[3], B, PL/I, SNOBOL[4]
Вплинула на B, Yacc
Звичайні розширення файлів .t

Дуглас Макілрой, який працював над EPL, переніс TMG до ранньої версії Unix. За словами Кена Томпсона, Макілрой написав TMG на аркуші паперу і «вирішив подати свій аркуш паперу на вхід своєму аркушу паперу», скомпілювавши таким чином вихідний код на асемблері для комп'ютера PDP-7, на якому спершу розроблялася ОС Unix.[10] Таким чином TMG стала першою мовою програмування високого рівня у Unix.[3] Томпсон далі використав TMG щоб створити компілятор мови Fortran, але в кінцевому підсумку створив мову програмування B.[6] TMG входив до складу Unix до шостої версії включно.

Алгоритм рекурсивного спуску, за яким працює TMG, формально досліджували Александер Бірман та Джеффрі Ульман. Формальний опис алгоритму отримав назву «схема розпізнавання TMG» (скорочено TS ).[11]

Примітки ред.

  1. Early Translator Writing Systems. Atlas Computer Laboratory. Архів оригіналу за 15 вересня 2020. Процитовано 3 березня 2020.
  2. Knuth, Donald (1990). P. Deransart and M. Jourdan (ред.). The Genesis of Attribute Grammars (PDF). Proceedings of the International Conference on Attribute Grammars and their Applications (Paris, France). New York: Springer-Verlag. Архів оригіналу (PDF) за 23 листопада 2020. Процитовано 3 березня 2020.
  3. а б Ritchie, Dennis M. (April 1993). The Development of the C Language (PDF). Association for Computing Machinery, Inc. Архів оригіналу (PDF) за 24 липня 2015. Процитовано 3 березня 2020.
  4. McIlroy, M. D. (13 вересня 1972). A Manual for the Tmg Compiler-writing Language (Технічний звіт). Murray Hill, New Jersey: Bell Laboratories. Архів оригіналу за 31 січня 2020. Процитовано 31 січня 2020.
  5. dartmouth.edu - ~doug [Архівовано 4 квітня 2021 у Wayback Machine.], 2012-12-20
  6. а б bell-labs.com - Early Unix history and evolution [Архівовано 8 квітня 2015 у Wayback Machine.], 2004-04-09
  7. McClure, R.M. (1965). TMG—A Syntax-Directed Compiler. У L. Winner (ред.). Proceedings of the 1965 20th national conference (ACM '65). ACM. с. 262—274. doi:10.1145/800197.806050.
  8. McIlroy, M. D. (1987). A Research Unix reader: annotated excerpts from the Programmer's Manual, 1971–1986 (PDF). CSTR (139). Bell Labs. Архів оригіналу (PDF) за 11 листопада 2017. Процитовано 3 березня 2020.
  9. multicians.org - TMG [Архівовано 3 квітня 2017 у Wayback Machine.], 2012-12-20
  10. Ken Thompson. VCF East 2019 -- Brian Kernighan interviews Ken Thompson. Архів оригіналу за 11 червня 2021. Процитовано 28 жовтня 2019.
  11. Birman, Alexander; Ullman, Jeffrey D (1973). Parsing algorithms with backtrack. Information and Control. Elsevier B.V. 23: 1—34. ISSN 0019-9958.

Посилання ред.