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