ТМГ (язык)
Разработано | Роберт М. МакКлюр |
---|---|
Разработчик | Роберт М. МакКлюр |
Впервые появился | 1963 год [1] |
Диалекты | |
Диалект Unix ( Дуглас Макилрой ) | |
Под влиянием | |
ТРОЛ ( Дональд Кнут ) [2] |
Разработчик | Дуглас Макилрой |
---|---|
Впервые появился | 1969 год |
Расширения имен файлов | .т |
Диалекты | |
Версия PDP-7 , PDP-11 версия | |
Под влиянием | |
АЛГОЛ 68 , [3] Б , ПЛ/И , СНОБОЛ [4] | |
Под влиянием | |
Б , Якк |
В вычислительной технике TMG (TransMoGrifier) представляет собой рекурсивного спуска. компилятор-компилятор [5] разработан Робертом М. МакКлюром и представлен в 1965 году. [6] [7] [8] TMG работал на системах, включая OS/360 и ранние версии Unix . [9] Он использовался для создания EPL, ранней версии PL/I . [9]
Дуглас Макилрой портировал TMG на раннюю версию Unix. По словам Кена Томпсона , Макилрой написал TMG на TMG на листе бумаги и «решил отдать свой лист бумаги своему листу бумаги», вручную скомпилировав ассемблерный язык Томпсона, Unix , который он ввел и собрал в системе работающей на PDP-7 . [10] Томпсон использовал TMG в 1970 году в качестве инструмента для предложения Fortran , но из-за ограничений памяти PDP-7 в конечном итоге создал язык программирования B , на который большое влияние оказал BCPL . [6]
Алгоритм рекурсивного спуска TMG формально изучался Александром Бирманом и Джеффри Уллманом . Формальное описание алгоритмов получило название схемы распознавания TMG (или просто TS ). [11]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Ранние системы письменности переводчиков - компилятор Брукера-Морриса, 1966 г.» . Компьютерная лаборатория «Атлас» . Архивировано из оригинала 31 января 2020 года . Проверено 12 апреля 2020 г.
TMG, ... появился позже, но, похоже, не подвергся влиянию более ранних систем [Синтаксическая машина Алика Гленни 1960 года, компилятор PSYCO Неда Айронса 1960 года или Компилятор-компилятор Брукера и Морриса 1960 года].
- ^ Кнут, Дональд (1990). П. Дерансар; М. Журдан (ред.). «Генезис атрибутивных грамматик» (PDF) . Материалы Международной конференции по грамматикам атрибутов и их применениям (Париж, Франция) . Конспекты лекций по информатике. 461 . Нью-Йорк: Springer-Verlag: 1–12. дои : 10.1007/3-540-53101-7_1 . ISBN 978-3-540-53101-2 .
- ^ Ричи, Деннис М. (апрель 1993 г.). Развитие языка C (PDF) . Ассоциация вычислительной техники, Inc.
- ^ Макилрой, доктор медицины (13 сентября 1972 г.). Руководство по языку написания компилятора Tmg (Технический отчет). Мюррей Хилл, Нью-Джерси: Bell Laboratories . Проверено 31 января 2020 г.
- ^ «М. Дуглас Макилрой» . Дартмутский колледж . Архивировано из оригинала 1 февраля 2020 года . Проверено 12 апреля 2020 г.
Некоторые вещи, над которыми я работал: Языки и компиляторы: макросы, Lisp, PL/I, TMG (компилятор-компилятор), регулярные выражения; повлиял на Сноболь, Альтран, C++...
- ^ Перейти обратно: а б Ритчи, Деннис М. «Эволюция системы разделения времени Unix *» . Архивировано из оригинала 8 сентября 2014 года . Проверено 9 апреля 2004 г.
Каждая программа для исходной системы Unix PDP-7 была написана на ассемблере, причем на чистом языке ассемблера — например, в ней не было макросов. Более того, не было ни загрузчика, ни редактора ссылок, поэтому каждая программа должна была быть целостной сама по себе. Первым появившимся интересным языком была версия TMG МакКлюра, реализованная Макилроем. Вскоре после того, как TMG стал доступен, Томпсон решил, что мы не можем претендовать на предоставление реальных вычислительных услуг без Fortran, поэтому он сел писать Fortran на TMG. Насколько я помню, намерение разобраться с Фортраном длилось около недели. Вместо этого он создал определение и компилятор нового языка B.
- ^ МакКлюр, Р.М. (1965). «TMG — синтаксически-управляемый компилятор» . В Л. Виннере (ред.). Материалы 20-й национальной конференции 1965 года (ACM '65) . АКМ. стр. 262–274. дои : 10.1145/800197.806050 . S2CID 44606611 .
- ^ Макилрой, доктор медицины (1987). Исследовательская программа для чтения UNIX: аннотированные выдержки из руководства программиста, 1971–1986 гг. (PDF) (технический отчет). CSTR. Лаборатории Белла. 139. Архивировано (PDF) из оригинала 11 апреля 2020 года.
Дуг (М. Дуглас) Макилрой воспользовался правом руководителя отдела вмешиваться в исходную двухпользовательскую систему PDP-7. Позже он представил эклектичный набор утилит: tmg для написания компилятора, talk для чтения текста вслух, diff и join . Он также собрал словари и создал инструменты для их использования: Look (v7, по модели Оссанны), dict (v8) и Spell (v7). ... На крошечном PDP-7 ассемблер был дополнен tmg, версией компилятора-компилятора Боба МакКлюра, созданной Дугом МакИлроем. ... V2 увидел всплеск языков: новый tmg Ричи , ... и первый C ,
- ^ Перейти обратно: а б «ТМГ» . www.multicians.org . Архивировано из оригинала 2 января 2020 года . Проверено 12 апреля 2020 г.
... TMG, работающий под OS360 (так в оригинале) ... Майк Грин взял версию 7090/7040 Боба МакКлюра и реализовал компилятор-компилятор на 360; ... TMG был инструментом определения компилятора, который Кен Томпсон использовал для написания компилятора для языка B B был непосредственным предком C. на своем PDP-7 в 1970 году .
- ^ Кен Томпсон. «VCF East 2019 — Брайан Керниган берет интервью у Кена Томпсона» . Ютуб . Проверено 28 октября 2019 г.
- ^ Бирман, Александр; Уллман, Джеффри Д. (1973). «Алгоритмы анализа с возвратом». Информация и контроль . 23 (1). Эльзевир Б.В.: 1–34. дои : 10.1016/S0019-9958(73)90851-6 . ISSN 0019-9958 .
Внешние ссылки
[ редактировать ]- «TMG – язык написания компилятора» . HOPL: Интернет-историческая энциклопедия языков программирования . Архивировано из оригинала 21 сентября 2007 года.
- Порт Unix TMG на GitHub