Felix Pleşoianu, 2009-05-22

Make Your Own Programming Language

This is a 5-part tutorial on how to implement a programming language. It is intended for people with some programming experience, who want to know how their compiler, interpreter or virtual machine works. Hint: it's not magic.

There are many articles (even books!) on this topic. I'm writing mine with two purposes in mind:

  1. to keep it short and easy to follow by (hopefully) any programmer;
  2. to have an useful interpreter at the end of each installment.

The reader is expected to have basic-to-average programming knowledge, especially about objects, data structures and variable scope. Knowing some Javascript is necessary in order to understand the sample code.

Table of contents

  1. Part 0: motivations — DRAFT 1 — 2008-10-09
  2. Part 1: numbers and words — DRAFT 2 — 2008-09-06 (source code for part 1)
  3. Part 2: variables, string, comments — DRAFT — 2008-09-07 (source code for part 2)
  4. Part 3: user-defined words — DRAFT — 2009-05-17 (source code for part 3)
  5. Part 4: control structures — DRAFT — 2009-06-07 (source code for part 4)
  6. Part 5: conclusions — DRAFT — 2009-06-07
  7. Appendix A: a practical implementation — WORK IN PROGRESS — 2010-06-14

Each part comes with a working Javascript implementation of the interpreter described until that point. The code is tested and believed to work in Opera 9.5+, Firefox 3, WebKit and Konqueror.

Acknowledgements

Alex Bolboacă has been kind enough to review parts of the tutorial.

Syntax highlighting of the code samples is powered by JUSH.


Creative Commons License
Make Your Own Programming Language by Felix Pleşoianu is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.