[an error occurred while processing this directive]

HP OpenVMS Systems

Content starts here

DEC Ada

Technical Overview and Comparison on DIGITAL Platforms


May 1999

This guide provides information about the Digital Equipment
Corporation's implementation of the Ada language.

Operating System and Version: OpenVMS VAX Version 6.2 or higher
OpenVMS Alpha Version 6.2 through 7.2
DIGITAL UNIX Version 3.2G or higher
ULTRIX RISC Version 4.2

Software Version: DEC Ada Version 3.5 or higher
for OpenVMS VAX Systems
DEC Ada Version 3.5
for OpenVMS Alpha Systems
DEC Ada Version 3.5
for DIGITAL UNIX Systems
DEC Ada Version 1.1
for ULTRIX RISC Systems

Digital Equipment Corporation
Maynard, Massachusetts


May 1999

The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document.

Possession, use, or copying of the software described in this publication is authorizied only pursuant to a valid written license from DIGITAL or an authorized sublicensor.

No responsibility is assumed for the use or reliability of software on equipment that is not supplied by Digital Equipment Corporation or its affiliated companies.

Restricted Rights: Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013.

Copyright ©1998, 1999

COMPAQ, the Compaq logo and the DIGITAL logo Registered in the U.S. Patent and Trademark Office.

Bookreader, DEC, DEC Ada, DEC Ada PDO, DEC C, DECdocument, DIGITAL Fortran, DEC FUSE, DECladebug, DECnet, DECset, DECstation, DECtalk, DECtest, DECthreads, DIGITAL, DIGITAL UNIX, OpenVMS, ULTRIX, VAX, VAXcluster, VAX DOCUMENT, VMScluster, XD Ada, and the DIGITAL logo are trademarks of Digital Equipment Corporation.

The following are third-party trademarks:

IEEE is a registered trademark of the Institute of Electronic and Electrical Engineers.

Intel is a registered trademark of Intel Corporation.

Motif, OSF, and OSF/1 are registered trademarks of the Open Software Foundation, Inc.

POSIX is a registered trademark of IEEE.

POSTSCRIPT is a registered trademark of Adobe Systems, Inc.

UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd.

VADS and Apex are registered trademarks of Rational Software Corporation.

X/Open is a trademark of X/Open Company Limited.

X Window System is a trademark of the Massachusetts Institute of Technology.

All other trademarks and registered trademarks are the property of their respective holders.

0

This document was prepared using VAX DOCUMENT, Version V3.2-1m.

Contents Index


Preface

This guide provides a technical overview of the Digital Equipment Corporation implementation of the Ada programming language and compares that implementation across various DIGITAL platforms and other external implementations (VADS or GNAT, for example).

Note

Digital Equipment Corporation is now owned by Compaq Computer Corporation. Compaq Ada was formerly known as DEC Ada. References to DEC Ada in product components should be construed as references to Compaq Ada.

This guide consists of the following chapters:

  • Chapter 1 introduces the DIGITAL implementation of the Ada programming language. It introduces the DEC Ada components, the programming environments, features, tools, and utilities.
  • Chapter 2 provides a high-level technical discussion of types and objects.
  • Chapter 3 lists the set of pragmas supported across DIGITAL platforms and comments briefly on differences between platforms.
  • Chapter 4 provides a high-level discussion of tasking concepts, including the interaction of DEC Ada, threads, and DECthreads.
  • Chapter 5 discusses the input-output packages predefined for the DEC Ada platforms.
  • Chapter 6 discusses the standard packages provided in the predefined library as well as package SYSTEM differences and implementation-defined DEC Ada packages.
  • Chapter 7 covers program library management, management commands, compilation options, exceptions, and messages.
  • Chapter 9 provides a high-level discussion of the debugging environment on the platforms.
  • Chapter 10 covers a variety of compiler features and issues, including lexical elements, run-time systems issues, mixed-language programming, compiler performance, and implementation-dependent characteristics.
  • Chapter 11 discusses portability and provides sections that discuss briefly the factors affecting portability between specific platforms. These sections include a table for each platform pair highlighting issues when porting and indicating where, in this guide, more information is located.
  • Appendix A provides a table listing sources of additional information for the topics covered in this guide.
  • Appendix B provides the code for a suggested and unsupported Ada package previously given out to support long floating-point types on OpenVMS Alpha.
  • Appendix C compares Rational's VADS for DIGITAL UNIX and DEC Ada for DIGITAL UNIX systems.
  • Appendix D compares Rational's Apex for DEC Alpha AXP OSF/1) (DIGITAL UNIX) and DEC Ada for DIGITAL UNIX systems.
  • Appendix E compares DEC Ada for OpenVMS and Alpha systems and GNAT for OpenVMS Alpha systems.
  • Appendix F shows aspects of the listings available from the DEC Ada compiler. These listings were created on an OpenVMS VAX system.

