Please Reload Every Time You Read This Page!

CSC123/252: Programming Languages, Fall 2018

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

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

Email: (<- click to send me mail)

Official Office Hours: MTu 1-2pm, Wed 6-7pm

Course Syllabus and Goals

Online Resources:

Lambda calculus in Scheme (UPDATED), Lambda calculus in Ruby, Lambda calculus in Perl, Halting Problem in Lambda Calculus/Scheme

Homework 1. Due Monday 9/17. Sample solution available after class on due date.
Scheme programming assignment. Use MIT scheme only
Perl-Scheme lab and assignment.
C# Assignment 1. Your multiple inheritance solution must work with multinhasn.dll (compile with csc yourprogram.cs /r:multinhasn.dll)

The Triple Dispatch Challenge. Sample solution available after it's due
F# Tutorial Exercises. This includes the first F# programming assignment.

F# Abstract Machine Assignment and base program dll (original version). 7B test programs: test1.7b, test2.7b (shouldn't work), test3.7b, test4.7b

F# assignment 3: Parsing and Compiling, with parserm.dll and example of how to extend parser-evaluator

AspectJ Assignment
AspectJ Optional Assignment, with associated Java base files and

Submit all programming assignments (but not first assignment) on blackboard (csc123) (but not the first homework, which is a written assignment).

More Scheme Programs (files in bold are required reading)

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

C# Programs ( Files in bold are required reading)

F# programs:

AspectJ Programs

Other Programs:
Three versions of Fibonacci function and compiled assembly. Illustrating tail recursion optimization.
Scheme style linked lists in C
Are there closures in C?
Simulating dynamic scoping with static scoping in C and Python
Inheritance and dynamic dispatch in pure C (alt version), and C#
A type error in four languages: scheme, perl, C, C#
Multiple Inheritance in C++
About templates in C++ with compiled assembly
Trying stuff (class extensions) in swift
Playing with Kotlin (includes another expression tree example)
Exploring AOP-like features in java-ish languages: decorator design pattern, .Net Attributes, dynamically scoped delegates (my approach)
Reflection in Java and how it can be stopped with AspectJ.


Final exam Monday 12/17, 4-6pm in regular classroom. Use the Study Guide with practice problems and sample solutions. Review Sesson Wednesday 12/12, 10am-11:30am, room Adams 208. Come with questions.