The Personal Website of Stefan Webb

Welcome to my personal website! I am currently an undergraduate in economics and statistics at the Australian National University. I have created a portfolio here demonstrating my talent for software engineering.

Ongoing Projects

SimpleML: XML-like Markup Language

I have designed an XML-like markup language and implemented an efficient non-extractive recursive descent parser for it in C++, with symbol replacement, macro expansion similar to PHP using Lua, and full Unicode compliance. The purpose of this project is to create an effective language for specifying documents in a typesetting system. In the second version, which I am currently working on, I am redesigning the internals of the parser, now understanding the theory of scanning and parsing, and will provide better syntax-error notification.

Completed Projects

BurstSort: Cache-Efficient Sorting Algorithm

I wanted the fastest algorithm to sort strings for my program, and after a search of the scientific journals I decided on Burstsort and its variants. There was, however, no implementation of Burstsort freely available so I wrote my own. Burstsort is currently the fastest algorithm for sorting strings. This library is licenced under the GPL, not the LGPL.

Longer-term Projects

Digital Typesetter

This will be a replacement for TeX and LaTeX. I am interested in digital typography, and this project poses many interesting problems, like how can a computer correctly hyphenate words, and where is the optimal place to break a line. This is a longer-term project because I have to learn about graphical models before I can make the hypenation and line-breaking algorithms. By using probabilistic algorithms for these problems (and page-breaking as well) the software will be more flexible than TeX. I have created the syntax of the language (SimpleML), and have experimented with algorithms for rasterizing and filling in bezier curves.