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: cscccl@hofstra.edu (<- 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)
Visitor Pattern CLASS EXERCISE AND SOLUTION

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 figure.java and figs.java

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.


Announcements:

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.