This directory contains the source code of several shareware programs
developed in our research labs. This software is free to be used in
non-commercial contexts under our open-source
license. Commercial users must negotiate terms.
The software is designed to be self-documenting. Look at the examples of
use of the software and read the comments in the source code. Several
papers elsewhere in this site describe examples of its use in our
research. We provide no support unless prior arrangements have been made.
We encourage contributions of improvements to this software or examples of
its use.
We intend to add to this directory regularly
- filemem.tar.gz (11939 Bytes). Source
code for software utilities that allow you to use memory-mapped unix files
to persistantly store memory images resulting from calls to malloc (in C)
or new (in C++). The software provides alternate implementations of
malloc, free etc. Known to work on Sun-OS, Solaris and Linux although you
need to set some parameters that tell where the file is to be mapped into
memory. Provides a layer above the 'mmap' utility of unix. Some of the
code below provides examples of use. Written in C; works with both C and
C++.
- hashtable.tar.gz (8393 Bytes). Source
code for C/C++ utilities that provide hash tables. These hash tables may
be used in filemem applications, or may be used in ordinary programs. This
utility is believed to function better than the most hash table utilities
that come with unix. In particular, you can have as many hash tables as
you want in a given application.
- DB-structure.tar.gz (162413 Bytes).
Software for a small query engine that accesses files created using
filemem and hashtable. Written in C++. A database is built by allocating
C++ objects into a memory mapped file instead of on the heap. When the
program is restarted, you can connect to a database and instantly all your
C++ objects reappear. Known to work on Solaris, Sun-OS and Linux, but may
need some tweaking to work in a given environment.
- opq.tar.gz (38473 Bytes>. Code for the
line-mode user interface of the query engine described by DB-Structure.
Provides a simple query language.
- list.tar.gz (3092 Bytes). Simple C code for
lists.
- Parse-utils.tar.gz (12224 Bytes).
Software for some utilities used in parsing.