Intermediate language
An intermediate language, in the context of esolangs, is a language most commonly used to aid translation from one language to another. Intermediate languages are often used just once per specific proof, and while quite often esoteric in themselves, they are seldom meant to be considered equal to well-designed esolanguages. Intermediate languages are often sketched up relatively quickly, are loosely defined (with many undefined features), and are not quite as interesting on their own (nor are they meant to be). A common trait is that they have very specific rules and limitations, which arises from their role as a step in the translation chain. Interestingly, in their intermediary role, they are likely to have some traits of both languages, the one that translates into them and the one they translate into.
Some examples in alphabetical order
- Black Turing-completeness proof uses Exeter. Minsky machine is translated into Exeter which is translated into Black.
- Forte Turing-completeness proof uses Ectoforte. Minsky machine is translated into Ectoforte which is translated into Forte.
- I/D machine Turing-completeness proof uses ErrorBucket. Cyclic tag is translated into ErrorBucket which is translated into I/D machine.
- Strelnokoff Turing-completeness proof uses Alternating 1-based Minsky machine. Minsky machine is translated into A1MM which is translated into Strelnokoff.