Release: Similix 5.0 Scheme partial evaluator

anders@diku.dk (Anders Bondorf)
Tue, 18 May 1993 09:01:09 GMT

          From comp.compilers

Related articles
Release: Similix 5.0 Scheme partial evaluator anders@diku.dk (1993-05-18)
| List of all articles for this month |
Newsgroups: comp.compilers
From: anders@diku.dk (Anders Bondorf)
Keywords: Scheme, available, FTP
Organization: Department of Computer Science, U of Copenhagen
Date: Tue, 18 May 1993 09:01:09 GMT

                -----------------------------------------------------
                -----------------------------------------------------
                                                        Release:


                Self-applicable partial evaluator for a Scheme subset


                                                      Similix 5.0


                                        available via anonymous ftp
                -----------------------------------------------------
                -----------------------------------------------------




        How to get Similix by ftp is described in the end of this mail


-----------------------------------------------------------------------------
-----------------------------------------------------------------------------




                                        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 interpreters.


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.0 is based on the former Similix 4.0 (by Anders Bondorf and
Olivier Danvy). A part of Similix 5.0 has been written jointly by Anders
Bondorf and Jesper J{\o}rgensen.


The manual 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.


-----------------------------------------------------------------------------
-----------------------------------------------------------------------------


                              Main improvements from Similix 4.0
                              ----------------------------------


-- Similix 5.0 is highly portable.


-- A larger Scheme subset is handled, in particular internal
      definitions, letrec, and named (recursive) let.


-- Partially static data structures are now available.


-- User-defined constructors are now available (extension to Scheme).


-- Pattern-matching facilities are now available (extension to
      Scheme).


-- The preprocessing phase is much faster (e.g. binding-time
      analysis).


-- A trace facility for tracking infinite specialization is now
      available.


-- For binding-time debugging: the show-facility for inspecting
      preprocessed programs has been improved.


-- User-control of specialization/memoization point insertion is now
      possible; this enables dynamic choice of static values.


-- The file scheme.adt is now always automatically loaded, so
      user-programs need no longer contain the corresponding
      loadt-expression.


-- The manual has been improved in different ways; it now contains an
      index.


-----------------------------------------------------------------------------
-----------------------------------------------------------------------------


                                                Mailing Address
                                                ---------------


                Anders Bondorf
                DIKU, Department of Computer Science
                University of Copenhagen
                Universitetsparken 1
                DK-2100 Copenhagen \O
                Denmark


                e-mail: anders@diku.dk




-----------------------------------------------------------------------------
-----------------------------------------------------------------------------




                                Obtaining Similix via anonymous ftp:
                                ------------------------------------


                    ftp ftp.diku.dk


login: anonymous
password: <your username, full e-mail address>
                    cd pub/diku/dists
                    binary
                    hash
                    get Similix.tar.Z
                    bye




To decode the file Similix.tar.Z, run


                uncompress < Similix.tar.Z | tar xvpf -


A directory named


                Similix


then appears. Now read the file Similix/README.
--


Post a followup to this message

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