UNiversal Communication Oriented Language. In the 50's, computer scientists
tried to solve the problem that for m programming language
s, and n
machines that you want these languages to run on, you had to build m * n compiler
s. Huge efforts were expended to find a universal intermediate language, UNCOL. Thus you would need only m compilers to compile the source language to UNCOL, plus n compilers to compile from UNCOL to the native machine code.
Since then, this has been a holy grail for computer science, and efforts to find the UNCOL, in one form or another have been continuing. MLRISC and C-- are two such efforts (though they don't mention the infernal acronym). The Java Virtual Machine instructions may well be a candidate, having a lot of languages implemented to compile to it already, and others argue that the x86 instruction set is a de facto UNCOL.
Parts of this writeup taken from "Compiler Design" by Wilhelm & Maurer