The approach used in the book is pragmatic. Commercial programming languages are divided in major family groups, and the main features of each group are discussed. Part VI (Chapters 13 and 14) then abstracts from the details of commercial languages and presents the fundamental principles underlying programming languages. You are the specialists for which these chapters are written. As the book argues on p.26:
A formal definition is a precise description of the syntax and semantics of a language; it is aimed at specialists.We will pretty much follow the book but instead of using English to discuss and understand programming languages, we will use programs. In other words, we will use the same approach of Part VI throughout the book.
/local/apps/Lang/Java/java-1.2
.
/local/apps/Lang/ocaml-2.00/ /local/apps/Lang/sml /local/apps/mosml
Date | Topic | Due | Notes |
T 9/28 | Introduction; Ch. 1; Grammars; Ch. 2 | Lecture by Prof. Michal Young | |
U 9/30 | Grammars; Ch. 2 | Lecture by Prof. Michal Young | |
T 10/5 | Datatypes; Pattern-matching; Ch. 8.1-8.3; 9.1 - 9.2 | HW 1 | |
U 10/7 | ML; Interpreters; Ch. 9 | ||
T 10/12 | Loops; Invariants; Ch. 3.1-3.5 | HW 2 | |
U 10/14 | Partial Correctness; Ch. 3.6-3.7 | ||
T 10/19 | Types and Storage Allocation; Ch. 4.1-4.8 | HW 3 | |
U 10/21 | Type Checking; Ch. 4.9; 14.5 | ||
T 10/26 | Parameter-Passing; Scope; Ch. 5.1-5.4 | HW 4 | |
U 10/28 | Activation Records; Ch. 5.5-5.7 | ||
T 11/2 | Review | ||
U 11/4 | Midterm | ||
T 11/9 | Encapsulation; OO Design; Ch 6 | HW 5 | Using Java not C++ |
U 11/11 | Objects; Inheritance; Ch. 7 | ||
T 11/16 | First-class functions | HW 6 | |
U 11/18 | Scope; Ch. 8.5 | ||
T 11/23 | Lambda Calculus; Ch. 14 | HW 7 | |
U 11/25 | Thanksgiving | ||
T 11/30 | Natural Semantics; Ch. 13.3 | HW 8 | |
U 12/2 | Denotational Semantics; Ch. 13.4 | ||
W 12/8 | Final at 8:00 AM !!!! |
sabry@cs.uoregon.edu