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.

Scanning

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

Parsing

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?

AST

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

What does the Visitor interface look like?

Evaluating

How will you modify Interpreter

How will environments and closure be represented?

Submission

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