Java API Docmentation
Lambda calculus in Scheme
Lambda calculus in Ruby
Lambda calculus in Perl
Halting Problem in Lambda Calculus/Scheme
Homework 1. Due Thursday 9/15. Due date is absolute as
sample solutions will become available after class.
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)
Optional Halloween Assignment
The Food Assignment. NOW OPTIONAL.
Your xmlwriter visitor should write
files consistent with this example.
Food files: foods.cs,
foodvisitors.cs
aboutfood.cs.
FSA hint for checking sorted list
New Visitor Pattern Assignment Option
F# assignment 1: Abstract Machine AM7B
F# assignment 2: Parsing and Compiling
AspectJ Assignment
AspectJ Optional Assignment, with associated
Java base files figure.java and figs.java
Submit all programming assignments 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)
- Inheritance, static and dynamic dispatch in C#
- Type casting rules in C#
- C# Delegates,
more advanced delegates (lambda terms) typed lambda terms (version 3.0); another delegate example: infinite sets
- Notes on the difference between abstract class and
interface.
- My example of the Adapter pattern
- invest.cs. (my example of Observer pattern)
- Expression trees program : csc16 version,
csc17 version, csc123 (visitor pattern) version, Parametrized VP version
- Student Visitors (visitor pattern example):
basic, extended, and main class
- Notes and examples of polymorphism
- Example of balancing generics and inheritance,
with separate compilation. mainapp file, and
.net IL assembly code.
- Covariant, Contravariant and Invariant types.. Here's a more practical example. Here are some
older notes.
F# programs:
AspectJ Programs
- First AspectJ example. (Contains installation and
compilation instructions).
- Second AspectJ example
superprivate.java and
sptest.java
- Third and major AOP example: base program,
invariance aspect,
optimization aspect,
profiling aspect,
security aspect.
- More AspectJ Programs: advice precedence,
preventing circularity, contro-flows,
if pointcut,
pertarget aspects,
efficient queues (NEW),
doubly linkedlist (optional)
- Rational and complex numbers: numbersaop.java, print.java, trace.java
- exptree6.java: AOP version of expression tree program. Contains important theoretical remarks (read!).
Other Programs:
C code for linked lists similar to those used in class
Closures and C.
Inheritance and dynamic dispatch in pure C, and C#
Multiple Inheritance in C++
A poem in C++
Use of pointers and casting in C compared
to C++
Visitor pattern class exercise with solution
About templates in C++
Simple windows forms program that uses
several C# features.
Contravariance in Java 1.8
Reflection in Java and how it can be stopped.
Announcements:
Final Exam Thursday 12/15, 6:15-8:15pm in Adams 204. Use the study guide with practice problems and sample solutions. Review Session TBA
Must Read F# intro tutorial. Also see video lecture on blackboard. Also watch special video lectures on blackboard
Tutor Information: Kendra Campbell-McCalla is available to tutor this
class Tuesdays 3-4pm in Adams 202 and Thursdays 1:50-3:50pm in Adams 204