Class Lectures and Reading Assignments
CS 31600
Programming Languages
Spring, 2018

This page documents what we do in class. It contains Java programs that we will discuss in class, reading assignments, simple homework exercises that you can work on for practice and exam preparation (not for credit), and links to other sources of information.

See the homework assignment page for your fourth programming assignment.

The following zip file contains files that define an interpreter that adds nested functions, lambda expressions, and closures to Language_2.

The following zip file contains files that define an interpreter that adds functions to Language_1.

The midterm exam is today.

The first midterm exam will be Thursday, March 29. The exam is over the material on expression grammars and recursive descent parsers from Grammars-and-Parsing.zip. You should also read the chapters assigned below.

Here is a file that contains review problems for the midterm exam.

The following zip file contains files that define an interpreter for a simple programming language. This simple language has global variables, if-statements, while-loops, and two data types, booleans and intgers.

Spring Break - No class today.

Spring Break - No class today.

See the homework assignment page for your third programming assignment.

See the homework assignment page for your second programming assignment.

Read Chapter 4 and Section 5.1 from Chapter 5 in the following book (you need to be on campus to be able to download this chapter). This is a pretty good explanation of "recursive descent parsing".

Here is a list of some simple recursive descent parsing patterns.

Read Sections 2.1 - 2.6 from Chapter 2 in the following book (you need to be on campus to be able to download this chapter).

For next week, read this introduction to parsing.

Read Chapter 3 in the following book (you need to be on campus to be able to download this chapter).

The following zip file contains a collection of simple parsers that we will study.

See the homework assignment page for your first programming assignment.

Read Sections 2.1 - 2.6, 2.8, and 2.9 from Chapter 2 in the following book (you need to be on campus to be able to download this chapter).

For next week, read the following explanations of syntax, grammars, BNF, and parse trees.

We will begin the course by studying tree data structures. Read the following two chapters.

The following zip file contains Java programs that implement and process binary trees.