# Theory Programming Language Assignment

** **

- What is SIMD and MIMD? Specify what each is short for and briefly describe.

- Describe why intermediate code is used in the compilation process.

- What is the main difference between Von Neumann Architecture and Harvard Architecture?

- Specify, and describe in fair detail, at least 4 language design criteria.

- What is functional programming?
**Describe in detail**.

- What is referential transparency?

- What is lexical analysis? Describe in detail.

- Draw the parse tree for the following derivation:

<assign> => <id> = <expr>

=> A = <expr>

=> A = <id> * <expr>

=> A = B * <expr>

=> A = B * <id> + <expr>

=> A = B * C + <expr>

=> A = B * C + <id>+<expr>

=> A = B * C + D + <expr>

=> A = B * C + D + <id> * <expr>

=> A = B * C + D + A * <expr>

=> A = B * C + D + A * (<expr>)

=> A = B * C + D + A * (<id> + <expr>)

=> A = B * C + D + A * (B + <expr>)

=> A = B * C + D + A * (B + <id>)

=> A = B * C + D + A * (B + C)

- Specify 3 design goals for C++