DEC Ada Developing Ada Programs on Openvms Systems
Total Page:16
File Type:pdf, Size:1020Kb
DEC Ada Developing Ada Programs on OpenVMS Systems Order Number: AA–PWGYA–TK January 1993 This manual describes how to compile, link, and execute DEC Ada programs. It describes the use of the DEC Ada compiler and DEC Ada program library manager. Revision/Update Information: This revised manual supersedes Developing Ada Programs on VMS Systems (Order No. AA–EF86B–TE). Operating System and Version: VMS Version 5.4 or higher OpenVMS AXP Version 1.0 or higher Software Version: DEC Ada Version 3.0 Digital Equipment Corporation Maynard, Massachusetts February 1985 Revised, May 1989 Revised, January 1993 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. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. 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. © Digital Equipment Corporation 1985, 1989, 1993. All Rights Reserved. The postpaid Reader’s Comments forms at the end of this document request your critical evaluation to assist in preparing future documentation. The following are trademarks of Digital Equipment Corporation: AXP, DEC, DEC Ada, DECnet, DECset VMS, Digital, OpenVMS, ULTRIX, VAX, VAX Ada, VAX Pascal, VAXcluster, VAXELN, VAXset, VAXStation, VMS, VAX–11/780, XD Ada, and the DIGITAL logo. ZK5577 This document is available on CD–ROM. This document was prepared using VAX DOCUMENT, Version 2.1. Contents Preface ..................................................... xiii New and Changed Features .................................. xxi 1 Introduction to the DEC Ada Program Development Environment 1.1 Getting Started with DEC Ada for the Experienced Programmer ......................................... 1–2 1.2 Getting Started with DEC Ada for the Novice User . .......... 1–3 1.2.1 Creating a Working Directory and Defining a Current Default Directory .................................. 1–5 1.2.2 Creating a Source File . ........................... 1–6 1.2.3 Creating a Program Library .......................... 1–6 1.2.4 Defining the Current Program Library ................. 1–7 1.2.5 Compiling the Program . ........................... 1–8 1.2.6 Displaying Unit Information ......................... 1–9 1.2.7 Linking the Program ............................... 1–9 1.2.8 Executing the Program . ........................... 1–10 1.2.9 Debugging the Program . ........................... 1–10 1.2.10 Compiling and Recompiling a Modified Program .......... 1–11 1.3 Using the DEC Ada Program Library Manager .............. 1–12 1.3.1 Overview of ACS Commands ......................... 1–12 1.3.2 Entering ACS Commands ........................... 1–16 1.3.3 Exiting from the Program Library Manager and Interrupting ACS Commands ................................... 1–17 1.3.4 Defining Synonyms for ACS Commands ................ 1–17 1.3.5 Using DCL Commands with Program Libraries . .......... 1–18 1.4 Concepts and Terminology . ........................... 1–18 iii 1.4.1 Program and Compilation Units ...................... 1–18 1.4.1.1 Compilation Unit Dependences .................... 1–19 1.4.1.2 Current and Obsolete Units ....................... 1–19 1.4.1.3 Unit and File-Name Conventions . ................ 1–20 1.4.2 Order-of-Compilation Rules . ........................ 1–22 1.4.3 Closure . ........................................ 1–24 2 Working with DEC Ada Program Libraries and Sublibraries 2.1 Program Library and Sublibrary Operations ................ 2–2 2.1.1 Creating a Program Library or Sublibrary ............... 2–3 2.1.2 Defining the Current Program Library . ................ 2–5 2.1.3 Identifying the Current Program Library ............... 2–5 2.1.4 Obtaining Library Information ....................... 2–5 2.1.5 Controlling Library Access . ........................ 2–6 2.1.5.1 Read-Only Access ............................... 2–7 2.1.5.2 Exclusive Access ............................... 2–8 2.1.6 Deleting a Program Library or Sublibrary ............... 2–9 2.2 Unit Operations ...................................... 2–10 2.2.1 Specifying Units in ACS Commands . ................ 2–10 2.2.2 Displaying General Unit Information . ................ 2–11 2.2.3 Displaying Dependence and Portability Information ....... 2–12 2.2.4 Checking Unit Currency and Completeness .............. 2–16 2.2.5 Using Units from Other Program Libraries .............. 2–18 2.2.5.1 Copying Units into the Current Program Library ...... 2–18 2.2.5.2 Entering Units into the Current Program Library ...... 2–20 2.2.6 Introducing Foreign (Non-Ada) Code into a Library . ....... 2–24 2.2.7 Deleting Units from the Current Program Library . ....... 2–25 2.3 Using Program Sublibraries ............................. 2–26 2.3.1 Using ACS Commands with Program Sublibraries . ....... 2–27 2.3.2 Creating a Nested Sublibrary Structure ................ 2–28 2.3.3 Changing the Parent of a Sublibrary . ................ 2–29 2.3.4 Merging Modified Units into the Parent Library . ....... 2–30 2.3.5 Modifying and Testing Units in a Sublibrary Environment ..................................... 2–30 iv 3 Working with DEC Ada Library Search Paths 3.1 Understanding Current and Default Library Search Paths . 3–2 3.2 Defining the Current Path . ........................... 3–3 3.3 Identifying the Current and Default Paths ................. 3–5 3.4 Modifying the Default Path . ........................... 3–7 3.5 Configuring and Reconfiguring Program Libraries Using Library Search Paths ........................................ 3–8 3.6 Specifying Library Search Paths ......................... 3–11 3.6.1 Understanding How Library Search Paths are Evaluated . 3–11 3.6.2 Specifying Library Search Paths in Commands . .......... 3–12 3.6.3 Specifying Library Search Paths in Files ................ 3–13 3.6.4 Specifying Library Search Paths in Default Paths ......... 3–13 4 Compiling and Recompiling DEC Ada Programs 4.1 Compiling Units into a Program Library ................... 4–4 4.2 Recompiling Obsolete Units . ........................... 4–6 4.3 Completing Incomplete Generic Instantiations .............. 4–9 4.4 Compiling a Modified Program ........................... 4–13 4.5 Forcing the Recompilation of a Set of Units ................. 4–14 4.6 Using Search Lists for External Source Files ................ 4–15 4.7 Choosing Optimization Options .......................... 4–16 4.8 Processing and Output Options .......................... 4–17 4.8.1 Loading Units and Executing Compilations in a Subprocess ....................................... 4–18 4.8.2 Executing Compilations in Batch Mode ................. 4–18 4.8.3 Conventions for Defaults, Symbols, and Logical Names . 4–19 4.8.4 Directing Program Library Manager and Compiler Output .......................................... 4–19 4.8.5 Setting Compiler Error Limits ........................ 4–20 5 Using the Professional Development Option 5.1 Overview of Smart Recompilation ........................ 5–2 5.1.1 Using Smart Recompilation to Recompile Obsolete Units . 5–3 5.1.2 Determining the Impact of a Change ................... 5–5 5.1.3 Forcing Recompilation when Smart Recompilation is in Effect ........................................... 5–6 5.1.4 Optimizing the Development Environment for Smart Recompilation . ................................... 5–7 5.1.5 Understanding Inter-Unit Dependences ................. 5–8 v 5.1.6 Fragments, Inter-Dependence, and Independence . ....... 5–8 5.1.6.1 Searching for Identifiers and Overloading Resolution . 5–9 5.1.6.2 Resolving Access Types . ........................ 5–10 5.1.6.3 Inlining and Generic Expansion .................... 5–10 5.1.6.4 With and Use Clauses . ........................ 5–10 5.1.6.5 Pragmas and Representation Clauses ............... 5–11 5.1.7 Coding Your Programs to Use Smart Recompilation Efficiently ........................................ 5–11 5.2 Overview of Program Library File-Block Caching ............ 5–13 5.3 Overview of the Directory Structure Feature ................ 5–14 6 Linking Programs 6.1 Linking Programs Having Only DEC Ada Units ............. 6–2 6.2 Linking Mixed-Language Programs ....................... 6–2 6.2.1 Using the ACS COPY FOREIGN and ENTER FOREIGN Commands ....................................... 6–3 6.2.2 Using the ACS LINK Command ...................... 6–6 6.2.3 Using the ACS EXPORT and DCL LINK Commands ...... 6–7 6.3 Processing and Output Options . ........................ 6–9 6.3.1 Conventions for Defaults, Symbols, and Logical Names ..... 6–10 6.3.2 Executing the Link Operation in a Subprocess or in Batch Mode . ........................................ 6–10 6.3.3 Saving the Linker Command File and Package Elaboration File ............................................. 6–11 7 Managing Program Development 7.1 Decomposing Your Program for Efficient Development . ....... 7–1 7.2 Setting up an Efficient Program Library Structure ........... 7–6 7.3 Integration with Other DEC Tools ........................ 7–10 7.3.1 Setting up Source Code Directories