UNCOL

Last updated

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.

Contents

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