CS450: Compilers

Pete Nordquist


Syllabus

Schedule

Assignments
notes

demos

 

Helpful Links

GNU flex man page - http://www.gnu.org/software/flex/manual/

GNU bison man page - http://www.gnu.org/software/bison/manual/

PATTERNS section of GNU flex man page

Linux / GDB cheat sheet

GNU debugger (gdb) manual

GNU assembler manual - http://www.gnu.org/software/binutils/manual/gas-2.9.1/as.html

PC Assembly language tutorial (from http://www.drpaulcarter.com/pcasm/index.php)

NASM documentation (pdf file) (from SourceForge)

Intel manuals – see http://www.x86.org/intel.doc/386manuals.htm.

ELF File format description - http://www.nondot.org/sabre/os/files/Executables/ELF.pdf

 

CYGWIN toolset

Cygwin is a UNIX environment, developed by Red Hat, for Windows. It consists of two parts:

·        A DLL (cygwin1.dll) which acts as a UNIX emulation layer providing a substantial portion of the UNIX API.

·        A collection of GNU tools, which provide UNIX/Linux functionality.

 

Cygwin is free.  To get it, visit http://www.cygwin.com/ and run setup by clicking on the “Install now!” link.

 

I gave the following responses to setup to install it in the lab environment:

install from internet (local directory if you have a CD)

root directory = c:\cygwin

install for all users

default text file type = unix

local package directory = c:\cygwin

All = default

Change the following individual packages to install:

Archive

Devel

Doc

Editors

Libs

Utils

Of course, you are welcome to install whatever packages you like, but you will need the ones listed above for class.

 

Other helpful files, which you may copy to your f: drive:

Sample .profile for setting up your bash environment.

Sample .vimrc if you use vi.

 

Text

Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman. 1988. Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley Longman.

 

Other Helpful references

Kernighan, B W., and D. M. Ritchie. 1988. The C Programming Language (ANSI Standard C), 2nd ed. Englewood Cliffs, NJ: Prentice Hall. 

 

Levine, John, Tony Mason, Doug Brown. 1992. lex & yacc, 2nd ed. Sebastopol, CA: O’Reilly.

see http://www.oreilly.com/catalog/lex/

 

Hopcroft, , John E. and Jeffrey D. Ullman. 1979. Introduction to Automata Theory, Languages, and Computation. Reading, MA: Addison-Wesley.