Textbook: Robert W. Sebesta. Concepts of Programming Languages, 5th Edition. Addison-Wesley, 2002.
Web Page: http://emunix.emich.edu/~remmers/337/
Instructor: John H. Remmers (jremmers@emich.edu)
Syllabus: (click here)

Click on the instructor's name, above, for office hours and contact information.

This web page will be used to post assignments and other announcements. Consult it often! In addition, the instructor may use email to communicate with individual students or broadcast important announcements to the entire class. Such messages will be sent to your my.emich.edu mailbox. You should either read this mailbox regularly or set it to forward to an email account which you do read regularly.

Announcements of interest to the class.

Additional End-of-Semester Announcements.

Check this space for announcements and references to study material, prior to the final exam.

LISP Tutorial

You can now access a LISP tutorial.


Perl programs are due at 7pm on Thursday, December 4. Late penalties: 10% off for up to 24 hours late, 20% thereafter, submission not accepted after a program has been graded and returned to the class. (Bobolink's clock time will be used to determine time of submission. You can type the date command on Bobolink to see what time the server thinks it is.)

Announcements of assignments.

Sept. 16
This assignment can be found here.
DUE: Tuesday, Sept. 23, beginning of class.
Oct. 2
Click here to see the 2nd assignment.
DUE: Thursday, Oct. 9, beginning of class.
Nov. 5
Here's an ASSIGNMENT that you can get started on RIGHT AWAY, using online materials (not to be handed in; just to familiarize you with using the system to do Perl).
Nov. 13
The official Perl assignment is now available. Click on the link to see it. DUE: Thursday, December 4, 7pm. Run the submit-perl to submit your programs electronically, as described in the Announcements section, above. Also, turn in hardcopy of all your programs in class.

Links to various places on the internet that are relevant to the course will be posted in this section.

Examples of the use of BNF to specify the syntax of some simple languages.
BNF definition of a small structured programming language.
BNF syntax descriptions of programming languages.
A little web searching turned up BNF definitions of a few "real" programming languages. The notation differs slightly from that which we have been using, but the ideas are the same. With a little searching of your own, you can probably find BNF for more languages.
Attribute grammar examples.
Implementation of smallest-divisor algorithms.
Go here to see a C++ program that implements the O(n) and O(sqrt(n)) smallest-divisor algorithms developed in class.
Perl Resources
Links to various Perl resources: Documentation, online tutorials, software.
Perl Examples
A collection of short Perl examples illustrating various language features.
Bobolink Accounts
Information on how to connect and log in to the bobolink.acad.emich.edu server.
PuTTY Instructions
Help with downloading, installing, and configuring the PuTTY SSH client.
Doing Perl on Bobolink
A quickstart guide to simple file management and running Perl in a Linux environment.
Perl and Visual Studio
Instructions for configuring Microsoft Visual Studio for use with Perl. (Contributed by Paul North)
Midterm examination: Thursday, October 23, 7:15-8:30pm.
Final examination: Tuesday, December 16, 7:15-8:30pm.