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
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.
Final Grades have been submitted. Everyone passed except for one person for obvious reasons. Have a good break.