Overview
This page provides information on some of the resources available for students in COP 4020. The page is organized as follows:
- Course resources
- Various paradigms (including OO programming, AOP, functional programming, and logic programming)
- Language design resources
- Semantics resources.
Course Resources
Related to the Textbook
- 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.
Related to the Course Materials
- Course home page.
- Meeting outlines directory, containing outline files for the "lectures".
- Tegrity for COP 4020 for additional examples and makeup lecture videos.
- Self tests directory, containing self study questions for each chapter, which may be helpful for your reading.
- Code examples page.
- Examples of Oz code that compute
various properties related to chapter 2. This includes,
as described in the 0DOCS.pdf file:
- Free variable identifiers (see also FreeVarIdsTest.oz).
- Bound variable identifiers (see also BoundVarIdsTest.oz).
- Desugaring (see also BoundVarIdsTest.oz).
- An unparser (for printing abstract syntax tree records, see also UnparseTest.oz).
- The operational semantics (see also ReducerTest.oz).
- 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 assignments from WebCT, as this directory is not up to date during the current semester.
- Lecture notes directory, containing strangely formatted notes for the "lectures". We recommend that students use the Meeting outlines (above) instead.
- The course documentation directory
including:
- Following the Grammar by Gary T. Leavens, which is designed to help you write good functional programs in Oz.
Related to Mozart/Oz
- The Mozart/Oz system.
This includes:
-
The system's documentation
(available on your own system, if you have installed Mozart),
including documentation on:
- the base environment (which includes built-in functions and procedures that operate on each type of data),
- The Oz Tutorial, and
- the Oz language.
- The GForge (Official?) Wiki
- An "Unofficial Wiki"
-
The system's documentation
(available on your own system, if you have installed Mozart),
including documentation on:
- Translations of various programming books into Oz. Fans of Scheme should check this out!
- The Alice language.
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 about 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.
- The ICFP Programming contest gives some ideas for what kinds of problems can be solved with functional programming.
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 Monday, December 22, 2008.
This web page is for the Fall 2008 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. Some of the policies and web pages for this course are quoted or adapted from other courses I have taught, in partciular, Com S 342.