By Dr. Charles B. Engle (AJPO) and Brad Balfour (CACI)
Ada 95 Milestones
Ada 95 is now a reality in the software development marketplace.
Forget the things you’ve heard about Ada before -- this is a whole
new ball game. It’s an upgraded, modernized successor to the
original 1983 version of the Ada programming language. In rapid
succession, Ada 95 reached several key milestones during 1995:
Completely standardized -
The updated language definition
[ANSI/ISO/IEC 8652:1995 and FIPS 119-1] adds four new key
technologies to Ada: full support for Object-Oriented Programming,
improved real-time facilities and performance, enhanced support for programming-in-the-large,
and an improved ability to interface with software written in other
languages.
New Ada 95 Compiler Validation Capability -
Compilers can be verified for compliance with the standard.
Available Ada 95 compilers -
Many now fully implement the
standard and have been validated with the ACVC; the others are
moving quickly to catch up with the market leaders. One compiler
is even free (including the source code) on a variety of
platforms.
Successfully completed projects -
Many of the first Ada 95 users have completed projects in Ada 95 and are spreading the word on
how well it works.
Supported software and tools -
Libraries, bindings, and tools to support developers in modern software development (e.g., CORBA, WWW, Client/Server, Win 32, etc.).
Overcame Ada 83’s shortcomings -
Ada 95 fully supports OOP (including both inheritance and polymorphism); improves the
performance of tasking and real-time support with the addition of
protected units; shortens recompilation times by introducing new
hierarchical library units; and co-exists in a multi-language
world where it calls and is called by COTS software written in
other languages.
Development History
Ada 95 was created in Cambridge, MA, but the new language’s
emergence was an international effort. Chief designer Tucker Taft
of Intermetrics Inc., led the revision that culminated in the
international language standardization in February 1995. This
resulted in worldwide consensus on the features of the new
language. A necessary part of this revision was feedback from many
compiler vendors as they implemented the new language features.
They have been providing incremental releases of
Ada 95 compilers
to the software development community for the last three years.
Once the standard was jointly finalized by ANSI and ISO, the
finishing touches were put on the
ACVC (Ada Compiler Validation
Capability). Certification that a compiler has passed this suite
of 3000+ user-oriented tests provides software developers with the
assurance that the compiler complies with the language standard. Because vendors had
been incrementally improving their compilers as the language
evolved, the compilers have been quick to be validated. As of
July 1996, 15 compilers from 5 different vendors have passed the
ACVC. All other Ada compiler vendors are quickly attempting to
catch up to these first market leaders and have announced their
plans to validate compilers during 1996.
Tools and Compilers
Another notable change in the Ada market is the emergence of a
pair of new compiler vendors for Ada 95. This reverses a trend of
vendor mergers that occurred in recent years. ACT provides support
for the GNAT compiler
(which is based on the GCC multi-language
compilation system) and Green Hills Software has announced
compilers for several embedded
host-target pairs.
1995 also saw successful software products built using Ada 95.
Some were incremental updates to projects begun with Ada 83,
demonstrating the high degree of upward compatibility from Ada 83
to Ada 95. Others were new projects begun with Ada 95. For
example, one group delivered an MIS client/server application
running on Sun’s Sparc/Solaris and using Motif and Oracle 7.
Others have rewritten Ada 83 embedded applications using Ada 95’s
new real-time features and gained significant improvements. One
effort has re-engineered a set of C++ components into Ada 95 and
seen the code get simpler. These projects have demonstrated that
Ada 95 is ready for use on production systems today.
This last year has brought the proliferation of a series of new
libraries and
tools for Ada 95.
Many are shipped with every
compiler as a part of the many new standard libraries in Ada 95:
strings and string/text utilities, command line processing, date
and time utilities, IO for files and streams, storage management,
and several math libraries (including Elementary Functions,
complex arithmetic and random number support). Other additional
class libraries are shipped with the compiler. And, third-party
class libraries, software components and tools are also now
shipping.
The modern software developer also expects to be able to take
advantage of the many COTS software components provided by
hardware, compiler and tools vendors. Written in a variety of
languages, these components most often come with an API
(applications programming interface) in the C language. The
emergence of several automated tools to generate bindings from the
corresponding C language header files and new Ada 95 interfacing
features make it much easier to create bindings to these APIs. Ada
95 developers regularly make use of CORBA, the Win32 and X-windows
GUI APIs, ODBC, the World Wide Web (via cgi and the direct
generation of Java bytecode from Ada 95 source), and others. In
fact, since November 1994, Silicon Graphics Inc. has been
demonstrating systems in which Ada 95 and C++ class libraries
interoperate.
Changes from Ada 83
Most important among the realizations of the past year is that Ada
95 is not Ada 83. Results from projects using this latest version
of Ada show that it overcomes the shortcomings that have dogged
Ada 83 for years:
Gone is the notion that being "object-based" is good enough -- Ada
95 supports full OOP including both inheritance and polymorphism.
The OOP features draw from the best lessons learned by C++,
Smalltalk and Eiffel. Projects report that there are no problems
taking OO models in notations such as Booch ’94 and implementing
them using Ada 95.
No more are the complaints from real-time and embedded developers
that the tasking model doesn’t match their needs, that it is
cumbersome and inefficient. They now have a much simpler
solution. Ada 95 has streamlined tasking support with a
lightweight data-oriented synchronization mechanism and more
flexible task scheduling policies.
Say good-bye to the days of multiple-day recompilation of Ada 83
software. Ada 95 has provided developers with the ability to
extend packages with hierarchies of child library units. These
make the maintenance and upgrade of existing software much faster.
Plus, they reduce the pain associated with integrating software
from large teams of geographically distributed developers.
An end to the difficulties of integrating Ada with COTS software.
Ada 95 can call on COTS software components and class libraries
written in C, Cobol, Fortran, C++, etc. And just as importantly,
other languages can call Ada 95 modules, making Ada 95 an ideal
"glue" language.
Similarly, an end to late or non-existent bindings to important
services. Ada 95 adds the needed features to support vital
technologies such as "call-backs." Additionally, tools to
automatically generate 80% to 90% of Ada 95 bindings from C and
C++ APIs are available -- providing developers a crucial automated
step. Never again must Ada 95 developers lag behind those using C
or C++ because needed bindings don’t exist.
So long to the lack of standard utility components and class
libraries. Ada 95 defines a full set of components as a part of
the standard and they are provided with every compiler. These
include: strings and string/text utilities, command line
processing, date and time utilities, IO for files and streams,
storage management, and several math libraries (including
Elementary Functions, complex arithmetic and random number
support).
And finally, the curtain has come down on the day of expensive
Ada 83 compilers. The most extreme example of this is the
availability of GNAT for Ada 95, a free compiler that is part of the GNU GCC
multi-language compilation system. Available via the Internet and
on low-cost CD-ROMs, it was intended to fill a void among academic
researchers for a free compiler (including the full source code).
Not surprisingly, GNAT has now become the most widely used Ada 95
compiler for the development of production software.
1995 has been an impressive year for Ada 95. This new version of
Ada has passed a trial by fire through its first usage in the
development of production software. One thing is clear: the
rumors of Ada’s death have been greatly exaggerated!
Sidebar