Free Stuff

Home

Here are the sources for various utilities and components that you may download and use as you see fit.  These are all free of charge, in a blatant attempt to ingratiate ourselves.  Our only requirement is that you do not remove any information from the documentation headers on the files.

Table of Contents

bulletSource code completion (i.e. body stub) generator
bulletVendor-independent interface to Mil-Std-1553
bulletReusable components for concurrent programming
bulletApplication-independent incremental recovery cache for software fault tolerance
bulletDimensional units facility (e.g. mass, distance and time)

Both Windows (95/98) and Unix formats are available for each.

'Makebody' is an extremely useful utility for generating source code, specifically program unit completions for Ada 95 (and Ada 83).  Give it a file containing declarations and it generates the corresponding completions -- package bodies, subprogram bodies, and so on.  Very handy when called from within an editor.  It knows to ignore abstract subprograms and imported units, etc., and goes to some lengths to maintain layout choices from the declarations (e.g., the formal parameters will line up as they did in the declaration).  The code is available in Windows zip format and Unix tar format.

A vendor-independent Ada interface to Mil-Std-1553 makes your applications independent of the underlying 1553 hardware, so you can change vendors without changing your application code.  We use the dynamic dispatching of object-oriented programming to insulate your applications from the vendor, so changing vendors only requires definition of vendor-specific extension code that is completely separate from this facility.  This set of packages is integrated with a vendor-independent 1553 message passing facility we offer.   The code is available in Windows zip format and Unix tgz format.

Various low and high-level concurrent programming abstractions are available.  One package exports several protected types, including a semaphore, events, and barriers, as seen in the book Concurrency in Ada and the ARTEWG CIFO.  A separate generic package exports a protected type defining an abstraction for a thread-safe, flexibly-sized bounded buffer.  Sample demo programs are included.  The code is available in Windows zip format and Unix tar format.

An application-independent facility for incremental checkpointing supports software fault tolerance in Ada. Application programmers use inheritance from an abstract base type to create types whose objects can be automatically saved and restored as parts of recovery points.  The code is available in Windows zip format and Unix tar format.

A facility for maintaining dimensionality can be useful during development, to ensure, for example, that we don't inadvertently multiply two 'lengths' and get a 'length' back (instead of an 'area').  This facility is composed from a set of generic Ada packages that define both the basic dimensioned unit and, as an example, various metric unit values as one of several possible systems of measurement.  The code is available in Windows zip format and Unix tar format.