[CS 348 class banner]


Thu 18 April: Lab 7 posted

The compilation lab is now posted.

Thu 4 April: Lab 6 posted

The REBOL lab is now posted.

Thu 7 Mar: Lab 5 posted

The type-checking lab is now posted.

Plus, here are some links on "Shooting yourself in the Foot" with various programming languages:

And finally, another language list, but with pithy quotes and the like, is here.

Wed 20 Feb: Some sample expressions to parse

Here are some sample expressions for Lab 3. All of these should work OK (i.e., they are valid). I'll post another file of invalid ones later. (Remember that you need not give good error messages, but you should reject all invalid inputs and properly echo (parenthesized) valid inputs.)

And here are some examples of invalid expressions.

Thu 24 Jan: Sample input files for Lab #1 are available here on the web or (better) through the L drive in the classes/cs348/inputs directory (there are 9 files in all). You should access the files directly through the file system or make copies on your H drive, as browsers will mess up the formatting (especially tabs). For your demo, be prepared to show how your program handles these files as input.


Latest lectures (21-25 January) have been on the PC-231 virtual machine architecture and assembly language.

Some resources on the C programming language

We will be using the C programming language for the next assignment and, since we don't have textbook support for the language, I have gathered together here some resources that we will use in lecture and which you should use on your own, in greater depth, in order to get a handle on the language.

Many of the keywords and much of the syntax of the C language is deceptively similar to cognate constructs in Java: nevertheless, there are huge differences between the languages both at the conceptual level and in the nitty-gritty details which matter so much in getting a program to run. In particular, you should note that:

Here is a link to a sample C program using structs which I will be using in lecture as a guide to C syntax.

Here is a list of on-line courses and notes on C and some of its tr=ickier aspects:

So far we have had an introductory lecture on the basics of language (syntax and semantics, types of language, etc.; no on-line notes for this one yet) and an overview of programming languages with some interactive demos of APL, Rebol, Squeak, Haskell and Toontalk.

See also the "figs" directory of pre-drawn figures used in lecture.

Here is "collected information on about 2350 computer languages, past and present", as of 1994, courtesy of Bill Kinnersley of the University of Kansas.

Lab Assignments

NB:These dates are to be considered tentative until the actual assignment is posted (due dates might also slip, but not by much).