Please Reload Every Time You Read This Page!

CSC123: Programming Languages, Fall 2004

Dr. Chuck C. Liang
Associate Professor of Computer Science, Hofstra University .

Office Address:
201A Adams Hall
Hofstra University
Hempstead, NY 11550
Office Phone: (516 463) 5559

Email: cscccl@hofstra.edu (<- click to send me mail)

Official Office Hours: MWF 1-2pm, TuTh 5:30-6:30pm, or by appointment


Course Syllabus

Online Resources:

Submit Assignment
View Submitted Assignment


Info on fixed point combinators. You can find a version that'll work with applicative order reduction here.
Halting Problem in Lambda Calculus/Scheme
Simple Scheme examples
more Simple Scheme examples
more interesting scheme code. (some code repeated)
Quicksort in Scheme
Graph search in Scheme
web server in Scheme. Here's the page it serves.
lists (updated) and trees in C. (use for comparison with scheme).
Scheme program written in class (reload for latest additions).
What language is this program in?

Perl Programs (supplement the Perl tutorial. Files in bold are required reading)

Bank accounts in Scheme. (from 10/11 class).
More OOP examples: Rational number objects in Scheme, Perl, C++, Java, and C#, and for something really special: rationals in Eiffel : rational.e, rats.e. See compilation instructions in rats.e
Perl program from 10/13 class
Notes and thoughts on modeling oop in C. Please Read!
Inheritance programs in Scheme, Perl, pure C, and C# (These are similar to programs from 10/20 class)
A poem in C++
"hockeyteam" example in C# from 10/25 class (all errors fixed).
Unsafe type casting example in C++, and safe type casting in C#/Java
Static v.s. Dynamic dispatch in C#
Useful pointer casting in C, and what it could mean in C++
Delegates (higher-order functions) in C#
Three versions of polymorphic lists: polylist1.cs, polylist2.cs, polylist3.cs. They all use number.cs as a dll.
The "student" visitor pattern example (version includes xml file parser).
Version of student visitors that includes weirdstudents (from 11/5 and 11/17 classes)
C++ Templates and Parametric types in C#/Java
Class notes on type inference calculi (pdf) Required Reading

First AspectJ example. (Contains installation and compilation instructions).
Second AspectJ example superprivate.java and sptest.java
Aspect-oriented bank accounts: aopbank.java. Contains one of the problems of the programming assignment
More AspectJ Programs: advice precedence, preventing circularity, contro-flows, if pointcut, doubly linkedlist, pertarget aspects


lambda calculus homework. SOLUTIONS
Scheme lab and assignment. "scmhw1"
Instructions for using the 019 lab
New Assignment(Perl + (Perl || Scheme)*) due 10/25. Assignment designation is "plscmhw".
The Halloween Assignment (Due 11/3, assignment designation "halloween")
Food Assignment. Your xmlwriter visitor should write files consistent with this example. Due Wednesday 11/24. The assignment designation is "food".
Food files: foods.cs, foodvisitors.cs, aboutfood.cs.
AspectJ assignment. Due Wednesday 12/8. Reload for latest modifications.


Announcements:

Final Grades have been submitted. Everyone passed except for one person for obvious reasons. Have a good break.