UNCOL: Difference between revisions
m v2.04b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation) |
m Open access bot: doi updated in citation with #oabot. |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
'''UNCOL''' ('''Universal Computer Oriented Language''') is a universal [[intermediate language]] for [[compiler]]s. The idea was introduced in 1958, by a [[SHARE (computing)|SHARE]] ad-hoc committee.<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 | url=https://doi.org/10.1145/368892.368915 |access-date=21 February 2022}}</ref> It was never fully specified or implemented; in many ways it was more a concept than a language. |
'''UNCOL''' ('''Universal Computer Oriented Language''') is a universal [[intermediate language]] for [[compiler]]s. The idea was introduced in 1958, by a [[SHARE (computing)|SHARE]] ad-hoc committee.<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 | url=https://doi.org/10.1145/368892.368915 |access-date=21 February 2022|doi-access=free }}</ref> It was never fully specified or implemented; in many ways it was more a concept than a language. |
||
UNCOL was intended to make compilers economically available for each new [[instruction set]] [[computer architecture|architecture]] and [[programming language]], thereby reducing an N×M problem to N+M.<ref>{{cite mailing list |url=https://mailarchive.ietf.org/arch/msg/dmarc/mWIrFuomDC50hxgPi4QvO8VM6yQ |title=UNCOL and Reversing modifications from mailing lists |date=23 November 2021 |access-date=24 November 2021 |mailing-list=dmarc-ietf |author=[[John Levine]]}}</ref> Each machine architecture would require just one compiler back end, and each programming language would require one compiler front end. This was a very ambitious goal because compiler technology was in its infancy, and little was standardized in computer hardware and software. |
UNCOL was intended to make compilers economically available for each new [[instruction set]] [[computer architecture|architecture]] and [[programming language]], thereby reducing an N×M problem to N+M.<ref>{{cite mailing list |url=https://mailarchive.ietf.org/arch/msg/dmarc/mWIrFuomDC50hxgPi4QvO8VM6yQ |title=UNCOL and Reversing modifications from mailing lists |date=23 November 2021 |access-date=24 November 2021 |mailing-list=dmarc-ietf |author=[[John Levine]]}}</ref> Each machine architecture would require just one compiler back end, and each programming language would require one compiler front end. This was a very ambitious goal because compiler technology was in its infancy, and little was standardized in computer hardware and software. |
||
Line 10: | Line 10: | ||
In the 1970s, [[compiler-compiler]]s ultimately contributed to solving the problem that UNCOL set itself: the economical production of compilers for new languages and new machines.}} |
In the 1970s, [[compiler-compiler]]s ultimately contributed to solving the problem that UNCOL set itself: the economical production of compilers for new languages and new machines.}} |
||
UNCOL is sometimes used as a generic term for the idea of a universal intermediate language. |
UNCOL is sometimes used as a generic term for the idea of a universal intermediate language. The [[Architecture Neutral Distribution Format]] is an example of an UNCOL in this sense, as are various [[bytecode]] systems such as [[UCSD Pascal]]'s [[p-code machine|p-code]], and most notably [[Java bytecode]].<ref>John English, ''Introduction to Operating Systems: Behind the Desktop'', Palgrave MacMillan 2005, {{isbn|0230374085}}, p. 10</ref> |
||
==See also== |
==See also== |
||
Line 22: | Line 22: | ||
<!-- from Macrakis 1993 (inserted by Macrakis, 2006) --> |
<!-- from Macrakis 1993 (inserted by Macrakis, 2006) --> |
||
*{{cite journal|last1=Conway|first1=Melvin E.|title=Proposal for an UNCOL|journal=Communications of the ACM|date=1 October 1958|volume=1|issue=10|pages=5–8|doi=10.1145/368924.368928 |issn=0001-0782}} |
*{{cite journal|last1=Conway|first1=Melvin E.|title=Proposal for an UNCOL|journal=Communications of the ACM|date=1 October 1958|volume=1|issue=10|pages=5–8|doi=10.1145/368924.368928 |issn=0001-0782|doi-access=free}} |
||
* Jean E. Sammet, ''Programming Languages: History and Fundamentals'', Prentice-Hall, 1969. Chapter X.2: UNCOL (Significant Unimplemented Concepts), p. 708. |
* Jean E. Sammet, ''Programming Languages: History and Fundamentals'', Prentice-Hall, 1969. Chapter X.2: UNCOL (Significant Unimplemented Concepts), p. 708. |
||
* [[SHARE (computing)|SHARE]] ''Ad-Hoc'' Committee on Universal Languages (J. Strong, J. Olsztyn, J. Wegstein, O. Mock, A. Tritter, T. Steel), "The Problem of Programming Communication with Changing Machines", ''Communications of the ACM'' '''1''':8:12–18 (August 1958) and '''1''':9:9–15 (September 1958). |
* [[SHARE (computing)|SHARE]] ''Ad-Hoc'' Committee on Universal Languages (J. Strong, J. Olsztyn, J. Wegstein, O. Mock, A. Tritter, T. Steel), "The Problem of Programming Communication with Changing Machines", ''Communications of the ACM'' '''1''':8:12–18 (August 1958) and '''1''':9:9–15 (September 1958). |
Latest revision as of 22:30, 8 November 2023
UNCOL (Universal Computer Oriented Language) is a universal intermediate language for compilers. The idea was introduced in 1958, by a SHARE ad-hoc committee.[1] It was never fully specified or implemented; in many ways it was more a concept than a language.
UNCOL was intended to make compilers economically available for each new instruction set architecture and programming language, thereby reducing an N×M problem to N+M.[2] Each machine architecture would require just one compiler back end, and each programming language would require one compiler front end. This was a very ambitious goal because compiler technology was in its infancy, and little was standardized in computer hardware and software.
History[edit]
The concept of such a universal intermediate language is old: the SHARE report (1958) already says "[it has] been discussed by many independent persons as long ago as 1954." Macrakis (1993) summarizes its fate:
UNCOL was an ambitious effort for the early 1960s. An attempt to solve the compiler-writing problem, it ultimately failed because language and compiler technology were not yet mature. In the 1970s, compiler-compilers ultimately contributed to solving the problem that UNCOL set itself: the economical production of compilers for new languages and new machines.
UNCOL is sometimes used as a generic term for the idea of a universal intermediate language. The Architecture Neutral Distribution Format is an example of an UNCOL in this sense, as are various bytecode systems such as UCSD Pascal's p-code, and most notably Java bytecode.[3]
See also[edit]
Notes[edit]
- ^ 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. Retrieved 21 February 2022.
- ^ John Levine (23 November 2021). "UNCOL and Reversing modifications from mailing lists". dmarc-ietf (Mailing list). Retrieved 24 November 2021.
- ^ John English, Introduction to Operating Systems: Behind the Desktop, Palgrave MacMillan 2005, ISBN 0230374085, p. 10
References[edit]
- Conway, Melvin E. (1 October 1958). "Proposal for an UNCOL". Communications of the ACM. 1 (10): 5–8. doi:10.1145/368924.368928. ISSN 0001-0782.
- Jean E. Sammet, Programming Languages: History and Fundamentals, Prentice-Hall, 1969. Chapter X.2: UNCOL (Significant Unimplemented Concepts), p. 708.
- SHARE Ad-Hoc Committee on Universal Languages (J. Strong, J. Olsztyn, J. Wegstein, O. Mock, A. Tritter, T. Steel), "The Problem of Programming Communication with Changing Machines", Communications of the ACM 1:8:12–18 (August 1958) and 1:9:9–15 (September 1958).
- Stavros Macrakis, "From UNCOL to ANDF: Progress in Standard Intermediate Languages", White Paper, Open Software Foundation Research Institute, RI-ANDF-TP2-1, January, 1992. Available at CiteSeer
- T.B. Steel, Jr., "UNCOL: Universal Computer Oriented Language Revisited", Datamation (Jan/Feb 1960), p. 18.
- T.B. Steel, Jr., "A First Version of UNCOL", Proc. Western Joint Computer Conference 19:371 (Los Angeles, May 9–11, 1961).
- T.B. Steel, Jr., "UNCOL: The Myth and the Fact", Annual Review in Automatic Programming 2:325 (1961).