For Programmers: Free Programming Magazines  


Home > Archive > Functional > May 2007 > [ANN] Cat Version 0.14.0 Release









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author [ANN] Cat Version 0.14.0 Release
Christopher Diggins

2007-05-24, 7:07 pm

I've just released a major new version of the Cat programming language
(http://www.cat-language.com) and an extension called MetaCat (http://
www.cat-language.com/metacat.html). The most recent release can be
downloaded through Google code hosting (http://code.google.com/p/cat-
language/downloads/list).

Cat is a statically typed functional stack-based language, based on
the Joy programming language (http://www.latrobe.edu.au/philosophy/
phimvt/joy.html). Cat was designed primarily as a high-level
intermediate language for the translation, verification, and
optimization of programs written in multi-paradigm languages. Cat also
is intended for use as a language for teaching core computer science
and programming concepts.

The MetaCat language extends Cat with a macro term rewriting system
which is based on Manfred von Thun's paper A Rewriting System for Joy
(http://www.latrobe.edu.au/philosoph...joy/j07rrs.html) and is
similar to the GHC Rewrite Rules (http://www.haskell.org/ghc/docs/
latest/html/users_guide/rewrite-rules.html)

Cat has the following language features:

* strongly typed - all expressions have a well-defined type
* side-effect labeling - functions with side-effects are typed
differently from pure function
* purity - the level 0, level 1, and level 2, of the Cat
specification are entirely with side-effects. Side-effects in the rest
of the Cat language are managed by the type system.
* minimal syntactic constructs - apart from function and macro
definition syntax, the only syntactic constructs with predefined
meaning are the quotation operators "[" and "]"
* point-free form - the core language has no named parameters or
variables
* polymorphic variants - the "var" type allows dynamic dispatching
based on type
* type inference - type annotations are optional
* typed exceptions - exceptions can be thrown and caught in a type
safe manner

Features of the release:

* a Cat to Common Intermediate Language (CIL a.k.a. MSIL) compiler
(http://code.google.com/p/cat-language/wiki/Compilation)
* sub-expression evaluator (http://code.google.com/p/cat-language/
wiki/PartialEvaluation)
* function call inline expansion (http://code.google.com/p/cat-
language/wiki/InlineExpansion)
* over 500 unit tests
* basic graphic capabilities
* over 250 documented built-in and library defined primitive
functions (http://www.cat-language.com/primitives.html)
* multi-tiered specificiation (http://www.cat-language.com/
manual.html#compat) that allows different levels of compatibility with
the standard
* over 200 library defined optimization rules (http://cat-
language.googlecode.com/svn/trunk/macros.cat)
* the interpreter is released under the MIT license, but the source
code is released into the public domain.
* a simple converter from a variant of Cat with named parameters
called Kitten (http://www.cat-language.com/kitten.html) to the
standard point-free Cat.

Any questions, comments, or requests would be much appreciated.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2009 codecomments.com