Jump to content

UNCOL: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎top: reducing an N×M problem to N+M
Change authorship claim. The previous version stated Melvin Conway introduced the idea of UNCOL, which is wrong. In Conway's own "Proposal for an UNCOL", he refers back to the actual source of the concept: a paper published earlier in the same year.
Line 1: Line 1:
'''UNCOL''' ('''Universal Computer Oriented Language''') was a proposed universal [[intermediate language]] for [[compiler]]s introduced by [[Melvin Conway|Melvin E. Conway]] in 1958. 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}}</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 in 1961 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.


==History==
==History==

Revision as of 21:14, 21 February 2022

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

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

Notes

  1. ^ 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.
  2. ^ John Levine (23 November 2021). "UNCOL and Reversing modifications from mailing lists". dmarc-ietf (Mailing list). Retrieved 24 November 2021.
  3. ^ John English, Introduction to Operating Systems: Behind the Desktop, Palgrave MacMillan 2005, ISBN 0230374085, p. 10

References

  • 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).