Tombstone diagram: Difference between revisions
m Dated {{Where}}. (Build p613) |
Citation bot (talk | contribs) Removed URL that duplicated identifier. Removed access-date with no URL. | Use this bot. Report bugs. | Suggested by Dominic3203 | Category:Compiler construction | #UCB_Category 47/73 |
||
(30 intermediate revisions by 21 users not shown) | |||
Line 1: | Line 1: | ||
[[File:T-diagram.png|thumb|Tombstone diagram representing an [[Ada (programming language)|Ada]] compiler written in [[C (programming language)|C]] that produces [[machine code]].]] |
[[File:T-diagram.png|thumb|Tombstone diagram representing an [[Ada (programming language)|Ada]] compiler written in [[C (programming language)|C]] that produces [[machine code]].]] |
||
[[File:Bootstrapping-t-diagram.png|thumb|Representation of the process of [[bootstrapping (compilers)|bootstrapping]] a C compiler written in C, by compiling it using another compiler written in machine code.]] |
[[File:Bootstrapping-t-diagram.png|thumb|Representation of the process of [[bootstrapping (compilers)|bootstrapping]] 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 [[Metaprogramming|language processing programs]]. They are used to illustrate and reason about transformations from a [[source code|source language]] (left of T) to a [[Target language (computing)|target language]] (right of T) realised in an [[programming language implementation |implementation language]] (bottom of T). They are most commonly found describing complicated processes for [[Bootstrapping (compilers)|bootstrapping]], [[porting]], and [[Self-hosting (compilers)|self-compiling]] of compilers, interpreters, and [[General purpose macro processor|macro-processors]].<ref name="Terry">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]</ref> |
||
T diagrams were first introduced for describing bootstrapping and cross-compiling compilers in McKeeman et al. ''A Compiler Generator'' (1971). Conway described the broader concept before that with his [[UNCOL]] in 1958, to which Bratman added in 1961: H. Bratman, “An alternate form of the ´UNCOL diagram´“, Comm. ACM 4 (March 1961) 3, p. 142. Later on, others, including P.D. Terry, gave an explanation and usage of T-diagrams in their textbooks on the topic of compiler construction. Cf. Terry, 1997, [http://scifac.ru.ac.za/compilers/cha03g.htm Chapter 3]. T-diagrams are also now used to describe client-server interconnectivity on the World Wide Web: cf. Patrick Closhen, et al. 1997: [http://www.pu.informatik.tu-darmstadt.de/docs/HJH-19990217-etal-T-diagrams.doc ''T-Diagrams as Visual Language to Illustrate WWW Technology''], Darmstadt University of Technology, Darmstadt, Germany |
|||
T-diagrams were first used for describing bootstrapping and cross-compiling compilers by Harvey Bratman in 1961,<ref>{{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 }}</ref> who reshaped the diagrams originally introduced by Strong et al. (1958) to illustrate [[UNCOL]]. <ref>{{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 }}</ref> Later on, others, including McKeeman et al. <ref name="McKeeman">[[William M. McKeeman|McKeeman]] et al., ''A Compiler Generator'' (1971)</ref> and P.D. Terry,<ref name="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.<ref name="Closhen">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</ref> A teaching tool ''TDiag'' has been implemented at [[Leipzig University]], Germany.<ref name="Hielscher">Michael Hielscher, et al.: [http://www.michael-hielscher.de/atocc/Tut_TDiag1.pdf ''TDiag: Entwicklung und Ausführung eines T-Diagramms''], in German</ref> |
|||
</ref>, [[porting]], and [[Self-hosting|self-compiling]] of compilers, interpreters, and [[General purpose macro processor|macro-processors]]. |
|||
==See also== |
==See also== |
||
Line 13: | Line 13: | ||
{{Reflist}} |
{{Reflist}} |
||
⚫ | |||
[[Category:Compilers]] |
[[Category:Compilers]] |
||
[[Category:Compiler construction]] |
[[Category:Compiler construction]] |
||
[[Category:Computer programming]] |
[[Category:Computer programming]] |
||
[[Category:Self-hosting software]] |
[[Category:Self-hosting software]] |
||
[[Category:Program transformation]] |
|||
⚫ |
Latest revision as of 17:51, 23 December 2024
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.[1]
T-diagrams were first used for describing bootstrapping and cross-compiling compilers by Harvey Bratman in 1961,[2] who reshaped the diagrams originally introduced by Strong et al. (1958) to illustrate UNCOL. [3] Later on, others, including McKeeman et al. [4] and P.D. Terry,[1] 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.[5] A teaching tool TDiag has been implemented at Leipzig University, Germany.[6]
See also
[edit]References
[edit]- ^ a b Terry, 1997, Chapter 2 and Chapter 3
- ^ Bratman, Harvey (March 1961). "A alternate form of the "UNCOL diagram"". Communications of the ACM. 4 (3): 142. doi:10.1145/366199.366249.
- ^ Strong, J.; Wegstein, J.; Tritter, A.; Olsztyn, J.; Mock, O.; Steel, T. (August 1958). "The Problem of Programming Communication with Changing Machines: A Proposed Solution". Communications of the ACM. 1 (8): 12–18. doi:10.1145/368892.368915.
- ^ McKeeman et al., A Compiler Generator (1971)
- ^ Patrick Closhen, Hans-Juergen Hoffmann, et al. 1997: T-Diagrams as Visual Language to Illustrate WWW Technology, Darmstadt University of Technology, Darmstadt, Germany
- ^ Michael Hielscher, et al.: TDiag: Entwicklung und Ausführung eines T-Diagramms, in German