Similix

Similix

An autoprojector (self-applicable partial evaluator) for a higher order subset of the strict functional language Scheme. Similix handles programs with user defined primitive abstract data type operators which may process global variables (such as input/output operators).

Version 5.0.

Anders Bondorf <anders@diku.dk>

conformance: extension of large subset of R4RS Scheme.

requires: Scheme

ports: Scm, Chez Scheme

portability: high

E-mail: Anders Bondorf <anders@diku.dk>

ftp://ftp.diku.dk/pub/diku/dists/Similix.tar.Z.
This article is provided by FOLDOC - Free Online Dictionary of Computing (foldoc.org)
References in periodicals archive ?
We have used two different systems for developing the parser generators: Bondorf's Similix [Bondorf 1991] for the initial experiments, and Thiemann's PGG system [Thiemann 1996a] for the production version.
The question is: "Is it possible to replace the compile-link-load paradigm by exploiting the ability to perform static specialization at a variety of points in time (not just at compilation time)?" This can be supported either via linguistic mechanisms (e.g., run-time code generation mechanisms, as found in C, for instance) or by tools such as partial evaluators (e.g., Similix, Schism, CMix, etc.).
Bondorf and Jorgensen [1993] implemented both 0-[CFA.sub.[subset or equal to]] and 0-[CFA.sub.=] for Scheme as part of the partial evaluator Similix. For Scheme, the condition of finite types does not hold in general.
unoptimized analysis time benchmark run time n = 1 n= [infinity] texer 1.18 0.37 0.39 similix 10.73 1.36 1.25 ddd 15.76 1.38 0.46 conform 0.22 0.05 0.05 dynamic 0.25 0.36 0.34 early 0.08 0.06 0.07 em-fun 46.72 0.08 0.08 em-imp 27.09 0.08 0.08 graphs 65.86 0.04 0.04 interpret 1.10 0.55 3.12 lattice 40.36 0.03 0.04 matrix 38.81 0.06 0.08 maze 8.12 0.06 0.06 nbody 34.30 0.21 0.20 splay 0.27 0.06 0.06 run-time speedup benchmark n = 0 n = [infinity] texer 6% 5% similix 1% 1% ddd 0% 0% conform 9% 9% dynamic 0% 0% early 12% 12% em-fun 5% 5% em-imp 5% 5% graphs 6% 7% interpret 0% 0% lattice 9% 9% matrix 7% 7% maze 9% 9% nbody 16% 16% splay 14% 14% The effects of the two analyses are also measured quantitatively.