Language peer sets for TMG:
United States ↑
United States/1965 ↑
Designed 1965 ↑
1960s languages ↑
Third generation ↑
Early Cold War ↑
Genus Grammar and Syntax-oriented ↑
Specialised Languages ↑
Grammar and Syntax-oriented ↑
Grammar and Syntax-oriented/1965 ↑
Grammar and Syntax-oriented/United States ↑
Language-related/United States ↑
Content-reflexive/United States ↑
Specialised Languages ↑
Specialised Languages/1965 ↑
Specialised Languages/us ↑
Compiler writing language
alternate simple view
Country: United States
Genus: Grammar and Syntax-oriented
Sammet category: Specialised Languages
for TransMoGrifier Early language for writing recursive descent compilers. Macro'd from the IBM 1604 to the 709 to the 7094 to the GE635, where it was used by McIlroy and Morris to write the EPL compiler for Multics. Influential for the style it gave to the portability of C (via B/NB)
McClure, R.M. (1965) McClure, R.M. "TMG A Syntax-Directed Compiler"
[ACM] (1965) [ACM] Proceedings of the 1965 20th National Conference 1965 , Cleveland, Ohio, United States Feldman, Jerome and Gries, David (1968) Feldman, Jerome and Gries, David "Translator writing systems" p77-113
[ACM] (1968) [ACM] CACM 11(02) (February 1968) Balzer, R.W. et al, (1969) Balzer, R.W. et al, "APAREL: A Parse Request Language",
[ACM] (1969) [ACM] CACM 12(11) (Nov 1969). Corbató, F. J. (1969) Corbató, F. J. "PL/I As a Tool for System Programming five years with a temporary compiler"
TMG and EPL
Online at Multics
(1969) Datamation 15(5) May 1969 Sammet, Jean E. (1969) Sammet, Jean E. "Computer Languages - Principles and History"
Englewood Cliffs, N.J. Prentice-Hall 1969. p.636.
(1969) Datamation 15(5) May 1969 Sammet, Jean E. (1973) Sammet, Jean E. "Roster of Programming Languages for 1973" p147
(1974) ACM Computing Reviews 15(04) April 1974 Stock and Stock (1973) Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 623
(1974) ACM Computing Reviews 15(04) April 1974 Sammet, Jean E (1978) Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85
[SIGPLAN] (1978) SIGPLAN Notices 13(11) Nov 1978 Resources
Oral History interview by Mahoney with McIlroy MSM: Was B ever used in Multics?
McIlroy: No. MSM: So, that history of BCPL to B to C, is it all here? McIlroy: All here. McIlroy: And TMG fed into that too. Some of things like the two-address assignment operators were in TMG here first and then were adopted by B and by C. I can?t say I invented them because they also came from ? they were also in Algol 68 at the same time. B is where the unusual express? uh, declaration syntax of C came from. That was Ken?s invention, that the declaration should look like any? should have the same syntax as an expression. MSM: Since we?re on C. One of the? I?ll ask Dennis this when I get to it, but one of the features is, that struck me about C was when I was writing a LISP interpreter for ? in it. This property of C, of always? of any statement bringing back a value, in the type, so that all operators have values, and so I found that at a certain point my core C LISP was beginning to look like LISP expressions, and at a certain point it just seemed automatic to go over to a LISP library.because I was just stacking parenthesis in C. Where did that come from? Is that part of B? Or ? the notion that all operators have values? McIlroy: Yeah. It was also in Algol 68. In BCPL, which came out of CPL, they had the very, very strong distinction between functions and commands. An assignment was a command. So, they did not have? I do not think the assignment was an operator in the expression. But, it was in Algol68. So, that was in? So that happened sort of everywhere at the same time. In fact, the first place I saw it was McClure?s proposal called Linear C, which was way before the language C. Just liked it because it sounded nice. Like after Linear A and Linear B. MSM: Oh I see, I see McIlroy: It was an obscure looking language and it was linear, because you wrote tremendous long expressions. MSM: Must have placed you on the borderline between a procedural and functional language? McIlroy: Yes. It did. And roughly speaking what it had was a "break" and a "continue" statement. "Continue" simply went back to the last parenthesis, and "break" simply jumped over to the next one, and those were the major controls, plus an "if" of course, those were the major controls in the language. So, there wasn?t an actual key word "for". Just the fact that you said "continue" meant you would jump back.
RISM's page on TMG