Sigma, an interpreted functional programming language implemented in C++

Sigma, an interpreted functional programming language implemented in C++

Post by Thant Tessma » Thu, 24 Jul 2003 07:52:20

Version 0.4 is now available:

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

Sigma implements first-class environments and 'suspended' expressions as
what readers of comp.object might find an interesting alternative to
more traditional object systems. See the end of the tutorial referenced
in the above web page for a description.

The read/eval/print loop, although implemented entirely in C++, was
heavily inspired by Scheme.


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.




1. sigma, an interpreted, functional extension language for C++

Sigma is a small, interpreted, functional programming language. Sigma
is also the collection of C++ library components from which the
interpreter is built. Sigma's form is casually inspired by (but not at
all faithful to) Scheme, Standard ML, and Dylan.

Sigma is not finished (in the sense that it isn't yet very practical
for much right out of the box). However, the core interpreter works.

I'm releasing a beta (0.3) because some may find it interesting in
that it is an attempt to implement a fully-fledged functional
programming language interpreter from as few conceptual components as
possible given C++ as an implementation language. (I'm also releasing
it to get my mind off of it for a while and get back to my day job and
real life.)

The software is free. Comments are of course welcome, but I am not
offering support of any kind, and I make no claims about its
suitability for any purpose.


      [ about comp.lang.c++.moderated. First time posters: do this! ]

2. Microsoft Sidewinder Precision Pro

3. How to ActiveX-enable an interpreted programming language?

4. How about old software to become freely available ?

5. game programming + functional/logic languages

6. Accessing Newtorked Computer

7. C++ books, The Standard C++ Library & The C++ Programming Language

8. mac address for slc

9. found a new interpreted language

10. functional programming in C++

11. Functional Programming Style with C++

12. Found a new interpreted language

13. found a new interpreted language