CSC 333 – Languages & Machines – Fall 2009
A language that doesn't affect the way you think about programming isn't worth knowing. —Alan Perlis
- Policy Statement
- Project 1
- Reading assignment, to be completed by Friday Sep 4: read about regular expressions, including their implementation in Python (there's also a simpler Python regular expression HOWTO).
- Overview of compilers: the key phases are lexical analysis, parsing, semantic analysis, intermediate code generation, machine-independent intermediate code optimization, native-code generation, and native-code optimization. I'll talk more about this in class.
- Homework 1
- Regular Expression Matching Can Be Simple And Fast
- DFA Matcher in C++
- Homework 2
- Project 2
- Homework 3
- Homework 4
- Reading assignment on exceptions, Thursday Nov 5
- Project 3, due Thursday Dec 10
- Homework 5, due Tuesday Dec 1
- Homework 6 will be posted Tuesday Dec 1
Python 2.6.2 Links
Language Links
- AWK (Windows version, sed & awk 2/e, GNU Awk User's Guide)
- Icon
- Lua
- Objective Caml
- Perl
- Prolog (SWI-Prolog)
- R5RS Scheme (Gambit – use the gsi interpreter)
- Rexx (Regina Rexx)
- Ruby
- Tcl
Text Editors
Most programming languages do not come with Integrated Development Environments (IDEs), and in fact many programmers prefer to learn a powerful general-purpose text editor and use it for all their editing, including writing programs. Recommended editors are listed below. Vim and Emacs are a bit different than most editors, but they're both very powerful and run on practically every computer on the planet. jEdit is written in Java, so it will run on anything that can run Java. The others are OS-specific. "Un*x" refers to any Unix-like system, including Linux, Solaris, and any flavor of BSD.
Do not, under any circumstances, use Notepad. (Notepad++ is fine; see below.)
Other Links of Interest
