# Other Materials

A list of other resources that you might find helpful.

- Version control and configuration management:
  - SVN, git, Mercurial, and CVS are all good choices for source-control systems. Each one has extensive documentation on it's website. Useful tutorials can also usually be found with a web search.
- C++ and UNIX:
  - Extensive C/C++ documentation can be found here. Further documentation and tutorials can be found through Google.
  - 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:
  - GNU's online gdb users guide
- 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.
    - Lesk and Schmidt on `lex`
    - Johnson on `yacc`
  - Man pages are available from command line, e.g., `man lex`. They can also usually be found here.
  - GNU's online documentation (full manuals, long, but very complete)
    - `flex`
    - `bison`
  - The `lex` & `yacc` page from Combo.org.
  - An article from the Linux Journal singing the praises of `lex` & `yacc`.
- References on JLex and Java_cup:
  - Manual for JLex, Java CUP.
- References on MIPS & SPIM:
  - SPIM Quick reference.
  - 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 Compilers!).