thaw-interpreter
TypeScript icon, indicating that this package has built-in type declarations

0.0.7 • Public • Published

thaw-interpreter

Programming language interpreters, including LISP, Scheme, and Prolog.

Obligatory BadgeFest:

apple atom circleci codeclimate git github npm packagephobia terminal typescript

status build status npm version latest tag npm total downloads watchers stars issues forks contributors branches releases commits last commit types install size known vulnerabilities lines of code technical debt maintainability test coverage tested with jest code style: prettier license

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.

Building and Installing the App

Build and install the app via:

$ npm run all
$ npm link

Launching the App

Start an interpreter via the command:

$ intrp [language-name]

... where [language-name] is one of:

  • minimal
  • chapter1
  • lisp
  • apl
  • scheme
  • sasl
  • clu
  • smalltalk
  • prolog

Session Example

$ intrp scheme

This is the command line interface for thaw-interpreter

Starting the read-evaluate-print loop:

> (+ 2 3)
5

> exit
Exiting...

$

The Script Runner

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

License

MIT

/thaw-interpreter/

    Package Sidebar

    Install

    npm i thaw-interpreter

    Weekly Downloads

    4

    Version

    0.0.7

    License

    MIT

    Unpacked Size

    827 kB

    Total Files

    15

    Last publish

    Collaborators

    • tom-weatherhead