Skip to content

remexre/evaltrees

master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

evaltrees

Build Status Dependency Status

A simple functional language, and a small-step interpreter for it. Additionally, shows the evaluation of the "main expression" as it proceeds. Intended as an instructional aid for CSCI2041 at the University of Minnesota.

The interpreter can be run in call-by-name, call-by-need, or call-by-value modes. Expression evaluations can be show as concrete or abstract syntax.

See doc/README.md for a description of the language's syntax.

Demo

asciicast

Missing Features

(These are features that will probably not be implemented (although PRs are welcome))

  • Polymorphic Recursion
    • This makes type inference undecidable
  • Higher-rank Polymorphism
    • This makes type inference undecidable
    • The current reification procedure for types assumes rank-1 polymorphism

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A simple term-rewriting interpreter that displays intermediate expressions.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published