Lab 6: Planning jLISP
Bard College – Computer Science – Design of Programming Languages

Over the next three weeks we’ll create a version of LISP in Java using the approach in Crafting Interperters. This week we will plan out the classes we will need for the interpreter. Next week, we will commence with the implementation. 

Our jLISP interpreter should support: (quoted) s-expressions, symbols, numbers, booleans, strings, and pairs; comments!

BONUS: make it work with Processing or some other Java library/framework.


How will you modify the Lox scanner for Lisp?  What will Token and TokenType look like?


How will you modify Lox’s parser for Lisp?

  1. Write down the grammar. 
  1. What methods will be needed for the recursive descent parser?


What sub-classes of Expression (and/or Statement) will we need. 

What does the Visitor interface look like?


How will you modify Interpreter

How will environments and closure be represented?


Create a Dropbox Paper document with any diagrams & code sketches.