Hace algo más de un mes, estuve trabajando en un intérprete del lenguaje Cat:
The Cat Programming Language
Cat is a functional stack-based programming language inspired by the Joy programming language. The primary differences is that Cat provides a static type system with type inferencing (like ML or Haskell), and a term rewriting macro language extension language called MetaCat.
Cat is a high-level intermediate language translation that can also be used as a stand alone language for simple application development. In this way it occupies a similar niche to PostScript. Cat is also an appropriate language for teaching of basic programming concepts.

Si no conocen el lenguaje Cat, recomiendaría leer:
Cat Tutorial
Cat Specification
Cat Primitives
Publiqué el código como parte de mi proyecto Code Katas en Google Code. El nombre que usé es AjCat:
http://code.google.com/p/ajcodekatas/source/browse/#svn/trunk/AjCat
La solución tiene tres proyectos:

La actual implementación no es completa. Solo soporta enteros, todavía no soporta objetos .NET, y no hay primitivas de gráficos. Pero está implementado gran parte de las primitivas y funciones definidas en Cat.
Corriendo el programa de consola, pueden ingresar y evaluar expresiones:

Este código está dedicado a Rodolfo Finocchieti (@rodolfof en Twitter) quien me dejó un comentario acá en este blog, comentándome de este lenguaje Cat, una idea fascinante.
Los tests están en verdes:

Y hay un buen code coverage

Como siempre, me divertí escribiendo este código.
Nos leemos!
Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez
Enjoying Eric Clapton Everyday I Have the Blues Live