Intended Audience

This guide is intended to answer questions about DEC Ada and the differences between any two DEC Ada implementations or between DEC Ada and another Ada implementation (VADS or GNAT, for example).

It is expected that users are familiar with the Ada language. Familiarity with DEC Ada and DIGITAL platforms is also helpful. Familiarity with Rational Software Corporation's VADS product is helpful in understanding Appendix C. Familiarity with the GNAT compiler is helpful in understanding Appendix E.

Related Documents

DIGITAL provides the following DEC Ada documentation:

  • DEC Ada Language Reference Manual---Includes the full text of the Ada standard, ANSI/MIL-STD-1815A-1983, together with DIGITAL Ada-specific supplements inserted where appropriate.
  • For specific operating systems:
    • Developing Ada Programs on OpenVMS Systems DEC Ada Developing Ada Programs on DIGITAL UNIX Systems DEC Ada Developing Ada Programs on ULTRIX Systems
      These manuals describe the use of the DEC Ada compiler, program library manager, and system debugger to compile, link, run, and debug DEC Ada programs. These manuals also describe how to set up and maintain program libraries.
    • DEC Ada Run-Time Reference Manual for OpenVMS Systems DEC Ada Run--Time Reference Manual for DEC OSF/1 Systems DEC Ada Run-Time Reference Manual for ULTRIX Systems
      These manuals give system-related information, such as information on DEC Ada storage allocation and object representations, and explain how to use operating system components external to the language. They also explain how to use operating system-related Ada features (such as multitasking and input-output), and how to use code written in other DEC languages in an Ada program.
    • DEC Ada Installation Guide for OpenVMS VAX Systems DEC Ada Installation Guide for OpenVMS Alpha Systems DEC Ada Installation Guide for DIGITAL UNIX Systems DEC Ada Installation Guide for ULTRIX Systems
      These manuals give step-by-step instructions for installing the DEC Ada product, including information and recommendations on resource requirements.

On all systems, extensive online help is provided for the DEC Ada compiler and program library. Release notes are also provided for every release.

Conventions

The name of the OpenVMS AXP operating system has been changed to OpenVMS Alpha. Any references to OpenVMS AXP or AXP are synonymous with OpenVMS Alpha or Alpha.

References to OpenVMS refer to both OpenVMS Alpha and OpenVMS VAX. Specific references to either platform are noted.

The name of the DEC OSF/1 operating system has been changed to the DIGITAL UNIX operating system. Any references to DEC OSF/1 are synonymous with DIGITAL UNIX unless specified otherwise.

References to the ULTRIX operating system are to ULTRIX MIPS systems, not ULTRIX VAX systems.

In this guide, VADS refers to the VADS product line produced by Rational Software Corporation. VADS is an extensive family of mature, production-quality, optimizing Ada compilers, cross-compilers, and related tools.

In this guide GNAT refers to the GNAT compiler, an Ada95 compiler available from Ada Core Technologies, Inc. (See Appendix E.)

The following conventions are also used in this guide:

