CS 440

D. Nordstrom
Fall 2015

Teaching assistant

The GTA for this course is:
Lubaba Tasneem
office hours Wednesday 3 - 5 pm, ENGR 4456
email: ltasneem_AT_gmu.edu

Final exam

The final exam is Tuesday, December 15, 10:30 - 1:15.
A review sheet for the final is here..

Course Material

The midterm will be October 22
A review sheet for the midterm is here.
A discussion of first and follow sets can be found here.
The slr(1) DFA example is here.

Project material

PVM Definition: http://cs.gmu.edu/~dnord/pvm.html
PAXI Definition: http://cs.gmu.edu/~dnord/cs440/paxi.html
PAXI Grammar in BNF (ASCII file) http://cs.gmu.edu/~dnord/cs440/paxi-bnf.txt

An interview with Stephen Johnson, the inventor of yacc, may interest you. It can be found here.

Programming assignments

Program 1 description is here.
The sample PVM program for Program 1 is here. When you run this short program on your PVM emulator (Program 1) it will display a prompt ("> ") at which you should enter a positive integer. The program will then count down from the value you entered to 0 and say "bye".
Program 2 description is here.
Sample input for the terminal session for Program 2 is here.
Program 3 description is here.
A sample program to compile with your Program 3 and run in your Program 1 for your sample terminal session is here.
Program 4 description is here.
Some help notes for Program 4 are here.
A sample program to compile with your Program 4 and run in your Program 1 for your sample terminal session is here. Be sure to read the header comment in this Paxi program before running it.
Program 5 description is here.
The sample Paxi program for Program 5 is here.

Resources

Lots of wonderful stuff is available from the Free Software Foundation: http://www.fsf.org. Particularly useful are the online manuals at http://www.fsf.org/manual/manual.html.

MS Windows Resources

If you are working on a PC using Microsoft Windows the following may be useful.

You can get a collection of Unix utilites (including flex and bison) at http://unxutils.sourceforge.net.

MinGW is a port of gcc. It is available at http://www.mingw.org.

Cygwin provides gcc/g++ along with a Unix-like environment. Read about it and how to download it at http://www.cygwin.com/ (but be prepared for a huge download).

Editors for Windows/DOS


A Windows port of the emacs editor is ntemacs ( http://www.gnu.org/software/emacs/windows/ntemacs.html)

If you really must use vi, vim ("vi improved") is available for a variety of systems including Windows at http://www.vim.org