/eva-source

Source code for "Essentials of Interpretation" class

Primary LanguageJavaScriptMIT LicenseMIT

Building an Interpreter from scratch

This is a repository from the Essentials of Interpretation class (aka Building an Interpreter from scratch).

As mentioned in the course description, we want our students to understand and implement every piece of detail from the interpreter themselves, instead of copy-pasting from the final solution.

Therefore, the source code here provides only the overall structure of the project, leaving the missing parts as assignments. The "Implement here..." comments with references to appropriate video lectures, show specific places which are needed to be completed in order to finalize the full working interpreter.

Example:

if (exp[0] === 'var') {
  // Implement here: see Lecture 6
}

The main test runner is located in __tests__/run.js which can be executed to validate solutions.

Enroll

You can enroll to the full course here:

More details, classes, articles and info is on http://dmitrysoshnikov.com.