OverviewScheduleResourcesAssignmentsHome

CSC 424: Programming Languages, Fall 2007

Assignments

Monday, September 3:
Chapter 4, Exercises 4 [note that the upside-down exclamation point (¡) should be a less than (<)], 7, and 10
Monday, September 10:
Project 1: Add strings (literals and expressions) to the Record language (details given in class)
Monday, October 1:
Project 2: Add "while" and "for" loops to Simplan (details given in class)
Friday, November 9 16:

Project 3: Add support for object-oriented programming to Simplan (discussed in class) and write some Simplan test programs. The support will come in the form of two extensions: allowing a record to extend another record (its "parent"), and allowing field lookup to bypass the current record and start searching in the parent. Here is an example which shows the syntax we came up with in class, although you may choose to do it differently:

a = [f = fun (this) do print msg; in [];
     msg = "Hello";
    ];
b = [f = fun (this) do this.super#f; print "World"; in [];
    ] extending a;

Evaluating a#f prints Hello, and b#f prints Hello/World (on two lines). For extra credit, figure out how to allow object c to extend b by redefining msg to Goodbye, so that c#f prints Goodbye/World (talk to me if you don't understand why this is difficult). The test programs should demonstrate several objects with inheritance.

If you want to try to merge in your changes from Project 2, come see me outside of class and we can work on it (I'm still learning how to do the subversion merge properly).

If you want to work on a fresh copy, first check out the "SimplanANTLR" and "SimplanScala" projects from http://twiki.csc.depauw.edu/svn/csc424/public. Now choose "Branch/Tag..." from the "Team" menu on each of these projects and move your working copy into your own branch by changing "public" to your username followed by "/project3" in the "To:" field. For example, if your username is "jsmith", then the new URL for the SimplanScala project will be http://twiki.csc.depauw.edu/svn/csc424/jsmith/project3/SimplanScala -- adding in the "/project3" part will avoid conflicts with the earlier projects. Finally, choose "Switch to another Branch/Tag..." from the "Team" menu and enter the URL for your branch (again, change "public" to your subversion username followed by "/project3"); I have found this to be more reliable than checking the "switch working copy" option in the Branch dialog.

Friday, December 14, 4:00 pm:

The Eclipse project http://twiki.csc.depauw.edu/svn/csc424/public/Final contains three Scala packages:

Choose two of these and do the following:

By 4:00 pm on Friday, December 14 (the end of our scheduled final exam time), turn in to me a printout of your code for these two programs, plus your written discussion for each. As described in the syllabus, no collaboration is permitted on exams.

There are two opportunities for extra credit: do all three programs, or extend the binary search tree to use generics (in either Scala or Java -- you will need to read more about generics than we discussed in class to do this properly -- talk to me if you have questions).

OverviewScheduleResourcesAssignmentsHome

Valid HTML 4.01!Valid CSS!DePauw University, Computer Science Department, Fall 2007
Maintained by Brian Howard (bhoward@depauw.edu). Last updated