Interpreter and minimal supercompiler for simple lazy language (first-order functional language) written on Stratego transformation language (Spoofax language workbench).
This project has several goals:
- use convenient environment to experiment with supercompiler;
- use strategic term rewriting as DSL for program transformation to build interpreter and supercompiler (explore pros and cons);
- reuse interpreter (or it's parts) to write configuration tree builder.
Stratego-sll works on Eclipse platform and provides editor for source Simple Lazy Language (SLL) with syntax highlighting & checking, auto-completion.
Source SLL programs can be executed and traced.
Transformation includes: configuration graph builder, deforestation and positive supercompilation.
Configuration graph can be translated to DOT-format. This format can be used to visualize graph in GraphViz and related tools(one may use Eclipse plugin for this purpose - see readme).
I hope, this project can be useful for educational purposes and for experimenting with supercompilation.
Best regards,
Danil Annenkov