#summary Definition and explanation of intermediate languages.
#labels Glossary

= Intermediate Language =

An intermediate language is a computer language generated from a higher level programming language. Intermediate languages are often generated by compilers for the purpose of further analysis or translation to other targets.

Intermediate languages often have minimal syntactic constructs and very simple semantics. Many intermediate languages are stack-based languages. 

== Cat as an Intermediate Language ==

Cat shares many of the common characteristics of intermediate languages: it has simple semantics, it is stack-based, and it has minimal syntactic constructs. One characteristic of Cat that is uncommon for intermediate languages is that it supports instructions as first-class values. 
