Researchy things I've done at some point

Honours [2000]
Title:"Better Parsing Through Lexical Conflict Analysis"
Supervisor:Dan Johnston (external link)
Status:Implementation base done, working on thesis
Abstract: In a conventional two-phase parser, with independent lexical and syntactical analysis, ambiguities can arise in the lexical stage which are not actually present in the language taken as a whole. Essentially this is due to the lexical analyser having insufficient information to make correct decisions under certain ircumstances.

This project examines the types of ambiguities which can be created, various techniques for solving these conflicts, and proposes an extension to the standard parsing model which can automatically generate the appropriate lexical context to resolve them.

An implementation of a parser/scanner generator using these techniques will be developed, and the performance of difference schemes compared.

Files:Seminar slides: [PS] [PDF] [DVI]
Thesis: [PS] [PDF] [DVI] [Latex 2e source].

An initial seminar for this project was given on 13 July 2000. Slides are available in LaTeX 2e and postscript formats (NOTE: Not final, need to update)

Code:Available here: elr-20001227.tar.gz. Licenced under the GPL, but is basically unsupported at this stage.

CS402 [2000]
Title:"XML marshalling layer for Elvin (external link)"
Supervisor:Bill Segall (external link)
Status:Someone Else's Problem(tm)
Abstract: "Elvin supports a three layer protocol stack which combines transport, security and marshalling. Each layer is designed to be self sufficient, allowing arbitrary combinations of implementations. Currently supported transports include TCP, UDP and HTTP. SSL is available for security, and data can be marshalled in either XDR or XML"

Essentially, for various reasons it's desireable for Elvin to be able to use an XML-based marshalling protocol. There actually is a partial attempt at such a thing already there, but it doesn't work, and the story is that it's hopelessly broken and out-of-date.

This project is to completely redo the XML layer, using a well-defined DTD/Schema, a nicer library, and basically try to do it "properly".

Code: Is in CVS (external link) Should eventually reach an actual distribution here (external link)

About me

Nathan is a full-time software engineer and part-time maintainer of several pieces of open-source software that noone has even heard of (most notably lxdream and elr). His interests include programming language design, distributed systems, emulation, Japanese, and go.