All publications

Thesis / report · 2004

Compiling regular expressions into Java bytecodes

Vassilios Karakoidas

The MSc dissertation behind FIRE/J: a compiler that turns a regular expression into Java bytecodes, with the automata theory, the JVM internals and the comparison against the engines of the day worked through in full.

Published in
Master's Thesis, Athens University of Economics and Business, 2004
Citations
Not indexed by Google Scholar.
Cite as
VK04
FIRE/J

What it contains

A complete treatment of the problem FIRE/J solves, in Greek, over seven chapters:

  • Regular expressions — the history, the definitions, the syntax, and the two ways of processing them; the construction of non-deterministic and then deterministic automata from an expression.
  • The Java virtual machine at the level of detail a code generator needs: data types, registers, local variables, the operand stack, the execution environment, memory management, the structure of class files, signatures, the bytecode instruction set and the encoding of method code.
  • A survey and comparison of the regular expression engines available for Java at the time — Sun's, IBM's, GNU's, Jakarta Regexp and ORO, and dk.brics.automaton — with stated criteria and a performance test; and a look at how other platforms handle the problem, from .NET and Perl to GNU Kawa and SQL:1999.
  • The design and the implementation of the F.i.r.e. compiler — the automaton construction components, and three code writers: JavaSourceWriter, JavaAssemblyWriter and JavaClassWriter.
  • Performance testing, including compatibility checks against the other engines.

Where it sits

The engine is FIRE/J; the journal paper it became is the 2008 SPE article.

Written from the dissertation itself — the PDF linked above, which this site hosts. It is in Greek; the chapter and section structure is the dissertation's own table of contents.