Develop an understanding of how programming languages differ. Learn how programming language features are implemented. Learn to describe the behavior of programming language features. Learn to understand current literature in programming language design. Learn how to write programs in a functional language.
Sucessful programming requires managing complexity.
Good programming languages provide a notation that helps this process. What if you were asked to add the description of a new feature to an interpreter. In general, we cannot describe a new feature without coming to terms with its syntax, its effect on our data model, and its semantics. You have learned a style of programming language specification known as operational semantics. An operational semantics uses an interpreter to describe the behavior of a programming language feature.