Each paragraph on this page describes a document of some kind. To obtain the document, click the PDF icon at the left.
All of the files are in Portable Document Format (PDF) for which you will need Adobe's Acrobat Reader. If you are one of the few people on the planet who has not yet downloaded Acrobat, click on the icon.
Visit my Erasmus page.
Equality in Object Oriented Languages (with Philip Santas). Many programmers underestimate the significance of equality in programming; this paper is one of my several attempts to clarify the issues. We presented it at EastEurOOPe'93, a conference on object oriented programming held at Bratislava, Slovakia in November 1993.
Copying and Comparing: Problems and Solutions (with Markku Sakkinen). Another look at equality, with copying thrown in as well. As I learn more about distributed programming, I begin to doubt some of the conclusions of this paper. We presented it at ECOOP'2002.
Issues in Object Oriented Programming. This was my first major attempt at analyzing issues of OOP, and programming in general, following my experiences in trying to design an OO language. It appeared in Structured Programming in 1991.
A Semantic Browser for Object Oriented Program Development (with Benjamin Cheung). OOP requires more help from the IDE than conventional programming. This paper, presented at the Hawaii International Conference on System Sciences in 1992, makes some helpful suggestions.
A Graph Model for Object Oriented Programming (with Mark Gargul). It seemed — and still seems — to me that a directed graph provides a very natural model of a running OO program. This paper, which appeared in the July 1994 issue of SIGPLAN Notices, develops that idea.
A Computational Model for Object Oriented Programming (with Mark Gargul). This is an unfinished technical report that extends the ideas introduced in A Graph Model. The goal was to define a system for specification and refinement using the model. We encountered technical problems, including running out of time.
The Future of Programming. Wild speculations that I first presented as a talk that I gave in late 1995. I hope it's not entirely nonsense but, as a research grant application based on this paper was successful, I cannot be sure.
Since the world of programming is plagued by poor documentation and writing about something is a good way to learn it, I wrote some of these tutorials for myself. Others were written for a particular course and or just in case someone else was interested.
A LaTeX2E Gallimaufry: Techniques, Tips, and Traps. It's a bit out of date but LaTeX — unlike some other text processors — does not change very fast and there is still some helpful stuff here. You can also download the LaTeX source for the Gallimaufry as a zip file.
MetaPost: A Reference Manual MetaPost is a tool for creating diagrams that works well with LaTeX. Many tutorials are available on the internet, including John Hobby's original A User's Manual for MetaPost. Tutorials are better for some purposes than for others; my manual is intended for the "other" purposes. Source code for manual. Source code for figures.
Control Systems. In 2003, I had to take an exam in control systems in order to become a Professional Engineer. These are the notes I made in preparation for the exam — probably not much use to anyone else, but you never know.
In 1992, I underwent eye surgery and had to rest for several months. This had a curious effect on my normally dormant creativity, and I wrote several short stories. They are intended to be amusing.
The Last Star War. It seemed to me, in 1992, that the ultimate development of warfare would be complex machines deciding the fate of nations in orbital battles. Here's my fictional working out of that idea.
More examples of my obsession with explaining things, usually to myself. There's no higher math here: these little pieces explain odds and ends that tend to puzzle people. The first two pieces are relevant to graphics, the others to elementary physics.
Camera Positions for Dialogue. If you are writing a game or other graphics program, how do you choose a camera position that shows two people talking and also respects the classical rules of cinema grammar?