This project involves the implementation of an parser and evaluator for an Erlang-inspired language. The language maintains a simplified syntax and semantics similar to Erlang, focusing on the core concepts of functional programming and message-passing concurrency. The evaluator and parser were developed in Haskell, using monads for handling language features such as function closures, pattern matching, and error handling.
The parser reads the languageās concrete syntax and converts it into abstract syntax trees, which are then processed by the evaluator. The evaluator handles sequential computation within the language, including expression evaluation and variable bindings. Key aspects of the evaluation model include the handling of function environments and exception management, ensuring that the language behaves predictably during execution.