|Sigma, a functional programming language interpreter written in C++ email@example.com (Thant Tessman) (2003-07-25)|
|From:||Thant Tessman <firstname.lastname@example.org>|
|Date:||25 Jul 2003 21:16:44 -0400|
|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.
Return to the
Search the comp.compilers archives again.