Programming language interpreters, including LISP, Scheme, and Prolog.
Obligatory BadgeFest:
Much of the code in this library was based on or inspired by the book 'Programming Languages: An Interpreter-Based Approach', by Samuel N. Kamin, 1990, Addison Wesley, ISBN 0-201-06824-9.
Build and install the app via:
$ npm run all
$ npm link
Start an interpreter via the command:
$ intrp [language-name]
... where [language-name] is one of:
- minimal
- chapter1
- lisp
- apl
- scheme
- sasl
- clu
- smalltalk
- prolog
$ intrp scheme
This is the command line interface for thaw-interpreter
Starting the read-evaluate-print loop:
> (+ 2 3)
5
> exit
Exiting...
$
The interpreter provides a limited facility for running scripts. Currently, it is capable of reducing Lambda calculus expressions.
Example: Addition of two Church numerals using pure Lambda calculus:
$ ./run-script.js lcaug examples/scripts/lambda-calculus-augmented-syntax/test1.lca
Expression as string: (+ 2 3)
Parsed expression: λf.λx.((λf.λx.(f (f (f x))) f) ((λf.λx.(f (f x)) f) x))
Reduced expression: Integer 5