Misplaced Pages

TMG (language)

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
TMG
Designed byRobert M. McClure
DeveloperRobert M. McClure
First appeared1963; 61 years ago (1963)
Dialects
Unix dialect (by Douglas McIlroy)
Influenced
TROL (by Donald Knuth)
Unix TMG
TMG program with highlighted syntax
DeveloperDouglas McIlroy
First appeared1969; 55 years ago (1969)
Filename extensions.t
Dialects
PDP-7 version, PDP-11 version
Influenced by
ALGOL 68, B, PL/I, SNOBOL
Influenced
B, Yacc

In computing TMG (TransMoGrifier) is a recursive descent compiler-compiler developed by Robert M. McClure and presented in 1965. TMG ran on systems including OS/360 and early Unix. It was used to build EPL, an early version of PL/I.

Douglas McIlroy ported TMG to an early version of Unix. According to Ken Thompson, McIlroy wrote TMG in TMG on a piece of paper and "decided to give his piece of paper his piece of paper," hand-compiling assembly language that he entered and assembled on Thompson's Unix system running on PDP-7. Thompson used TMG in 1970 as a tool to offer Fortran, but due to memory limitations of PDP-7 ended up creating the B programming language which was much influenced by BCPL.

The recursive descent algorithm of TMG was studied formally by Alexander Birman and Jeffrey Ullman. The formal description of the algorithms was named TMG recognition scheme (or simply TS).

See also

References

  1. "Early Translator Writing Systems - Brooker-Morris Compiler Compiler 1966". Atlas Computer Laboratory. Archived from the original on 31 January 2020. Retrieved 2020-04-12. TMG, ... comes later but appears to have not been influenced by the earlier systems .
  2. Knuth, Donald (1990). "The Genesis of Attribute Grammars" (PDF). In P. Deransart; M. Jourdan (eds.). Proceedings of the International Conference on Attribute Grammars and Their Applications (Paris, France). Lecture Notes in Computer Science. Vol. 461. New York: Springer-Verlag. pp. 1–12. doi:10.1007/3-540-53101-7_1. ISBN 978-3-540-53101-2.
  3. Ritchie, Dennis M. (April 1993). The Development of the C Language (PDF). Association for Computing Machinery, Inc.
  4. McIlroy, M. D. (September 13, 1972). A Manual for the Tmg Compiler-writing Language (Technical report). Murray Hill, New Jersey: Bell Laboratories. Retrieved 31 January 2020.
  5. "M. Douglas McIlroy". Dartmouth College. Archived from the original on 1 February 2020. Retrieved 2020-04-12. Some things I have worked on: Languages and compilers: macros, Lisp, PL/I, TMG (a compiler-compiler), regular expressions; influenced Snobol, Altran, C++ ...
  6. ^ Ritchie, Dennis M. "The Evolution of the Unix Time-sharing System*". Archived from the original on 8 September 2014. Retrieved 9 April 2004. Every program for the original PDP-7 Unix system was written in assembly language, and bare assembly language it was—for example, there were no macros. Moreover, there was no loader or link-editor, so every program had to be complete in itself. The first interesting language to appear was a version of McClure's TMG that was implemented by McIlroy. Soon after TMG became available, Thompson decided that we could not pretend to offer a real computing service without Fortran, so he sat down to write a Fortran in TMG. As I recall, the intent to handle Fortran lasted about a week. What he produced instead was a definition of and a compiler for the new language B.
  7. McClure, R.M. (1965). "TMG—A Syntax-Directed Compiler". In L. Winner (ed.). Proceedings of the 1965 20th national conference (ACM '65). ACM. pp. 262–274. doi:10.1145/800197.806050. ISBN 978-1-4503-7495-8. S2CID 44606611.
  8. McIlroy, M. D. (1987). A Research UNIX Reader: Annotated Excerpts from the Programmer's Manual, 1971-1986 (PDF) (Technical report). CSTR. Bell Labs. 139. Archived (PDF) from the original on 11 April 2020. Doug (M. Douglas) McIlroy exercised the right of a department head to muscle in on the original two-user PDP-7 system. Later he contributed an eclectic bag of utilities: tmg for compiler writing, speak for reading text aloud, diff, and join. He also collected dictionaries and made tools to use them: look (v7, after a model by Ossanna), dict (v8), and spell (v7). ... On the tiny PDP-7 the assembler was supplemented by tmg, Doug McIlroy's version of Bob McClure's compiler-compiler. ... V2 saw a burst of languages: a new tmg, ... and Ritchie's first C,
  9. ^ "TMG". www.multicians.org. Archived from the original on 2 January 2020. Retrieved 2020-04-12. ... TMG that runs under OS360 (sic) ... Mike Green took Bob McClure's 7090/7040 version and implemented the compiler-compiler on the 360; ... TMG was the compiler definition tool used by Ken Thompson to write the compiler for the B language on his PDP-7 in 1970. B was the immediate ancestor of C.
  10. Ken Thompson (6 May 2019). "VCF East 2019 -- Brian Kernighan interviews Ken Thompson". YouTube. Retrieved 2019-10-28.
  11. Birman, Alexander; Ullman, Jeffrey D (1973). "Parsing algorithms with backtrack". Information and Control. 23 (1). Elsevier B.V: 1–34. doi:10.1016/S0019-9958(73)90851-6. ISSN 0019-9958.

External links


Stub icon

This programming-language-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: