Sigma, a functional programming language interpreter written in C++

Thant Tessman <>
25 Jul 2003 21:16:44 -0400

          From comp.compilers

Related articles
Sigma, a functional programming language interpreter written in C++ (Thant Tessman) (2003-07-25)
| List of all articles for this month |

From: Thant Tessman <>
Newsgroups: comp.compilers
Date: 25 Jul 2003 21:16:44 -0400
Organization: XMission
Keywords: functional, available
Posted-Date: 25 Jul 2003 21:16:44 EDT

Version 0.4 is now available:

Sigma is a functional programming language and interpreter written in
just over 7K lines of C++.

Some readers of this group might find the implementation interesting in
that it includes a lexer generator and SLR parser generator which are
dynamic in the sense that you create a lexer object and parser object
out of programatically-specified rules and productions.

Also, it implements what I think is a novel alternative to more
traditional objects in what I'm calling "suspended" expressions combined
with first-class environments. They're reminiscent of Scheme's notion of
quoting, but I think a bit more powerful.



Major changes from 0.3 to 0.4:

Fixed a bug in the Integer class which allowed both positive and
negative zero to be represented.

The smart pointer class now correctly handles pointers to
nothing. (This bug never showed up in 0.3 of sigmatest because
pointers to nothing were never created.)

There was a bug in the specialized 'Package::contains' function for
Args. It checked for cell containership not within itself, but within
the cells contained within itself. This was an astoundingly subtle bug
because it only broke things in extremely contrived circumstances. (In
fact, it was impossible to invoke the bug in 0.3 sigmatest.)

Lists are supported.

First-class environments and "suspended" expressions are supported
as an alternative to more traditional object systems.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.