Table of Contents for Programming Languages: a survey
There are many languages whose goal is not to be a good language for humans to write or read code in, but rather to be a good language for a compiler or interpreter to target.
TODO: separate this section into 'implementation tours' in the implementation section, and purely target language tours, here.
http://docs.python.org/devguide/compiler.html
PyPy? is a reimplementation of Python in RPython.
RPython is a restricted subset of Python, with restrictions on dynamic typing, reflection, and metaprogramming to enable type inference at compile time.
PyPy? is also a compiler for RPython, which adds in JIT analysis. The RPython compiler is written in Python.
Then the PyPy? Python interpreter is written in a mixture of Python (for slow initialization) and RPython (for the fast part) (i think?). This way the JIT analysis is applied to the result. I think? Not sure I understand.
I think it provides an extension API called CPyExt?, not sure though.
RPython:
Perl6 source code is parsed and the parse tree is annotated by firing "action methods" during parsing. The annotated AST is called a QAST. The QAST is then compiled to a virtual machine bytecode. Various virtual machines are planned to be supported, include Parrot, JVM, and MoarVM?