CS 210 - Programming Languages

Class News

May 5
Don't forget to bring your filled out "take home study exam" to the final!

May 1
Note the two minor corrections to assignment 6. Sorry for any inconvenience. Cheers.

Apr 28
Don't forget to fill out your student evaluation forms! Thanks.

Apr 26
testDataA6.tar is test program for Assignment 6.

Apr 26
Assignment 6 has been posted. It is lots of little functions except for the mouse. We'll talk about the assignment in class. Testing script to come in a day or two. cheers.

Apr 22
Here is the "take home" exam (nudge nudge, wink wink, say no more). A useful bit of information: A bunch of people are showing up at 4:30 on Apr 30 in JEB 128 to work through this exam. Cheers.

Apr 14
Assignment 5 has been posted.

Apr 8
The test tool is up for assignment 4.

Apr 7
Due to piles of work I have to do I have not gotten the test system running. The due date for assignment 4 is pushed back to Apr 10 at 5pm.

Apr 3
Test data is available on the test data page for assignment 4.

Assignment 4 has been posted. It is due Apr 8 at 5pm. That is 8 days from now!

Mar 27
No class Friday Mar 28.

Mar 15
Hint: We put the fibonacci generator up on the board. It makes a good model for how one might do the gram2 generator.
A useful operator: The backslash "\" fails if the var after it is undefined. For instance \x will return x if x is defined and fail otherwise. This can be a useful test if you want to filter out undefined values. You don't have to use this. But it gives you more options.

Mar 14
The test tool is up for assignment 3.

Mar 1
Assignment 3 has been posted. This is ready to be worked on by the end of lecture on Mar 3. Assignment 4 will be posted on return from spring break.

Mar 1

No class Friday Mar 7 because of Computer Science Workshop. Have a great break!

Feb 24
Assignment 2b has been posted.

Feb 20
I broke my arm last Friday. Class is canceled for Wed. Clint will give a great intro to Icon on Friday. Thanks for your patience. Pictures

Feb 14
HINT: In order to do

X = 3(F+FF+)
you need to use the setProduction method call. This will inform the Lsys object about what the production is so it can do the draw. See the test routine at the bottom of the lsys.cpp file.

Feb 13
On assignment 2 note that the Lsys class will process command strings that don't have parens or replication factors. What this assignment is doing is letting you augment the L-system language by using Bison. This is a cool idea and important to keep in mind when you are coding up the assignment.

Feb 12
On assignment 2 it is important that you parse the "command string" using bision to handle all the nested parentheses and multipliers for you. This is where you should use some sort of string that you can concatenate. This means you need a simple grammar for assembling a command string. This is far easier than attempting to do this yourself. See the updated assignment for a parsing example and other information to make your life easier. Cheers!

The commands are described in the Lsys class execAux method.

Feb 11
Although you could infer in from the code, I will tell you that the methods in the Lsys class that deal with units of length and angle are setLenUnit and setDirUnit respectively. Reading the breif methods in Lsys will reveal a lot about what to call for each of your commands.

Feb 9
The test tool is up for assignment 2. Part of the test is to run your program and generate lots of postscript files. Most of them are just checked by using the unix tool cksum (see man page)to generate a checksum and then comparing the check sum. But some are then dumped and compared character by character. The full results are available in the test data page below. Tell me what's busted if anything. Have fun.

Feb 6
In the test data for assignment 2 there is a file penrose.in. Ignore that file if you have already fetched it. It is an artifact.

Feb 3
Assignment 2 has been posted.

Jan 30
The test tool is up for assignment 1.

Jan 29
Assignment 1 has been posted. NOTE: it is relatively simple and so is due in 7 days. I will announce here in class news when the submission tool for this assignment is up. Have fun!

Jan 5
Welcome to Programming Languages! Be sure to read the material in the Service Links section below. You are responsible for everything that appears on the class web pages. Many links will be dead links until we talk about them in class so I can update them for each semester. The syllabus is only an estimate of what will happen. The class discussions and pacing for each class changes the schedule ever semester. Have fun!

"A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize our ideas about processes."

From "Structure and Interpretation of Computer Programs" by Abelson and Sussman

Time: 12:30-1:20 MWF
Location:TLC 246
Text:Programming Languages, 2nd Edition, Allen B. Tucker, Robert Noonan
Office Hours: My schedule
Class Objectives: Formal and General Class Objectives

CS210 Class Schedule by Week

Wk#

In-Class Week

Topics/Links Assignments Comments
1Jan 7 What is language, how class works, how the website works, how homework works, hints on how to succeed in this class, the structure of compilers and execution environments Read chapters 1 and 2  
2Jan 14 Formal Languages, Grammars, Language Clasification,    
3Jan 21 Regular Expressions, Flex and Bison - the big picture Read chapter 3 up to 3.2.2 Assignment 1 Regex Primer
NO CLASSES ON MONDAY! Human Rights Day
4Jan 28 prep for assignment 1 and 2, Intro to Context free Grammars, Assembling a calculator from Flex and Bison   Flex Primer, Flex examples
5Feb 4 prep for assignment 2, detail example of bison programming with the calc program Read chapter 4, Assignment 2 A Bison Primer
6Feb 11 Names, Scope, Types, Binding, Type checking, Read chapter 5  
7Feb 18 General material on types and scope + break arm   NO CLASSES ON MONDAY! Presidents Day,
Broken arm this week
8Feb 25 Icon and generators, recursive Icon generators Assignment 2b Icon examples
9Mar 3 recursive generators, parameter passing in Icon, some fine points of Icon Assignment 3  
10Mar 10 Icon, activation records, memory allocation, garbage collection   NO CLASSES THIS WEEK! Spring Break
11Mar 17 Icon Read chapters 9, 11,  
12Mar 24 Start functional programming, Recursion, function application, lambda and map functions, closures, property lists, association lists   Lisp examples
13Mar 31 Lisp functions Assignment 4  
14Apr 7 Lisp Map functions   Scoping examples
15Apr 14 End Lisp Intro begin OO, Object Oriented Language Features, Reading and discussing the Moo code Assignment 5 wikipedia on MOOs, The MOO code, The MOO code with line numbers, test cmds for MOO, output of test cmds for MOO, For your enjoyment only: LambdaMOO Manual
16Apr 21 Reading and discussing the Moo code   The animal code
17Apr 28 More Object Oriented Concepts, v-tables in C++ Assignment 6  
18May 5 Final is Wed May 7 @ 12:30pm   Final Exam Week

Service Links

Reference Links

These links are provided to entertaining and informative. You don't need to study them unless it is suggested that you do so. These links are not guaranteed to accurate or contain information that is safe to download.

Language References

Odds and Ends


Robert Heckendorn Up One Level Last updated: Aug 16, 2007 16:08