HOME

TheInfoList



OR:

UNCOL (Universal Computer Oriented Language) is a universal
intermediate language An intermediate representation (IR) is the data structure or code used internally by a compiler or virtual machine to represent source code. An IR is designed to be conducive to further processing, such as optimization and translation. A "good ...
for
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
s. The idea was introduced in 1958, by a SHARE ad-hoc committee. 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 In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
architecture Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and constructing building ...
and
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
, thereby reducing an N×M problem to N+M. 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 "
t has T, or t, is the twentieth letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''tee'' (pronounced ), plural ''tees''. It is deri ...
been discussed by many independent persons as long ago as 1954." Macrakis (1993) summarizes its fate: UNCOL is sometimes used as a generic term for the idea of a universal intermediate language. The
Architecture Neutral Distribution Format The Architecture Neutral Distribution Format (ANDF) in computing is a technology allowing common "shrink wrapped" binary application programs to be distributed for use on conformant Unix systems, translated to run on different underlying hardware ...
is an example of an UNCOL in this sense, as are various
bytecode Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
systems such as
UCSD Pascal UCSD Pascal is a Pascal programming language system that runs on the UCSD p-System, a portable, highly machine-independent operating system. UCSD Pascal was first released in 1977. It was developed at the University of California, San Diego (UCS ...
's
p-code Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software Interpreter (computing), interpreter. Unlike Human-readable code, human-readable source code, bytecodes are compact nume ...
, and most notably
Java bytecode In computing, Java bytecode is the bytecode-structured instruction set of the Java virtual machine (JVM), a virtual machine that enables a computer to run programs written in the Java programming language and several other programming languages, ...
.John English, ''Introduction to Operating Systems: Behind the Desktop'', Palgrave MacMillan 2005, , p. 10


See also

*
LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate represen ...
*
GIMPLE The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...


Notes


References

*{{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 * 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 The Open Software Foundation (OSF) was a not-for-profit industry consortium for creating an open standard for an implementation of the operating system Unix. It was formed in 1988 and merged with X/Open in 1996, to become The Open Group. Despit ...
Research Institute, RI-ANDF-TP2-1, January, 1992. Available a
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). Compilers