General Description of Similix
Similix is an autoprojector (self-applicable partial evaluator) for a
large higher-order subset of the strict functional language Scheme.
Similix treats source programs that use a limited class of
side-effects, for instance input/output operations. Similix handles
partially static data structures.
Similix is automatic: in general, no user annotations (such as
unfolding information) are required; user assistance may in some cases
be required to avoid looping, however. Similix gives certain
guarantees concerning the residual programs it generates: computations
are never discarded (partial evaluation thus preserves termination
properties) and never duplicated.
Similix is well-suited for partially evaluating for instance
interpreters that use environments represented as functions and
interpreters written in continuation passing style. Since Similix is
self-applicable, stand-alone compilers can be generated from
Similix is highly portable. It conforms to the IEEE and R4RS Scheme
standards, but it also runs under R3RS Scheme. This distribution should
immediately enable you to run Similix on Scm and on Chez Scheme. We
have tested this version of Similix on Scm version 4c0 and on Chez
Scheme version 3.2.
Similix 5.1 is based on the former Similix 4.0 (by Anders Bondorf
(firstname.lastname@example.org) and Olivier Danvy (email@example.com)). A part of Similix
5.1 has been written jointly by Anders Bondorf and Jesper
Similix 5.1 is an update of Similix 5.0, containing a number of updates and
improvements. Similix 5.1 is also bundled with the Simu
system written by Liping Zong; an X windows interface to Similix.
contains a section that summarizes some often used binding-time
improvements. These are needed in order to obtain good results of
partial evaluation. The section is partly Similix-specific, but parts
of it are of more general interest.
How to get the newest version of Similix
The current release of Similix is version 5.1. You can download a tar
packed version by FTP from ftp.diku.dk. (To decode
the file Similix-5.1-2.tar.gz recieved in this way, run
Similix-5.1-2.tar.gz | tar xvpf - ). If you want to get more information on
Similix and how to optain before actually doing so, you might do so by
reading the README file
of the distribution.
How to contact the Similix group at DIKU
Currently the group is:
Mailing Address e-mail: firstname.lastname@example.org
Any feedback you give us on Similix (or Simu) is appreciated.