Skip to main content

By exploring the course, you are agreeing to our Terms of Service and Privacy Policy. Please read them carefully.

Other Project Resources

A list of other resources that you might find helpful:

  • C++ and UNIX:
    • Thomas Anderson's Quick Introduction to C++ may be useful if you know C but are not familiar with all of the C++ subset we use in the programming projects.
    • A more thorough guide to using the version of Gnu C++ installed on our Linux machines is here.
    • Quick guide to UNIX development tools (one of the many useful documents available in Nick Parlante's ever-growing CS library)

  • Help with the gdb debugger:

  • References on lex & yacc:
    Lex is the original lexical scanner developed by Lesk and Schmidt; Paxson's improved version is flex. Similarly, yacc is Johnson and Sethi's original parser; bison is the GNU-equivalent written by Corbett and Stallman. Both are designed to be upward-compatible with the original while adding extensions and improvements.
    • Original documentation by the authors of the tools themselves. These papers are quite readable and serve as an excellent introduction for familiarizing yourself with the tools.
    • Man pages are available from command line, e.g., man lex. We've also put up browsable versions of the Solaris man pages for lex, flex, yacc, and bison.
    • GNU's online documentation (full manuals, long, but very complete)
    • The lex & yacc page from
    • An article from the Linux Journal singing the praises of lex & yacc.

  • References on JLex and Java_cup:

  • References on MIPS & SPIM:
    • A PDF version of the SPIM Manual (appendix from Hennessy & Patterson's architecture book)
    • The SPIM home page (downloadable versions, more docs).

Just for fun:

  • A list of funny error messages from the old MPW C compiler.
  • A translator for Latin to Perl (and you thought there was no practical use for what you learned in 143!)