Open source software

Home > Software
  • C++ tools and libraries
  • - The G2 preprocessor
    - Compressed Bitvectors
  • TCL tools ans libraries
  • - TODL
    - Clipboards
    - BWidgets
  • Papers
  • - Objects in TCL
    - TCL data formats
  • Poetry
  • Short fiction
  • About this site
  • What's new?
  • Links
  • Contact
  • C/C++ tools and libraries

    A set of libraries and stand-alone tools written in C or C++.

    • The G2 preprocessor: A tool that allows you to use your favorite language (e.g. TCL, Python, ...) as a preprocessor for text preprocessing. One of its most interesting applications is a scripting-language preprocessor for C++ programs, to replace the traditional and somewhat outdated CPP preprocessor.
    • Compressed bitvectors: A C++ class that represents a bitvector in compressed form and does bitwise operations on it without first decompressing it. Speedy, compact and simple. Works best for bitvectors that have long sequences of consecutive 1s or consecutive 0s (such sequences are called platforms). Useful for programming sets or bit matrices.

    TCL utilities

    A set of TCL scripts, written for John Ousterhout's >> Tool Command Language.

    • TODL: Library and tools for very basic object support in TCL. Code for the classes and objects is generated from a schema file, allowing you to set up a small set of TCL objects very quickly.
    • Clipboards: A clipboard is basically a text buffer in which you can place named marks between the text. By referring to the name of such a mark, you can change existing pieces of text, remove them, change their order, or insert entirely new text. Then, when the clipboard is ready, you output it to a file or to stdout. This is very useful for code generation and other situations where you don't know in advance the exact content/order of the output you're going to produce.
    • BWidgets: This is a detailed description of the Tcl/Tk code for BWidgets, a popular Tk toolkit with a number of good-looking new widgets. I try to figure out how the code works, and explain what I have discovered so far. One day I may add my own BWidgets here.

    White papers

    Some papers about various programming topics.

    • Objects in TCL: TCL is a procedural language, based entirely on functions and function calls. This paper explains some easy techniques to introduce object-orientation in TCL. The techniques are illustrated with examples; you can also download a tarball containing the paper and its examples so you can run them yourself.
    • TCL data formats: Simple mechanisms for parsing text files in TCL. Especially useful if you want to make TCL data structures persistent.