Structure and Interpretation of Computer Programs (SICP), by Abelson, Sussman, and Sussman.
A Scheme-centric view of programming languages, used in first-year classes
at MIT. Full text available online for free - and legally!
Improve your life and nerd cred: install
Ubuntu!
(If you're not ready to cut the cord completely, consider
using VirtualBox to
have your cake and eat it too.)
where, of course, mXXXXXX would be your login name. If your
login name is the same on your bancroft PC and on the CS
Department Unix boxes, you can just do:
ssh -Y foo.cs.usna.edu
At this point, you should be able to copy and paste between
Windows and Unix X-applications. Of course you need to use
the Windows copy&paste commands in Windows applications and
the X copy&paste commands in X applications.
DrScheme version
4.2.1. You can download DrScheme here - make sure you get the right
version! (And ignore all the racket about Racket.)
99 Bottles of Beer
This Website holds a collection of the Song 99 Bottles of Beer
programmed in
different programming languages. Actually the song is
represented in 1434 (and counting!)
different programming languages and variations.
Guts: Lexical Analysis -
The Perl Journal, Fall 1998.
This is a nice informal discussion of some of the complexities
in Perl's lexical analyzer. The interesting thing is that
lexical analysis in Perl is context dependent; so that a "{"
in one place is actually a different token than a "{" in
another place. Most programming languages are not written
that way.
In case you feel I'm short-changing parsing, how about the
yacc file (bison is gnu's version of yacc) for Perl:
perl.y.
Notice that it makes heavy use of associativity and
precedence declarations so that the grammar itself stays simple.
Yacc's shift-reduce parser uses these declarations to
resolve parsing "conflicts", i.e. to make the parse tree unique.
Check out LOLCODE
which is a programming language inspired by LOLCATS.
Specifications 1.1 an 1.2 should pretty much make sense to
you. There's flex scanner code and bison parser code if you
dig a bit.