Directory Display

ABSTRACT

ASSET_A_357: Ada/Diana Front End Tools
This software system is an Ada front end, that is a system which
translates Ada into Diana, together with associated tools for use of the
Diana.
The front end is to be considered a prototype version. It
presently converts statically correct Ada to the corresponding Diana
representation; there is no guarantee that statically incorrect programs
will be diagnosed as such. (It is the intention to replace this front
end with a production-quality version which will also diagnose
statically incorrect programs.)
The language accepted is the entire Ada language, including library
support, generics, etc., but not (yet) including any of the Chapter 13
optional features. The requirement is that the front end accept the
ACVC class A and class C tests.
The implementation of Diana uses a software virtual memory,
implemented as a DIRECT_IO file with fixed-size pages. Diana nodes
are represented as pointers into this file; the current implementation
of a pointer is a record containing a node type, a page number and a
location within a page. (Of course, it is strongly recommended that
the details of the current implementation not be relied upon.) The
definition of the Diana is given in IDL form and matches the
Intermetrics 1986 draft definition of Diana (rather than that published
in 1983). Program access to Diana nodes and attributes is given by an
Ada packages (actually, three packages) very similar to that given in
the 1983 Diana specification.
The system includes utilities for processing the IDL specification
of Diana to produce programs and packages required for using Diana. It
also includes a LALR grammar generator (similar in scope to yacc, but
implemented in Ada and tailored to the present project). In addition, a
tool for printing the Diana in an indented format is included.
The system consists of about 35,000 lines of Ada source, probably
about 15,000 Ada statements. Because of the virtual-memory
implementation, there should be no arbitrary small limitations due to
main memory table sizes.

REVISION HISTORY

RELEASE NOTICE

This prologue must be included in all copies of this software.
Restrictions on use or distribution: NONE

DISCLAIMER

This software and its documentation are provided "AS IS" and
without any expressed or implied warranties whatsoever. No warranties
as to performance, merchantability, or fitness for a particular
purpose exist.
The user is advised to test the software thoroughly before
relying on it. The user must assume the entire risk and liability of
using this software. In no event shall any person or organization of
people be held responsible for any direct, indirect, consequential or
inconsequential damages or lost profits.