tombstone diagram
File:T-diagram.png compiler written in C that produces machine code.]]
File:Bootstrapping-t-diagram.png a C compiler written in C, by compiling it using another compiler written in machine code. To explain, the lefthand T is a C compiler written in C that produces machine code. The righthand T is a C compiler written in machine code that also produces machine code. The diagram illustrates that this can be used to bootstrap the left T by using it to compile the compiler written in C.]]
In computing, tombstone diagrams (or T-diagrams) consist of a set of “puzzle pieces” representing compilers and other related language processing programs. They are used to illustrate and reason about transformations from a source language (left of T) to a target language (right of T) realised in an implementation language (bottom of T). They are most commonly found describing complicated processes for bootstrapping, porting, and self-compiling of compilers, interpreters, and macro-processors.Terry, 1997, [https://web.archive.org/web/20140424063450/http://scifac.ru.ac.za/compilers/cha02g.htm Chapter 2] and [https://web.archive.org/web/20140423075907/http://www.scifac.ru.ac.za/compilers/cha03g.htm Chapter 3]
T-diagrams were first used for describing bootstrapping and cross-compiling compilers by Harvey Bratman in 1961,{{cite journal |last1=Bratman |first1=Harvey |title=A alternate form of the "UNCOL diagram" |journal=Communications of the ACM |date=March 1961 |volume=4 |issue=3 |page=142 |doi=10.1145/366199.366249 |doi-access=free }} who reshaped the diagrams originally introduced by Strong et al. (1958) to illustrate UNCOL. {{cite journal |last1=Strong |first1=J. |last2=Wegstein |first2=J. |last3=Tritter |first3=A. |last4=Olsztyn |first4=J. |last5=Mock |first5=O. |last6=Steel |first6=T. |title=The Problem of Programming Communication with Changing Machines: A Proposed Solution |journal=Communications of the ACM |date=August 1958 |volume=1 |issue=8 |pages=12–18 |doi=10.1145/368892.368915 |doi-access=free }} Later on, others, including McKeeman et al. McKeeman et al., A Compiler Generator (1971) and P.D. Terry, explained the usage of T-diagrams with further detail. T-diagrams are also now used to describe client-server interconnectivity on the World Wide Web.Patrick Closhen, Hans-Juergen Hoffmann, et al. 1997: [http://www.h-j-hoffmann.de/PU/docs/HJH-19990217-etal-T-diagrams.doc T-Diagrams as Visual Language to Illustrate WWW Technology], Darmstadt University of Technology, Darmstadt, Germany A teaching tool TDiag has been implemented at Leipzig University, Germany.Michael Hielscher, et al.: [http://www.michael-hielscher.de/atocc/Tut_TDiag1.pdf TDiag: Entwicklung und Ausführung eines T-Diagramms], in German