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:
- Automatically escapes the characters that Ada uses that are also
important to LaTeX (--, <, >, _) so that they are just literals.
- Obeys the spacing (indentation) and line breaks
- Supports \label{foo} to mark a particular line
- Will provide line numbers at arbitrary intervals
- Supports a tabbing environment to align things in
non-proportional fonts (ie. anything but teletype)
Available via
WWW.
Odie
Owen's Direct I/O Enhanced is an enhancement of the normal direct_io
that has several advantages:
- There is no internal fragmentation (the standard implementation
allocates the maximum size of the type for each object)
- Allows reading into objects of a larger size (SunAda requires
that the objects be identical sizes.)
- Deletion is supported
- A simple index reservation system is supported
- A debugging display procedure to display the status of files
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:
- procedure and task
- branch
- branch with additional information for exceptions
- statement
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