Tutorial 4: Scintacks and Some Antics (Syntax and Semantics) (October 3-5, 2007)
This week we will be looking at the mathematical structure and meaning of a Scheme program. The material here comes primarily from Lecture Module 4 in the class notes. It's quite fortunate (and unusual) that we are working in a programming language in which we can rigorously define the meaning of every program with relatively few rules. The only unfortuanate side effect is that we'll have to endure a week without the fun stories and problem descriptions that we've all grown accustomed to in these tutorials.
Give a full syntactic/semantic analysis of each of the following Scheme programs. That is, go through (one by one) each of the substitution steps to completely evaluate each expression to a value. If an error occurs, making evaluation impossible, pinpoint the exact location and nature of the error (syntax, semantics, or other).