This page documents what we do in class. It contains programs and handouts that we will discuss in class, reading assignments from our textbook, simple homework exercises that you can work on for practice and exam preparation (not for credit), links to other sources of information, etc.
The reading assignments are listed by the date on which they were assigned. The sample program files are listed by the date on which they were used. When you are viewing a source code page, you can use your browser's "File -> Save As..." menu item to save a copy of the code on your computer. It is a good idea for you to "play" with these example programs; compile them, run them, make simple changes to them and compile and run them again.
- Tuesday, May 1.
- The second exam will be Thursday, May 10.
Here is a collection of review problems for you to study from.
- Here is a handout that supplements Sections 12.6 - 12.8 from the textbook.
- The following zip file contains examples for Chapter 12.
- Thursday, April 26.
- Along with Chapter 12, read Chapter 4, Sections 4.1-4.4 (pages 43-57) from the textbook.
- Here is a handout about variables and the "C run time system" that is relevant to both Chapters 4 and 12.
- Here is a handout, about how C (and C++) programs get linked, that is relevant mostly to Chapter 4.
- The following zip file contains C programs that demonstrate the C runtime.
- Tuesday, April 24.
- Here is a solution to the sixth homework assignment.
- Read Chapter 12 (pages 181-203) from the textbook.
- The following zip file contains updated examples for Chapter 11.
- Thursday, April 19.
- Read Section 11.5 (pages 171-177) from the textbook.
- The following zip file contains some examples for Chapter 11.
- Tuesday, April 17.
- See the homework page for your last assignment.
- Tuesday, April 10.
- Here is a solution to the fifth homework assignment.
- Do Exercises 3 and 4 from the end of Chapter 10 (page 163). This is just a practice exercise. This is not homework that you will turn in.
- The following zip file contains examples for Chapter 10.
- Thursday, April 5.
- Read Sections 11.1 - 11.4 (pages 165-171) from the textbook.
- Tuesday, April 3.
- See the homework page for a description of the project that is due at the end of the semester.
- See the homework page for your sixth assignment.
- Read Chapter 10 (pages 148-162) from the textbook.
- The following zip file contains examples for Chapter 9.
- Thursday, March 29.
- The midterm exam is today.
- Read Chapter 9 (pages 133-144) from the textbook.
- Thursday, March 22.
- Here is a solution to the fourth homework assignment.
- The following zip file contains examples for Chapter 8.
- Tuesday, March 20.
- The midterm exam will be Thursday, March 29. Here is a collection of review problems for you to study from. This is not yet the complete list of review problems. I will add a few more problems to the list in the next few days.
- Thursday, March 8.
- Read Chapter 8 (pages 118-130) from the textbook.
- Do Exercises 1 - 5 from the end of Chapter 8 (pages 130-131). This is just a practice exercise. This is not homework that you will turn in.
- The following zip file contains examples for Chapter 7.
- Tuesday, March 6.
- See the homework page for your fifth assignment.
- Here is a solution to the second homework assignment.
- Read Sections 7.6 - 7.10 (pages 106-115) from the textbook.
- Do Exercises 2 and 4 from the end of Chapter 6 (page 102). This is just a practice exercise. This is not homework that you will turn in.
- The syllabus says that there is an exam this Thursday, but we will have the exam after spring break.
- Tuesday, February 28.
- Here is a solution to the first homework assignment.
- Read Sections 6.3 - 6.4 (pages 97-101) and Sections 7.1 - 7.5 (pages 103-106) from the textbook.
- The following zip file contains some simple examples of ML files. You can read these files into SML/NJ by using ML's "use" function.
- Thursday, February 23.
- See the homework page for your fourth assignment.
- Read Sections 6.1 - 6.2 (pages 86-97) from the textbook.
- Thursday, February 16.
- Read Sections 5.10 - 5.12 (pages 78-83) from the textbook.
- The following file contains recursive descent parsers for two data description languages, XML and JSON.
- Here is a very interesting explanation of the relationship between web browsers, such as Firefox and Chrome, and parsers.
- Thursday, February 9.
- Do Exercise 1 from the end of Chapter 3 (page 41). This is just a practice exercise. This is not homework that you will turn in.
- Read Sections 5.1 - 5.9 (pages 65-78) from the textbook.
- Here are slides for Chapter 5 (from the textbook's web site).
- You will need a version of the ML programming language in order to start reading Chapter 5. Use the following link to download a Windows installer for ML.
- Thursday, February 2.
- See the homework page for your third assignment.
- The following file contains examples of expression-like grammars that we can write parsers for.
The following file contains "recursive descent" parsers for these languages.
- Tuesday, January 31.
- Do Exercise 4 from the end of Chapter 3 (page 42). This is just a practice exercise. This is not homework that you will turn in.
- The following file contains more examples of expression-like grammars. It also contains a number of questions that you should try to answer.
- Thursday, January 26.
- Do Exercise 3 from the end of Chapter 3 (page 41). This is just a practice exercise. This is not homework that you will turn in.
- A simple C program that demonstrates an ambiguity in the syntax of C.
- The book title "Why we eat more than we think" is an example of syntactic ambiguity in English.
- The following sequence of files show how we build up to a correct grammar for arithmetic expressions.
- Tuesday, January 24.
- See the homework page for your second assignment.
- Read Sections 3.5 - 3.9 (pages 35-40) from the textbook.
- Do the following problems from the end of Chapter 2, Exercises 1a,c,f,h,i,j,l, 2a,c,f,h,i,j,l (page 24-25). These are just practice exercises. This is not homework that you will turn in.
- Here are slides for Chapter 3 (from the textbook's web site).
- A simple C program (and a Java version of it) that demonstrates the need to understand the syntax of C tokens.
Thursday, January 19.
- For next Tuesday, read Chapter 3, Sections 3.1-3.4 (pages 27-35) from the textbook.
- Here are slides for Chapter 2 (from the textbook's web site).
- Here is an example of a BNF, the syntax of JavaScript (two versions).
- Here is an interesting example of a BNF, the syntax of URL's.
- Here are some examples of syntax diagrams.
- Jason (a data description language)
- SQLite (a dialect of SQL)
Tuesday, January 17.
|
|