# milly milly is an hobby, and should not be taken seriously. Interpreter for a Minimal ML-like language whose ideal goal is to be used for bootstrapping compilers and interpreters. ## How to build milly's interpreter is written in portable ISO C11, sources are in `src/` and header files are in `include/`. If your system happens to have a `make` implementation compatible with **GNU Make**, you can just run: > make Otherwise, something like this should work: > $(CC) -std=c11 -o milly -Iinclude/ src/*.c ## The language milly is a minimal dialect of Standard ML and Haskell, here is a list of the features (or better, limitations) I want to introduce: - Keep the implementation <5000 LOC - Eager evaluation (call by value) - Algebraic Datatypes (pretty useful for representing syntax trees) - First class functions - Pattern patching (pretty useful for analyzing syntax trees) - Integers, booleans, strings - Mutable `ref` cell - FFI to C - Polymorphic types à la Hindley Milner (probably unfeasible) - Automatic currying of functions, with optimised partial evaluation (unfeasible) - Delimited continuations (this is an overkill) milly's full grammar is specified as a pair of lex and yacc files in `ref_parser/`.