Resources
This page provides information on some of the resources available for students in COP 4020. The page is organized as follows:
- Miscellaneous Resources: about the course, various paradigms, language design, and semantics.
Miscellaneous Resources
The following are some links to various resources you may find useful about the course, various paradigms (including OO programming, AOP, functional programming, and logic programming), language design, and semantics.
Course Resources
- Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi (MIT Press, 2004).
- Errata for the book.
- Supplementary material for the book.
- Meeting outlines directory, containing outline files for the "lectures".
- Self tests directory, containing self study questions for each chapter, which may be helpful for your reading.
- The Mozart/Oz system.
- How to Run Oz.
- Course Oz library, including code to do testing and assertions. You can also download a zip file containing the library's contents.
- Test files directory, containing test files used in various homeworks.
- Old homeworks directory, containing old homework assignments from this and previous semesters. Current students should only use the assigments from WebCT, as this directory is not up to date during the current semester.
- VamOz, a virtual machine for Oz.
- The Alice language.
- Lecture notes directory, containing strangely formatted notes for the "lectures". We recommend that students use the Meeting outlines (above) instead.
- The code examples page.
- The course documentation directory
including:
- Following the Grammar by Gary T. Leavens, which is designed to help you write good functional programs in Oz.
Various Paradigms
Some general resources are the following.
- Gary Leavens's programming languages page with various links
- Lambda the Ultimate programming languages weblog.
OO Programming
- Cetus links to Object-Oriented information sources.
- Smalltalk related information.
-
Java related information.
- Java Beans.
- Java Concurrency in Practice, the web site for an excellent book by Brian Goetz and others.
- A variant of Java, called "Flow Java" is described in a paper whose list of coauthors includes the second author of our textbook. This was influenced by Oz (see the paper's related work section).
- There is an implementation of flow-based programming in Java available from this sourceforge project. Also check out the web site for more information.
- Scala.
- Cω.
Aspect-Oriented Programming
Component-Based Programming
- Microsoft's Component Object Model (COM).
- See Component Software: Beyond Object-Oriented Programming by Clemens Szyperski (Addison-Wesley, 1998).
Functional Programming
- Functional programming FAQ
- A page of tutorial papers on functional programming by John Hughes.
- Why Functional Programming Matters by John Hughes.
- Beating the Averages by Paul Graham, on how the expressive power of Lisp helped in a startup.
- The Commercial Users fo Functional Programming conference has information and reports aobut how functional languages are being used commercially.
-
Haskell related information.
- The Haskell Tutorial, Report, and Library Report.
- Other books and tutorials.
- HUnit, a unit testing tool for Haskell.
- Scheme
- Standard ML,
- Ericsson uses the functional language Erlang to write all of its software.
Logic Programming
- Logic programing virtual library
- lambda Prolog related information.
- Examples of lambda Prolog programs.
- The Teyjus lambda Prolog implementation.
- Manual for Teyjus lambda Prolog.
Language Design
- An Introduction to the Literature On Programming Language Design.
- Benjamin Pierce's list of the most important papers in programming languages.
Semantics
Last modified Friday, November 2, 2007.
This web page is for the Fall 2007 offering of COP 4020 at the University of Central Florida. The details of this course are subject to change as experience dictates. You will be informed of any changes. Please direct any comments or questions to Gary T. Leavens.