Projects

Dos


Boxes and Glue Model (at UU)

Place UU-ST
Contact PersonPiet van Oostrum

The boxes and glue model is a model (and implementation) for formatting and typesetting text. The name comes from TeX? where typesetting is done with a model of boxes (e.g. characters or rectangles containing other typeset material) and glue (flexible whitespace). TeX? is known to give excellent typesetting results, although some things can be improved. However, it is difficult to use from other applications.

Other applications that could benifit from this model are:

  • XSL Formatting objects
  • The Proxima editor

We want to make a unified model that encompasses these applications and possibly others. It should be implemented as a library with the possibility of easily being used in several ways:

  • Called from various programming models:
    • Statically typed OO languages (C++, Java)
    • Dynamically typed OO languages (Python)
    • Functional languages (Haskell)
    • Distributed Objects (Corba)
    • A TeX? reimplementation
    • An interactive canvas (cf. Scintilla or Tk's canvas)

For example it should be possible to reimplement LaTeX? in Python rather that with TeX? macros, and get exactly the same result.

The library should support several backends:

  • DVI
  • PDF
  • Postscript
  • The graphical kernel of the O.S.

This implies that proper abstract models must be developed for the various layers (output, boxes and glue, higher level formatting objects).

Additional wishes:

  • animations
  • Unicode support

Corba Component Model (at UU)

Place UU-ST
Contact PersonPiet van Oostrum

To experiment with the Corba Component Model (CCM) we want to make an implementation of it.

To make it easy to experiment we want to make a Python implementation first.

  • Start with an existing Python Corba implementation e.g. Fnorb
  • Later use a more optimized implementation e.g. OmniORB? .
  • The Corba protocol must be enhanced to support a.o. value types
  • The IDL compiler must be expanded to support the new CCM constructs
  • Containers etc. must be provided.

-- PietVanOostrum - 30 Oct 2003