Owen O'Malley's tools

I really enjoy writing tools, especially tools that help programers, including myself, write other programs. Here is a listing of tools that are freely available:

Adamakegen

Adamakegen is a tool for generating portable Makefiles for Ada systems. It scans the Ada source code, computes the dependencies between the files and generates the appropriate Makefile. It is implemented in Icon and is used with Verdix or SunAda compilers, although translation to another platform should be straight forward.

Plumber

Plumber finds heap memory leaks in C or Ada programs. It replaces the bodies of the procedures for NEW, UNCHECKED_DEALLOCATION, malloc, free and realloc and when the program terminates produces a list of each memory block allocated by NEW or malloc that was not released with UNCHECKED_DEALLOCATION or free. The information about each block includes the block size and the call stack from where the block was created.

Ada LaTeX

LaTeX is a text-based text formatter that was often used. Its command set is cryptic and the interactions between the components strange. The best feature of LaTeX is that it forms a complete programming language that allows you to define new styles. I wrote a new style to format Ada programs with a couple of neat features: Available via WWW.

Odie

Owen's Direct I/O Enhanced is an enhancement of the normal direct_io that has several advantages: Odie also comes with my extendable array generic that replaces the common functionality of needing an array that can "grow". The naive implementation using unconstrained array types demonstrates a bug in SunAda's allocation routines (because they do not collapse released buffers).

Taos

The Testing and Analysis with Oracle Support system is a set of tools to support testing and analysis of large software systems. Taos supports dependence analysis, test data generation, test execution, test coverage measurement and specification-based oracles.

Artemis

Artemis provides source-code instrumentation of Ada programs to provide various levels of path information. It currently supports four distinct granularities of instrumentation: Lower levels of instrumentation provide more accurate information about the execution of the program, but increase the overhead of the monitoring. All of the instrumentation is done in terms of procedure calls to a single package that may be replaced to provide other forms of monitoring.

GIL Checker

A prototype general graphical interval logic (GIL) trace checker that compares a program trace to a formal specification in the GIL language. The GIL checker can be used as an oracle in the Taos system to provide automatically derived specification-based oracles.
Top: Owen O'Malley
Last modified: Sun Dec 9 23:44:08 PST 2001