Convention Description
$ A dollar sign ($) represents the OpenVMS DCL system prompt.
% A percent sign (%) represents the DIGITAL UNIX system prompt.
Ctrl/ x A sequence such as Ctrl/ x indicates that you must hold down the key labeled Ctrl while you simultaneously press another key or a pointing device button.
[Return] In examples, a key name enclosed in angle brackets indicates that you press a key on the keyboard.
boldface monospace text In interactive examples, boldface monospace text represents user input.
Monospace type Monospace type indicates code examples and interactive screen displays. This typeface is also used in text to indicate the exact name of a command, routine, partition, path name, directory, or file.
file-spec... A horizontal ellipsis following a parameter, option, or value in syntax descriptions indicates that additional parameters, options, or values can be entered.
... A horizontal ellipsis in an Ada example or figure indicates that not all of the statements are shown.
.
.
.
A vertical ellipsis in an interactive figure or example indicates that not all of the commands and responses are shown.
italic text Italic text emphasizes important information, indicates variables, and refers to complete titles of manuals. Italic text also represents information that can vary in system messages (for example, Internal error number.)
n A lowercase italic n indicates the generic use of a number.
Variable This typeface is used in syntax to indicate variable values.
UPPERCASE
lowercase
The DIGITAL UNIX system differentiates between lowercase and uppercase characters. Literal strings that appear in text, examples, syntax descriptions, and function definitions must be typed exactly as shown.
cat (1) Cross-references to the online reference pages include the appropriate section number in parentheses. For example, a reference to cat (1) indicates that you can find the material on the cat command in Section 1 of the reference pages.
boldface text Boldface text indicates DEC Ada reserved words.
type_name Italicized words in syntax descriptions indicate descriptive prefixes that are intended to give additional semantic information rather than to define a separate syntactic category.
[expression] Square brackets indicate that the enclosed item is optional.
{, mechanism_name } Braces in DEC Ada syntax indicate that the enclosed item can be repeated zero or more times.
| A vertical bar in DEC Ada syntax separates alternative items unless it occurs immediately after an opening brace, in which case it stands for itself.


Chapter 1
An Introduction to DEC Ada

The DEC Ada family of products is the Digital Equipment Corporation implementation of the Ada programming language, implemented according to the Ada standard as specified in ANSI/MIL-STD-1815A-1983 and ISO/8652-1987. Ada is a powerful, general-purpose language that supports many modern programming practices. As developed, the language is strong in features that reduce software costs by increasing maintainability, evolvability, reliability, and portability.

DEC Ada is Year 2000 compliant.

DEC Ada is a production-quality implementation of the Ada programming language.

The DEC Ada compiler is a self-hosting compiler that generates highly optimized, shareable, and position-independent code and runs on the following operating system/hardware platforms:

  • OpenVMS VAX systems
  • OpenVMS Alpha systems
  • DIGITAL UNIX systems
  • ULTRIX RISC systems

Note

As of June 1996, DEC Ada for ULTRIX RISC is in retirement and is no longer supported.

DEC Ada is similar across all platforms. It is a fully validated compiler and as such, it is implemented according to the Ada standard as specified in ANSI/MIL-STD-1815A-1983 and ISO/8652-1987. As a result of meeting the ANSI standard, DEC Ada also conforms to the Federal Information Processing Standard (FIPS-119) and the International Standards Organization (ISO/8652-1987) standards for the Ada programming language.

DEC Ada, an Ada 83 compiler, is fully validated against the ACVC 1.11 test suite.

While all validated Ada compilers are implemented according to the Ada standard, the standard itself allows for differing interpretations. Therefore, an Ada compiler may be implemented in such a way as to take advantage of certain platform-specific features as in the following areas:

  • Implementation of Ada floating-point types
  • Default alignment of array and record components (related to the way the hardware instructions expect data to be laid out)
  • Task priorities and scheduling strategies

1.1 DEC Ada Components

The main components of DEC Ada are as follows:

  • Ada compiler fully conforming to ANSI/MIL-STD-1815A-1983
  • Ada program library manager
  • Ada run-time library (available with the base operating system)
  • Ada library of predefined units
  • Debugger and other tool support
  • Documentation
  • Professional Development Option (licensed separately), including smart recompilation, disk caching, and multilevel program library directory structure

1.2 Environments

The design of the DEC Ada compiler is oriented toward medium- to large-scale software development. It was not designed with any particular application domain in mind. Its design is, therefore, consistent with the general applicability of its host.

DEC Ada can be implemented on the following hardware and software platforms:

  • VAX systems running OpenVMS software
  • Alpha systems running OpenVMS software
  • Alpha systems running DIGITAL UNIX software
  • RISC systems running ULTRIX software

The following XD Ada cross compilers for OpenVMS are available from EDS Scicon:

  • MIL--STD--1750A
  • Motorola MC6800, MC6820, MC6840, MC6860

DIGITAL recommends the following compilers for Ada 95 solutions:

  • For DIGITAL UNIX users, DIGITAL recommends the Rational Software Corporation compilers (APEX Ada, VADS).
  • For OpenVMS Alpha users, DIGITAL recommends the GNAT Professional compiler from Ada Core Technologies, Inc.

