This repository contains the source code used in the "Principles of Programming Languages" course taught at the Computer Science Dept of Ben Gurion University. Course material is available here. Exercises and practical sessions are available here.
The main part of this repo is a sequence of interpreters written in TypeScript with a functional style of a Scheme-like language. The languages start from a very simple subset of Scheme and increase up to a tail call optimized version using continuation passing style.
The repo also contains a small Prolog interpreter implemented in Racket.
- Clone the repository either using
git clone https://github.com/bguppl/interpreters.git
or download the archive from here. - Run
npm install
inside theinterpreters
folder.
Run npm test
inside the interpreters
folder.
Run npm run coverage
inside the interpreters
folder. A new folder called coverage
will be created.
Open the lcov-report/index.html
file inside it to see coverage statistics.
In each file of the tests, you can see which lines have been covered by a test.