https://github.com/ilya-klyuchnikov/sc-mini
SC Mini is a "minimal" positive supercompiler
https://github.com/ilya-klyuchnikov/sc-mini
supercompilation
Last synced: 2 months ago
JSON representation
SC Mini is a "minimal" positive supercompiler
- Host: GitHub
- URL: https://github.com/ilya-klyuchnikov/sc-mini
- Owner: ilya-klyuchnikov
- Created: 2011-02-13T15:53:52.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2020-11-21T09:43:13.000Z (almost 5 years ago)
- Last Synced: 2025-04-30T17:43:04.824Z (6 months ago)
- Topics: supercompilation
- Language: Haskell
- Homepage:
- Size: 129 KB
- Stars: 47
- Watchers: 4
- Forks: 13
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Minimal Supercompiler
This is a minimal supercompiler (`sc-mini`).
The goal is to stress the main features of supercompilation for a working functional programmer.
Its design is an attempt to illustrate the following formula:Supercompiler = Driving
+ Positive information propagation
+ Folding
+ Simplification
+ GeneralizationHowever, it turns out to be not so easy task. So here we illustrate this formula step-by-step:
1. Prototype = Driving + Generalization + Folding
2. Deforester = Prototype + Simplification of graph of configurations
3. Supercompiler = Deforester + Positive Information PropagationIn order to catch the idea of this supercompiler, just look into the following modules into the following order:
1. Prototype
2. Deforester
3. Supercompiler## Detailed tutorial
There is a tutorial (64 pages) explaining in detail every aspect of `sc-mini`.
*Ilya Klyuchnikov and Dimitur Krustev*.
[Supercompilation: Ideas and Methods (+appendix)](https://themonadreader.files.wordpress.com/2014/04/super-final.pdf).
The Monad Reader 23 (2014)