Target systems for the DEC Ada product are the same as the host systems. Programs in source, object, or executable image format can be moved from any host to any like target (for example, from any OpenVMS VAX system to another OpenVMS VAX system), using any common medium (for example, disk or magnetic tape) or communication medium (for example, DECnet). Complete Ada program libraries can also be moved in the same manner after using the OpenVMS Backup utility.

Customers cannot retarget the compiler.

As a native mode language, DEC Ada is integrated into the common language environment. On OpenVMS, DEC Ada supports the Record Management Services (RMS) sequential, relative, and indexed file organizations and access methods. DEC Ada programs can invoke modules written in other DIGITAL languages. Additionally, programs written in other DIGITAL languages can invoke DEC Ada modules.

A number of the compiler components are common to other DIGITAL-supplied language products. No provision is made for customers to take advantage of these components as independent entities.

The result of running the DEC Ada compiler is a standard object file that can be linked on the host system.

When linking a DEC Ada program, the program library manager identifies the units needed and checks that they are all current. It also constructs an initialization module that elaborates the library units in an appropriate order. Finally, it invokes the system linker to form an executable program.

Tools and utilities of particular importance are as follows:

  • Editor
  • Debugger
  • File system and file management tools
  • Run-time library
  • Command language

The compiler generates a debugger symbol table as part of the object module for use with the host system debugger for full symbolic debugging. Optionally, it also generates a data analysis file for use with the source code analyzer or cross-reference tool.

On OpenVMS systems, the compiler can generate a diagnostic file for use with the language-sensitive editor (LSE).

Table 1-1 lists some of the development tools and utilities.

Table 1-1 Development Tools and Utilities
Tool or Utility Type Product Name Platform
Code management system DIGITAL CMS (DECset)


rcs and sccs
DEC FUSE Code Manager

OpenVMS VAX
and OpenVMS Alpha

DIGITAL UNIX
DIGITAL UNIX

Editor DIGITAL LSE (DECset)


vi and emacs
DEC FUSE Editor

OpenVMS VAX
and OpenVMS Alpha

DIGITAL UNIX
DIGITAL UNIX

Debugger OpenVMS Debugger OpenVMS VAX
and OpenVMS Alpha
  dbx (not recommended)
DIGITAL UNIX Ladebug
DIGITAL UNIX
DIGITAL UNIX
Source code analyzer DIGITAL SCA (DECset) OpenVMS VAX
and OpenVMS Alpha
Cross referencer DEC FUSE Cross Referencer DIGITAL UNIX
Call graph browser DEC FUSE Call Graph Browser DIGITAL UNIX
Test manager DIGITAL Test Manager (DECset) OpenVMS VAX
and OpenVMS Alpha
Performance analyzer DIGITAL PCA (DECset) OpenVMS VAX
and OpenVMS Alpha
  prof
gprof
DEC FUSE Profiler
DIGITAL UNIX
DIGITAL UNIX
DIGITAL UNIX
Module management DIGITAL MMS (DECset)


make
DEC FUSE Builder

OpenVMS VAX
and OpenVMS Alpha

DIGITAL UNIX
DIGITAL UNIX


1Part of DECset on OpenVMS systems.
2Part of DEC FUSE on DIGITAL UNIX systems.

1.3 DEC Ada Features

DEC Ada supports the following features:

  • Strong typing
  • Tasking
  • Ability to distribute Ada tasks across multiple processors on OpenVMS Alpha systems supporting Kernel threads
  • Exception handling
  • Data abstraction
  • Concurrent processing
  • Mixed-language programming capabilities
  • Modular structure for programs through separate compilation of program units
  • Generic definitions
  • Other standard language features supported across implementations

The following chapters provide a high-level technical overview of these features, which constitute the DIGITAL implementation of the Ada language.

In addition, the chapters focus on DIGITAL extensions to the Ada standard, ANSI/MIL--STD--1815A--1983 and on the differences in implementation across platforms. All of the language elements specified by the ANSI or ISO standard definition for the Ada language are provided by DEC Ada. DEC Ada also provides the implementation of certain options and interpretations, as permitted by the standard.

Appendix A contains a table (Table A-1) that lists additional sources of information for the topics covered in this guide.


Next Contents Index