This document has a standard, validated CSS2 stylesheet, which your browser does not seem to display properly. In a browser supporting web standards, this table of contents would be fixed at the side of the page for easy reference.

anastigmatix home
  • Samples of work in:
  • Java
  • The Ovm project
  • The Jikes Research Virtual Machine
  • Sun BSM log parser
  • org.gjt.cuspy
  • unicode
  • FretFocus
  • PostScript
  • PostScript pages
  • Sun BSM log parser
  • Forth (Quartus)
  • Integrate PalmOS and Forth exceptions
  • Integrate 68k and PalmOS exceptions
  • Integrate exception messages
  • Integrate IEEE floating-point
  • Initialization/finalization
  • Multiple data spaces
  • Named and QuartusSet PalmOS features
  • IO and dataspace architecture proposals
  • Precompiling Quartus extensions
  • Miscellany
  • Nothing else just yet.
  • Welcome to the home page. At present it contains collected links to work I have done in a variety of software systems and programming languages. More will be added.

    Java As a member of the Secure Software Systems group at Purdue University, I developed a “pragma” mechanism for the Java language that facilitated Java-in-Java virtual machine development where important non-Java properties needed to be associated with Java methods. I used dummy exceptions, but the technique would be even more natural using Java 1.5 annotations. I lucked into the distinction of having the first non-IBM contribution incorporated into IBM Watson's Jikes Research Virtual Machine. The same mechanism, incorporated in the Ovm Project, developed into Ovm's rather flexible object model and stitcher (a staged version of the AbstractFactory design pattern), described in a technical report and an IVME paper. Much of the work was motivated by interest in increasing the portability of the memory-management research toolkit MMTk.
    As a member of Purdue's Center for Education and Research in Information Assurance and Security, I studied the problem of processing audit logs without loss of information, described in these publications, and developed a Java toolkit for Sun BSM log parsing.
    Some utilities of general use to Java programmers are on the Giant Java Tree. One package is devoted to Unicode. The ByteString class is intended to help programmers shake the damaging habit of treating bytes and characters as kind of sort of more or less the same, and the documentation introduced the notions of provincial and provincial-safe code for thinking clearly about what kind of problem that is in a given situation.
    Most of my work in Java has been internals, libraries, system code, nothing with a visible pretty face. An exception is a Java applet that uses a bit of experiment design (and a good Java numerics library) to get at a design-recovery problem in musical instrument repair.
    PostScript Java was hardly the first language to support platform-independent programming through compatible implementations on many platforms in mass distribution. For twenty years it has been likely that a printer, display, or other output device near you is programmed in the PostScript language from Adobe Systems—and it is a language with a lot to recommend it for any job involving text or graphical creation, from one-off jobs with fussy details to database publishing, archival, and print-on-demand applications. I have a set of pages presenting work I have done in PostScript, including modules to simplify character encoding and Unicode issues, an extension for staged metaprogramming in PostScript, lightweight modules for simple text setting and the TeX algorithm for hyphenation, and a survey of sophisticated typesetting resources by others that can be combined with these to good effect.
    ANTLR ANother Tool for Language Recognition is Terence Parr's parser/scanner/translator generator with back-ends for many languages including Java, C#, C++, and Python. I used ANTLR heavily in the development of the BSM audit log parser mentioned above, and in the process managed to influence the development of ANTLR's token-stream facilities and its support of Unicode. (The BSM work did not require Unicode, but I saw that neither ANTLR nor JavaCC had credible support for it and that ANTLR had a chance to take a leading role.)
    Forth From my interest in the on-board programming possibilities of PalmOS PDAs came a number of enhancements to Neal Bridges's Quartus Forth programming environment. The theme was better integration of the language with the underlying system: unifying the exception handling of Forth, PalmOS, and the 68k processor; providing Forth access to the IEEE single- and double-precision floating point operations available in the OS, and to a shared numerics library; adding mechanisms to precompile library modules to multiple PalmOS resources of position-independent code outside of Forth's 16-bit code space, and managing the multiple data and code space, resource and feature naming, and initialization/finalization issues that result.

    Valid XHTML 1.0! Valid CSS! $Id: index.html,v 1.3 2006/09/29 04:26:54 chap Exp $