Skip to content

ilya-klyuchnikov/sc-mini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
              + Generalization

However, 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 Propagation

In 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). The Monad Reader 23 (2014)

About

SC Mini is a "minimal" positive supercompiler

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published