# Cat to C++ Translator written in C++

## Christopher Diggins — 2007-06-03 22:53:48

    I've just released version 0.1 of a public domain Level-1 Cat to C++

    compiler (written in C++) at

    http://code.google.com/p/cat-language/downloads/list. This

    implementation bootstraps a Level-1 implementation of Cat from a

    Level-0 implementation. There are a hundred unit tests and only a

    handful of predefined functions so this is a very stable release.

    The translation is done without static type-checking instead the

    resulting code is implemented using optimized polymorphic variant

    types (see http://www.ddj.com/dept/cpp/184402027 and

    http://www.codeproject.com/cpp/dynamic_typing.asp ) and stable

    fast-growing stacks (see http://www.codeproject.com/cpp/fast-stack.asp

    ).

    For an updated list of primitives that now contains unit tests for all

    of the level-0 and level-1 primitives and better definitions see

    http://www.cat-language.com/primitives.html.

    This release is primarily intended to help people who are interested

    in possibly using Cat as a back-end for other programming languages

    but who prefer to work with C++ than C#. However, the code base is

    should be useful to any language implementer. Using Cat as a back-end

    now gets you the following for free:

    - an interactive interpreter (written in C#)

    - a Cat to MSIL compiler (this is built in to the interpreter)

    - a Cat to C++ translator (written in C++)

    These are all projects which I have been developing single-handedly.

    As more people get involved, you can expect to see the number of

    compilers and translators to and from Cat increase quickly.

    Other Cat projects by other people that I am aware of are:

    - a statically typed Cat to C++ translator

    - a Cat to assembly translator

    - a Cat to Omega (a dialect of Haskell) translator

    Cheers,

    Christopher Diggins

    http://www.cdiggins.com