Research

I am a member of the Sable Research Group for compiler and computer language work, and GR@M for computer games research. Main research areas include:

Links

Publications

Note: I'm not updating this list anymore; for my most recent publications please see the McGill Computer Science website, the Sable site, and the GR@M site.

Ph.D. Thesis

Yes, my entire thesis is available on-line. It's all one big postscript file (500K gzip), so you can view it or if you have the space and the paper you can print it out. You can also just have a look at the (text) abstract (or en français, my résumé).

Games Programming

Please see the GR@M page for current activity. Information below is archival.

I've finally aggregated and cleaned up some bookmarks on research into modern computer games.

I've also written an introductory article on the representation and use of hexagonal grids in games programming. This includes descriptions of a distance metric on hexagonal grids, a line of sight algorithm, and mapping to and from arrays. I have a text version here, but it is also generously maintained in html form by Amit Patel. Recently (on a geological scale), to test some new ideas I wrote a Java Applet illustrating how to calculate Field of View (what is "visible" from a given point) on a hexagonal grid. You can play with the applet or download the Java source code in info-zip format.

Java

This is ancient/archival information. You don't really need to read this anymore.

Coffi

I've written a bytecode parser for the Java language called Coffi. It's freely available to use and modify (under the GNU Public License), and it not only parses .class files and represents the bytecode symbolically, but also constructs the corresponding Control Flow Graph. The symbolic bytecode for any particular method or the CFG can also be printed to the screen.

Coffi doesn't do much by itself, but it is suitable as a basis for programs that modify bytecode and it does not carry the onerous license restrictions associated with Sun's products. It is currently being used in the context of a course on compiler optimizations here at McGill.

The Coffi source code is freely available (in info-zip format). Installation is quite easy, but please note that the included Makefile is intended for Un*x platforms only. Documentation is not extensive, but I have written a short article on its basic structure, installation and usage.

Update: The version of Coffi available here is no longer maintained. Coffi is now part of Soot.