Question: Part 3 (50%) Simple Lisp Interpreter (Bison & Flex Programming) 1. Design and implement the language for the following simple Lisp interpreter. 2. Language design

Part 3 (50%) Simple Lisp Interpreter (Bison & Flex Programming)

1. Design and implement the language for the following simple Lisp interpreter.

2. Language design and implementation

2.1 number (of type double)

2.2 variable (atom)

Variable - the length of a variable-name can be up to 40 characters long

Support a symbol table to handle many variable entries (at least 100)

A variable is either undefined or to set for a number (type double).

2.3 list expression, for example,

(+ 1 2)

(+ 1.0 2.5)

(+ 1 2 3 4)

(+ (* 1 2) (- 3 4) )

2.4 setq statement to set a variable with a number (to be converted to double), for example,

(setq x 1.5)

2.5 lisp functions for basic arithmetic (+, -, *, /, 1+)

2.6 print function, for example, (print (+ a 10.2))

2.7 (exit) to terminate the program

3. Try your program with the sample test cases.

1

2.5

(+ 1 2)

(+ 1.0 2.5)

(+ 1 2 3 4)

(+ (* 2 3) 1 (- 5 4))

(setq x 3)

(setq y 4)

(+ x y)

(setq z123456789 100.0)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!