SI 413 Fall 2023

This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.


1 Course Policy and Grading

2 Software

3 Reading

4 Other PL stuff

  • Wikipedia's list of programming languages.
  • 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.
  • Lambda the Ultimate. A programming languages blog.