72
r ~11CE ECOWV AVF Control Number: AVF-VSR-90502/10 Ad* opie * - VALIDATION SUMMARY REPORT: Certificate Number: #87l2l0Nl.09009 Alsys Ltd AlsyCOMP 006, Version 3.2 IBM 370 3081K x 3084Q 0 Completion of Oni-Site Testing: 10 December 1987 The atinalPrepared By: Th atoa Computing Centre Limited Oxford Road Manchester Ml 7ED United Kingdom Prepared For: * Ada Joint Program Office United States Department of Defense Washington, D.C. 20301-3081 DTIC .pE. *Ada is a registered trademark of the United States Government (Ada Joint Program Office). 003MIBrON 8TATEW A1 *Approed for piibbe role=; 32 DIribuion Unlimited

Ad* opie - apps.dtic.mil

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

r

~11CE ECOWVAVF Control Number: AVF-VSR-90502/10

Ad* opie

* - VALIDATION SUMMARY REPORT:Certificate Number: #87l2l0Nl.09009

Alsys LtdAlsyCOMP 006, Version 3.2

IBM 370 3081K x 3084Q

0 Completion of Oni-Site Testing:10 December 1987

The atinalPrepared By:Th atoa Computing Centre Limited

Oxford RoadManchester Ml 7ED

United Kingdom

Prepared For:* Ada Joint Program Office

United States Department of DefenseWashington, D.C. 20301-3081

DTIC.pE.

*Ada is a registered trademark of the United States Government(Ada Joint Program Office).

003MIBrON 8TATEW A1

*Approed for piibbe role=; 32DIribuion Unlimited

UNCLASSIFIEDVSE2.-,RITY CLASSIFICAION~ THIS PAGE (Wowen Data "?,ered' 40A_________ 8 9_06

REPORT DOCUMENTATION PAGE ij,.1. REPURT NUMBER 12. GOVT ACCESSION NO. 3. RECPIENI'S CA.A ',G NM'A?

4. TITLE (and~ubtitle) 5. TYPE OF REPORT & Pi901 CDiERED 1Ada.Cornyiler Validation Summary Reot Alsvs 10 Dec 1987 to 10 De-: 1:-

Ltd., A s COMP 006, Version 3. IN 30 308-'K --(Host) an~ IBM-370 3084Q (Target). 6. PERc0PM:%G ORG. REDOR! N',v:?R

7. AUTHOR(S) 8. CONTRACT OR 3RANT NLMEs)

National Cornputin~ Centre Limited,ManTchester, Uni ted Kingdom.

9. PERFORMING ORGANIZATION AND ADDRESS 10 . PROGRAM~ ELEMENT. PRO cT. TASKAREA & WORK UNIT NUMB 'S

National Computing Centre Limited,Manchester, United King"dom.

11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATEAda Joint Program Office 10 Decemi- . '987United States Department of Defense 13. NUMBEH OF PAGESWashington, DC 2001-3081 72 p.

14. MONITORING AGENCY NAME & ADDRESS(/f different from Controlling Office) 15. SECURITY CLASS (of this reporU)

UNCL.ASSIFIED)National Computing Centre L imited, I~a. REjSSJIFCATION/DOWN3RA ~GManchester, United Kingdom. DUr N/A

* 16. DISTRIBUTION STATEMENT (of this Report)

*Approved for ipublic release; distribution unlimited.

* 17. DISTRIBUTION STATEMENT (of the abstract entered in Block 2. if different from Report)

UNCLASSIFIED

18. SUPPLEMENTARY NOTES

19l. KEYWORDS (Continute on reverse side if necessary and identify by block number)

Ada Programming language, Ada Compiler Validation Summary Report, AdaCompiler Validation Capability, ACVC, Validation Testing, AdaValidation office, AVO, Ada Validation Facility, AVF, ANSI/MIL-STLD-1815A, Ada Joint Program Office, AJPO

I20. ABSTRACT (Continue on reverse side if necessary and identify by block number)

d AlsyCOMTP 006,Version 32, Alsys Ltd ., National ComnpuLing Centre Limited, [B.N1370 3081 K (Host) underi VM/LSP CM-S Version 3.1 and IBT 370 308'4Q under MvlS Version 3.2 (Target), ACVC 1 . 9.

DO ''-' 1473 EDITION OF 1 NOV 65 IS OBSOLV-'E

I JAN 73 S/N 0102-J-014-56C1 UNCLASSIFIEDEC~~C-..553IFICATION OF THIS PAGE ,1%'-,n~aaEn~e,(-d)

** ,I*%

Ada* Compiler Validation Summary Report:

Compiler Name: AlsyCOMP_006, Version 3.2

Certificate Number: #871210NI.09009

Host: Target:IBM 370 3081K under IBM 370 3084Q underVM/SP CMS MVSVersion 3.1 Version 3.2

Testing Completed 10 December 1987 Using ACVC 1.9

, This report has been reviewed and is approved.

The National Computing Centre Ltd* Jane Pink

Oxford RoadManchester M1 7EDUnited Kingdom

da Validation OrganizationDr. John F. KramerInstitute for Defense AnalysesAlexandria VA 22311

Ada Joofnt Program OfficeVirginia L. CastorDirectorDepartment of DefenseWashington DC 20301

*Ada is a registered trademark of the United States Government(Ada Joint Program Office).

SU

EXECUTIVE SUMMARY

This Validation Summary Report (VSR) summarizes the results andconclusions of validation testing performed on the AlsyCOMP_006,Version 3.2, using Version 1.9 of the Ada* Compiler ValidationCapability (ACVC). The AlsyCOMP 006 is hosted on an IBM 370 3081Koperating under VM/SP CMS, Version 3.1. Programs processed by thiscompiler may be executed on an IBM 370 3084Q operating under MVS Version3.2.

On-site testing was performed 7 December 1987 through 10 December 1987- at Alsys Ltd, Partridge House, Newtown Road, Henley on Thames under the

direction of the NCC (AVF), according to Ada Validation Organisation(AVO) policies and procedures. At the time of testing, version 1.9 ofthe ACVC comprised 3122 tests of which 25 had been withdrawn. Of theremaining tests, 205 were determined to be inapplicable to this implementduring testing: 145 executable tests that use floating-point precisionexceeding that supported by the implementation were not processedResults for processed Class A, C, D, and E tests were examined for

* correct execution. Compilation listings for Class B tests wereanalyzed for correct diagnosis of syntax and semantic errors.Compilation and link results of Class L tests were analyzed forcorrect detection of errors. There were 60 of the processed testsdetermined to be inapplicable. The remaining 2892 tests were passed.The results of validation are summarized in the following table:

RESULT CHAPTER TOTAL

2 3 4 5 6 7 8 9 10 11 12 13 14

Passed 193 516 564 245 166 98 141 327 135 36 234 3 234 2892U..

.- Failed 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Inapplicable 11 57 111 3 0 0 2 0 2 0 0 0 19 205

* Withdrawn 2 13 2 0 0 1 2 0 0 0 2 1 2 25

TOTAL 206 586 677 248 166 99 145 327 137 36 236 4 255 3122

The AVF concludes that these results demonstrate acceptable conformity* to ANSI/MIL-STD-1815A Ada.

*O *Ada is a registered trademark of the United States Government(Ada Joint Program Office).

Executive Summary Page 1 of 1

TABLE OF CONTENTS

CHAPTER 1 INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT ......... 1-21.2 USE OF THIS VALIDATION SUMMARY REPORT ............. 1-2

1.3 REFERENCES ........................................ 1-31.4 DEFINITION OF TERMS ............................... 1-31.5 ACVC TEST CLASSES ................................. 1-4

. CHAPTER 2 CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED .............................. 2-12.2 IMPLEMENTATION CHARACTERISTICS .................... 2-2

CHAPTER 3 TEST INFORMATION

3.1 TEST RESULTS ...................................... 3-13.2 SUMMARY OF TEST RESULTS BY CLASS .................. 3-13.3 SUMMARY OF TEST RESULTS BY CHAPTER ................ 3-23.4 WITHDRAWN TESTS ................................... 3-23.5 INAPPLICABLE TESTS ................................ 3-23.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS ... .3-43.7 ADDITIONAL TESTING INFORMATION .................... 3-53.7.1 Prevalidation ................................... 3-53.7.2 Test Method ..................................... 3-53.7.3 Test Site ....................................... 3-6

APPENDIX A CONFORMANCE STATEMENT

APPENDIX B APPENDIX F OF THE Ada STANDARD

o

APPENDIX C TEST PARAMETERS

APPENDIX D WITHDRAWN TESTS Aeces~1oe For

NTT', GRA&ID't2 TABUuawinouneedJu3ti ifoat1on

€.By---

Distribution/

Avallability CodesAvail and/or

Dlst Special

Table of Contents Page 1 of 1

%

%~-~ ~ 2 % k?" - -q

- - '" v "W - "4 ' "V , , • ,"W "w

CHAPTER 1

INTRODUCTION

This Validation Summary Report, fVSR4 describes the extent to which aspecific Ada compiler conforms to the Ada Standard,ANSI/MIL STD 1815A. This report explains all technical terms usedwithin it and thoroughly reports the results of testing this compilerusing the Ada Compiler Validation Capability (ACVC). An Ada zompilermust be implemented according to the Ada Standard, and anyimplementation-dependent features must conform to the requirements ofthe Ada Standard. The Ada Standard must be implemented in itsentirety, and nothing can be implemented that is not in the Standard.

Even though all validated Ada compilers conform to the Ada Standard,it must be understood that some differences do exist betweenimplementations. The Ada Standard permits some implementationdependencies--for example, the maximum length of identifiers or themaximum values of integer types. Other differences between compilersresult from the characteristics of particular operating systems,hardware, or implementation strategies. All the dependencies observedduring the process of testing this compiler are given in this report.

The information in this report is derived from the test resultsproduced during validation testing. The validation process includessubmitting a suite of standardized tests, the ACVC, as inputs to anAda compiler and evaluating the results. The purpose of validating isto ensure conformity of the compiler to the Ada Standard by testingthat the compiler properly implements legal language constructs andthat it identifies and rejects illegal language constructs. Thetesting also identifies behaviour that is implementation dependent butpermitted by the Ada Standard. Six classes of tests are used. Thesetests are designed to perform checks at compile time, at link time,and during execution.

Chapter 1 Page 1 of 6

QSV' , '?2 ., . '.,' , ° ' , . ' , v _A, . ... .. ,., ,......;... , %% .-

INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT

This VSR documents the results of the validation testing performed onan Ada compiler. Testing was carried out for the following purposes:-

To attempt to identify any language constructs supported bythe compiler that do not conform to the Ada Standard

To attempt to identify any unsupported language constructsrequired by the Ada Standard

To determine that the implementation-dependent behaviour isallowed by the Ada Standard

Testing of this compiler was conducted by NCC under the direction ofthe AVF according to policies and procedures established by the AdaValidation Organization (AVO). On-site testing was conducted from

* December 1987 through December at Alsys Ltd, Partridge House, NewtownRoad, Henley-on-Thames.

1.2 USE OF THIS VALIDATION SUMMARY REPORT

Consistent with the national laws of the originating country, the AVOmay make full and free public disclosure of this report. In theUnited States, this is provided in accordance with the "Freedom ofInformation Act" (5 U.S.C. #552). The results of this validationapply only to the computers, operating systems, and compiler versionsidentified in this report.

The organizations represented on the signature page of this report donot represent or warrant that all statements set forth in this reportare accurate and complete, or that the subject compiler has nononconformities to the Ada Standard other than those presented.Copies of this report are available to the public from:-

Ada Information ClearinghouseAda Joint Program OfficeOUSDREThe Pentagon, Rm 3D-139 (Fern Street)Washington DC 20301-3081

40* or from:-

The National Computing Centre LtdOxford RoadManchester M1 7EDUnited Kingdom

Chapter 1 Page 2 of 6

.V %

0INTRODUCTION

Questions regarding this report or the validation test results shouldbe directed to the AVF listed above or to:-

Ada Validation OrganizationA Institute for Defense Analyses

. %1801 North Beauregard StreetAlexandria VA 22311

1.3 REFERENCES

1. Reference Manual for the Ada Programming Language,ANSI/MIL-STD-1815A, February 1983.

2. Ada Compiler Validation Procedures and Guidelines, Ada JointProgram Office, 1 January 1987.

3. Ada Compiler Validation Capability Implementers' Guide,* SofTech, Inc., December 1986.

1.4 DEFINITION OF TERMS

ACVC The Ada Compiler Validation Capability. The set of Adaprograms that tests the conformity of an Ada compilerto the Ada programming language.

Ada An Ada Commentary contains all information relevant andCommentary point addressed by a comment on the Ada Standard.

Standard. These comments are given a uniqueidentification number having the form AI-ddddd.

Ada Standard ANSI/MIL-STD-1815A, February 1983.

Applicant The agency requesting validation.

AVF The Ada Validation Facility. In the context of thisreport, the AVF is responsible for conducting compilervalidations according to established procedures.

AVO The Ada Validation Organization. In the context of*O this report, the AVO is responsible for establishing

procedures for compiler validations.'S.

Compiler A processor for the Ada language. In the context of'S. this report, a compiler is any language processor,

including cross-compilers, translators, and* interpreters.

Chapter 1 Page 3 of 6

N 0

II

INTRODUCTION

Failed test An ACVC test for which the compiler generates a resultthat demonstrates nonconformity to the Ada Standard.

Host The computer on which the compiler resides.

Inapplicable An AVCV test that uses features of the language that acompiler is not required to support or may legitimatelysupport in a way other than the one expected by thetest.

Language The Language Maintenance Panel (LMP) is a committeeMaintenance established by the Ada Board to recommendPanel interpretations and possible changes to the

ANSI/MIL-STD for Ada.

Passed test An ACVC test for which a compiler generates theexpected result.

Target The computer for which a compiler generates code.

Test An Ada program that checks a compiler's conformityregarding a particular feature or a combination offeatures to the Ada Standard. In the context of thisreport, the term is used to designate a single test,which may comprise one or more files.

Withdrawn An ACVC test found to be incorrect and not used tocheck conformity to the Ada Standard. A test may beincorrect because it has an invalid test objective,fails to meet its test objective, or contains illegalor erroneous use of the language.

1.5 ACVC TEST CLASSES

Conformity to the Ada Standard is measured using the ACVC. The ACVCcontains both legal and illegal Ada programs structured into six testclasses: A, B, C, D, E, and L. The first letter of a test nameidentifies the class to which it belongs. Class A, C, D, and E testsare executable, and special program units are used to report theirresults during execution. Class B tests are expected to producecompilation errors. Class L tests are expected to produce linkerrors.

Class A tests check that legal Ada programs can be successfullycompiled and executed. However, no checks are performed duringexecution to see if the test objective has been met. For example, aClass A test checks that reserved words of another language (other

than those already reserved in the Ada language) are not treated asreserved words by an Ada compiler. A Class A test is passed if noerrors are detected at compile time and the program executes toproduce a PASSED message.

Chapter 1 Page 4 of 6

I%

INTRODUCTION

Class B tests check that a compiler detects illegal language usage.Class B tests are not executable. Each test in this class is compiledand the resulting compilation listing is examined to verify that everysyntax or semantic error in the test is detected. A Class B test ispassed if every illegal construct that it contains is detected by thecompiler.

Class C tests check that legal Ada programs can be correctly compiledand executed. Each Class C test is self-checking and produces aPASSED, FAILED, or NOT APPLICABLE message indicating the result whenit is executed.

Class D tests check the compilation and execution capacities of acompiler. Since there are no capacity requirements placed on acompiler by the Ada Standard for some parameters--for example, the

A number of identifiers permitted in a compilation or the number ofunits in a library--a compiler may refuse to compile a Class D test

% and still be a conforming compiler. Therefore, if a Class D test% fails to compile because the capacity of the compiler is exceeded, the

* test is classified as inapplicable. If a Class D test compilessuccessfully, it is self-checking and produces a PASSED or FAILEDmessage during execution.

Each Class E test is self-checking and produces a NOT APPLICABLE,PASSED, or FAILED message when it is compiled and executed. However,the Ada Standard permits an implementation to reject programscontaining some features addressed by Class E tests duringcompilation. Therefore, a Class E test is passed by a compiler if itis compiled successfully and executes to produce a PASSED message, orif it is rejected by the compiler for an allowable reason.

Class L tests check that incomplete or illegal Ada programs involvingmultiple, separately compiled units are detected and not allowed toexecute. Class L tests are compiled separately and execution isattempted. A Class L test passes if it is rejected at link time--thatis, an attempt to execute the main program must generate an errormessage before any declarations in the main program or any unitsreferenced by the main program are elaborated.

Two library units, the package REPORT and the procedure CHECKFILE,support the self-checking features of the executable tests. Thepackage REPORT provides the mechanism by which executable tests reportPASSED, FAILED, or NOT APPLICABLE results. It also provides a set of

0 identity functions used to defeat some compiler optimizations allowed:.6 by the Ada Standard that would circumvent a test objective. The

procedure CHECKFILE is used to check the contents of text fileswritten by some of the Class C tests for chapter 14 of the AdaStandard. The operation of these units is checked by a set ofexecutable tests. These tests produce messages that are examined to

* verify that the units are operating correctly. If these units are notoperating correctly, then the validation is not attempted.

Chapter 1 Page 5 of 6INTRODUCTION

0.'

INTRODUCTION

The text of the tests in the ACVC follow conventions that are intendedto ensure that the tests are reasonable portable without modification.For example, the tests make use of only the basic set of 55characters, contain lines with a maximum length of 72 characters, usesmall numeric values, and place features that may not be supported byall implementations in separate tests. However, some tests containvalues that require the test to be customized according toimplementation-specific values--for example, an illegal file name. Alist of the values used for this validation is provided in Appendix C.

S A compiler must correctly process each of the tests in the suite anddemonstrate conformity to the Ada Standard by either meeting the passcriteria given for the test or by showing that the test isinapplicable to the implementation. The applicability of a test to animplementation is considered each time the implementation isvalidated. A test that is inapplicable for one validation is notnecessarily inapplicable for a subsequent validation. Any test that

. was determined to contain for an illegal language construct or anerroneous language construct is withdrawn from the ACVC and,

* therefore, is not used in testing a compiler. The tests withdrawn atthe time of validation are given in Appendix D.

*4J

MS A P

CHAPTER 2

CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED

The candidate compilation system for this validation was tested underthe following configuration:-

Compiler: AlsyCOMP_006, Version 3.2

ACVC Version: 1.9

Certificate Number: #871210N1.O9O09

4 Host Computer:

Machine: IBM 370 3081K

Operating System: VM/SP CMSVersion 3.1

Memory Size: 6M VM

*Target Computer:

* Machine: IBM 370 3084Q

Operating System: MVS

Version 3.2

Memory Size: 1MB partition

Communications Network: Magnetic media

.

- Chapter 2 Page 1 of 7

6

CONFIGURATION INFORMATION

2.2 IMPLEMENTATION CHARACTERISTICS

One of the purposes of validating compilers is to determine thebehaviour of a compiler in those areas of the Ada Standard that permitimplementations to differ. Class D and E tests specifically check forsuch implementation differences. However, tests in other classes alsocharacterize an implementation. The tests demonstrate the followingcharacteristics:

Capacities.

The compiler correctly processes tests containing loopstatements nested to 65 levels, block statements nested to65 levels, and recursive procedures separately compiled assubunits nested to 17 levels. It correctly processes acompilation containing 723 variables in the same declarativepart. (See tests D55A03A..H (8 tests), D56001B, D64005E..G(3 tests), and D29002K.)

Universal integer calculations

An implementation is allowed to reject universal integercalculations having values that exceed SYSTEM.MAX INT. Thisimplementation processes 64 bit integer calculations. (Seetests D4AO02A, D4AO02B, D4AO04A, and D4A004B).

Predefined types.

This implementation supports the additional predefined typesSHORT INTEGER, SHORT FLOAT, LONGFLOAT, in the packageSTANDARD. (See tests B86001C and B86001D.)

Based literals

* An implementation is allowed to reject a based literal witha value exceeding SYSTEM.MAX INT during compilation, or itmFy raise NUMERIC ERROR or CONSTRAINT ERROR duringexecution. This implementation raises NUMERIC ERROR duringexecution. (See test E24101A.)

Expression evaluation.

Apparently some default initialization expressions forrecord components are evaluated before any value is checked

Chapter 2 Page 2 of 7to belong to a component's subtype. (See test C32117A.)

Assignments for subtypes are performed with the sameprecision as the base type. (See test C35712B.)

Chapter 2 Page 2 of 7

CONFIGURATION INFORMATIONT iso

This implementation uses no extra bits for extra precision.~This implementation uses all extra bits for extra range.

(See test C35903A.)

Apparently NUMERICERROR is raised when an integer literaloperand in a comparison or membership test is outside therange of the base type. (See test C45232A.)

Sometimes NUMERIC ERROR is raised when a literal operand ina fixed point comparison or membership test is outside therange of the base type. (See test C45252A.)

Apparently underflow is not gradual. (See testsC45524A..Z.)

V. . Rounding.

The method used for rounding to integer is apparently* round away from zero. (See tests C46012A..Z.)

The method used for rounding to longest integer isapparently round away from zero. (See tests C46012A..Z.)

The method used for rounding to integer in static universalreal expressions is apparently round away from zero.(See test C4A014A.)

Array types.

An implementation is allowed to raise NUMERIC ERROR orCONSTRAINT ERROR for an array having a 'LENGTH that exceedsSTANDARD.INTEGER'LAST and/or SYSTEM.MAXINT. For thisimplementation:

Declaration of an array type or subtype declaration with* more than SYSTEM.MAXINT components raises NUMERICERROR.

(See test C36003A.)

No exception is raised when LENGTH is applied to an arraytype with INTEGER'LAST + 2 components. NUMERIC ERROR israised when an array type with INTEGER'LAST + 2 components

* is declared. (See test C36202A.)

- No exception is raised when 'LENGTH is applied to an array. type with SYSTEM.MAX INT + 2 components. NUMERICERROR is

raised when an array type with SYSTEM.MAXINT + 2 componentsis declared. (See test C36202B.)

Chapter 2 Page 3 of 7V.

CONFIGURATION INFORMATION

A packed BOOLEAN array having a 'LENGTH exceedingINTEGER'LAST raises NUMERIC ERROR when the array type isdeclared. (See test C52103X.)

A packed two-dimensional BOOLEAN array with more thanINTEGER'LAST components raises NUMERICERROR when the arraytype is declared. (See test C52104Y.)

A null array with one dimension of length greater thanINTEGER'LAST may raise NUMERIC _ERROR or CONSTRAINT ERROReither when declared or assigned. Alternatively, animplementation may accept the declaration. However, lengthsmust match in array slice assignments. This implementationraises NUMERICERROR when the array type is declared. (Seetest E52103Y.)

In assigning one-dimensional array types, the expressionappears to be evaluated in its entirety before

* CONSTRAINTERROR is raised when checking whether theexpression's subtype is compatible with the target'ssubtype. In assigning two-dimensional array types, theexpression does not appear to be evaluated in its entiretybefore CONSTRAINT ERROR is raised when checking whether theexpression's subtype is compatible with the target'ssubtype. (See test C52013A.)

Discriminated types.

During compilation, an implementation is allowed to eitheraccept or reject an incomplete type with discriminants thatis used in an access type definition with a compatiblediscriminant constraint. This implementation accepts suchsubtype indications. (See test E38104A.)

In assigning record types with discriminants, the expressionappears to be evaluated in its entirety beforeCONSTRAINT ERROR is raised when checking whether the

expression's subtype is compatible with the target'ssubtype. (See test C52013A.)

* . Aggregates.

In the evaluation of a multi-dimensional aggregate, allchoices appear to be evaluated before checking against theindex type. (See tests C43207A and C43207B.)

• In the evaluation of an aggregate containing subaggregates,not all choices are evaluated before being checked foridentical bounds. (See test E43212B.)

Chapter 2 Page 4 of 7

CONFIGURATION INFORMATION

All choices are evaluated before CONSTRAINT ERROR is raisedif a bound in a non-null range of a non-null aggregate doesnot belong to an index subtype. (See test E43211B.)

Representation clauses.

%IThe Ada Standard does not require an implementation tosupport representation clauses. If a representation clauseis not supported, then the implementation must reject it.

Enumeration representation clauses containing noncontiguousvalues for enumeration types other than character andboolean types are supported. (See tests C35502I..J.C35502M..N. and A39005F.)

Enumeration representation clauses containing noncontiguousvalues for character types are supported. (See tests

* C35507I..J, C35507M..N, and C55B16A.)

Enumeration representation clauses for boolean typescontaining representational values other than (FALSE => 0,TRUE => 1) are supported. (See tests C35508I..J andC35508M..N.)

Length clauses with SIZE specifications for enumerationtypes are supported. (See test A39005B.)

Length clauses with STORAGE SIZE specifications for accesstypes are supported. (See tests A39005C and C87B62B.)

Length clauses with STORAGE SIZE specifications for tasktypes are supported. (See tests A39005D and C87B62D.)

Length clauses with SMALL specifications are supported.(See tests A39005E and C87B62C.)

Record representation clauses are supported to the byte.4, level only. (See test A39005G.)

Length clauses with SIZE specifications for derived integertypes are supported. (See test C87B62A.)

-. . Pragmas.

The pragma INLINE is supported for procedure and functioncalls from within a body. The pragma INLINE for function

0 calls within a declaration is not supported. (See testsLA3004A, LA3004B, EA3004C, EA3004D, CA3004E, and CA3004F.)

Chapter 2 Page 5 of 7

0z.e V _

-VV - - - - - - .

I o ,ysCONFIGURATION INFORMATION~Input/output.

unconstrained array types and record types withdiscriminants without defaults. (See tests AE2101C,EE2201D, and EE2201E.)

The package DIRECT 10 cannot be instantiated withunconstrained array types and record types withdiscriminants without defaults. (See tests AE2101H,EE2401D, and EE2401G.)

Modes INFILE and OUT-FILE) are supported forSEQUENTIALIO. (See tests CE2102D and CE2102E.)

Modes IN_FILE, OUTFILE, and INOUT FILE are supported forDIRECTIO. (See tests CE2102F, CE2102I, and CE2102J.)

RESET and DELETE are supported for SEQUENTIALIO andDIRECTIO. (See tests CE2102G and CE2102K.)

Dynamic creation and deletion of files are supported forSEQUENTIAL 10 and DIRECTIO. (See tests CE2106A andCE2106B.)

Overwriting to a sequential file truncates the file to thelast element written. (See test CE2208B.)

An existing text file can be opened in OUTFILE mode, can becreated in OUT FILE mode, and can be created in INFILEmode. (See test EE3102C.)

* More than one internal file can be associated with eachexternal file for text I/O for reading only. (See testsCE2110B, CE2111D, CE3111A..E (5 tests), CE3114B, andCE3115A.)

* More than one internal file can be associated with eachV external file for sequential I/O for reading only. (See

tests CE2107A..D (4 tests) and CE2111D.)

More than one internal file can be associated with eachexternal file for direct I/O for reading only. (See tests

* CE2107E..I (5 tests) and CE2111H.)

An external file associated with more than one internalfile cannot be deleted for SEQUENTIALIO, DIRECTIO, andTEXTIO. (See test CE2110B.))

* Temporary sequential files are given names. Temporarydirect files are given names. Temporary files given namesare deleted when they are closed. (See tests CE2108A andCE2108C.)

Chapter 2 Page 6 of 7

7-4

CONFIGURATION INFORMATION

Generics.

Generic subprogram declarations and bodies can be compiledin separate compilations. (See tests CA1Ol2A and CA2009F.)

Generic package declarations and bodies can be compiled inseparate compilations. (See tests CA2009C, BC3204C, andBC3205D.)

Generic unit bodies and their subunits can be compiled inseparate compilations. (See test CA3011A.)

C

0

po.

CHAPTER 3

TEST INFORMATION

3.1 TEST RESULTS

At the time of testing, version 1.9 of the ACVC comprised 3122tests of which 25 had been withdrawn. Of the remaining tests,

* 205 were determined to be inapplicable to this implementation.Not all of the inapplicable tests were processed during testing;145 executable tests that use floating-point precision exceedingthat supported by the implementation were not processedModifications to the code, processing, or grading for16 tests were required to successfully demonstrate the testobjective. (See section 3.6)

The AVF concludes that the testing results demonstrate acceptableconformity to the Ada Standard.

3.2 SUMMARY OF TEST RESULTS BY CLASS

RESULT TEST CLASS TOTAL

* A B C D E L

Passed 108 1047 1659 17 15 46 2892

Failed 0 0 0 0 0 0 0

* Inapplicable 2 4 196 0 3 0 205

Withdrawn 3 2 19 0 1 0 25

TOTAL 113 1053 1874 17 19 46 3122

Chapter 3 Page 1 of 6

TEST INFORMATION

3.3 SUMMARY OF TEST RESULTS BY CHAPTER

RESULT CHAPTER

2 3 4 5 6 7 8 9 10 12 12 13 14 TOTAL

Passed 193 516 564 245 166 98 141 327 135 36 234 3 234 2892

Failed 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Inapplicable 11 57 I 3 0 0 2 0 2 0 0 0 19 205

Withdrawn 2 13 2 0 0 1 2 0 0 0 2 1 2 25

TOTAL 206 586 677 248 166 99 145 327 137 36 236 4 255 3122

3.4 WITHDRAWN TESTS

The following 25 tests were withdrawn from ACVC Version 1.9 atthe time of this validation:

B28003A E28005C C34004A C35502P A35902C C35904AC35A03E C35A03R C37213H C37213J C37215C C37215EC37215G C37215H C38102C C41402A C45614C A74106CC85018B C87B04B CC1311B BC3105A ADIA01A CE2401HCE3208A

See Appendix D for the reason that each of these tests waswithdrawn.

3.5 INAPPLICABLE TESTS

* Some tests do not apply to all compilers because they make use ofL. features that a compiler is not required by the Ada Standard to

support. Others may depend on the result of another test that iseither inapplicable or withdrawn. The applicability of a test to animplementation is considered each time a validation is attempted. Atest that is inapplicable for one validation attempt is not

* necessarily inapplicable for a subsequent attempt. For thisvalidation attempt, 205 tests were inapplicable for the reasonsindicated:

0

5. Chapter 3 Page 2 of 6

TEST INFORMATION

. A39005G uses a record representation clause at the bit level.- This compiler only supports such clauses to the byte level.

The following tests use LONGINTEGER, which is not supported bythis compiler.

C45231C C45304C C45502C C45503C C45504CC45504F C45611C C45613C C45631C C45632CB52004D C55B07A B55B09C

C45531M, C45531N, C45532M, and C45532N use fine 48 bit fixedpoint base types which are not supported by this compiler.

C455310, C45531P, C455320, and C45532P use coarse 48 bit fixedpoint base types which are not supported by this compiler.

.. . B86001D & C45231D require a predefined numeric type other than

those defined by the Ada language in package STANDARD. There isno such type for this implementation.

. C86001F redefines package SYSTEM, but TEXT 10 is aade obsolete by

this new definition in this implementation and the test cannot beexecuted since the package REPORT is dependent on the packageTEXT 10.

BA2001E requires that duplicate names of subunits with a commonancestor be detected at compilation time. This compilercorrectly detects the error at link time, and the AVO rules thatsuch behaviour is acceptable.

EA3004D This compiler only obeys the INLINE pragma for calls froman Ada statement within a body. This test calls an INLINEfunction within a declaration.

AE2101H, EE2401D, and EE2401G use instantiations of packageDIRECT 10 with unconstrained array types and record types havingdiscriminants without defaults. These instantiations arerejected by this compiler.

. CE2107B..E(4 tests), CE2107G..I (3 tests), CE2110B, CE2111D,CE2111H, CE3111B..E (4 tests), CE3114B, and CE3115A areinapplicable because multiple internal files cannot beassociated with the same external file when one file is open for

. writing. The proper exception is raised when multiple access isattempted.

0

% , % %w

TEST INFORMATION

The following 159 tests require a floating-point accuracy thatexceeds the maximum of 18 digits supported by thisimplementation:

C241130..Y (11 tests) C357050..Y (11 tests)C357060..Y (11 tests) C357070..Y (11 tests)C357080..Y (11 tests) C358020..Z (12 tests)C452410..Y (11 tests) C453210..Y (11 tests)

* C454210..Y (11 tests) C455210..Z (12 tests)C455240. Z (12 tests) C456210. Z (12 tests)C456410..Y (11 tests) C460120..Z (12 tests)

3.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS

It is expected that some tests will require modifications ofcode, processing, or evaluation in order to compensate forlegitimate implementation behaviour. Modification are made withthe approval of the AVO, and are made in cases where legitimateimplementation behaviour prevents the successful completion of an(otherwise) applicable test. Examples of such modificationsinclude: adding a length clause to alter the default size of acollection; splitting a Class B test into sub-tests so that allerrors are detected; and confirming that messages produced by anexecutable test demonstrate conforming behaviour that wasn'tanticipated by the test (such as raising one exception instead ofanother).

Modifications were required for 16 Class B tests.

The following Class B tests were split because syntax errors atone point resulted in the compiler not detecting other errors inthe test:

B24007A B24009A B32202A B32202B B32202CB33001A B37004A B45102A B61012A B62001BB62001C B62001D B91004A B95069A B95069BBC3205C

-Chapter 3 Page 4 of 6

TEST INFORMATION

3.7 ADDITIONAL TESTING INFORMATION

3.7.1 Prevalidation

Prior to validation, a set of test results for ACVC Version 1.9produced by the AlsyCOMP 006 was submitted to the AVF by theapplicant for review. Analysis of these results demonstratedthat the compiler successfully passed all applicable tests, andthe compiler exhibited the expected behaviour on all inapplicabletests.

3.7.2 Test Method

Testing of the AlsyCOMP 006 using ACVC Version 1.9 was conductedon-site by a validation team from the AVF. The configurationconsisted of an IBM 370 3081K operating under VM/SP CMS, Version3.1 host and an IBM 370 3084Q target operating under MVS, Version3.2. The host and target computers were linked via magnetic media.

A magnetic tape containing all tests was taken on-site by thevalidation team for processing. Tests that make use ofimplementation-specific values were customized before being writtento the magnetic tape. Tests requiring modifications during theprevalidation testing were not included in their modified formon the magnetic tape.

The contents of the magnetic tape were not loaded directly ontothe host computer.

The contents of the magnetic tape were loaded first onto a DEC VAX750 running VMS upon which tests requiring to be split weremodified and then transferred onto a SUN 3/160 running UNIX BSD4.2, via an ethernet connection. A magnetic tape was then produced

Nin IBM compatible format from the SUN 3/160, which was read onto aCMS mini disk on the host computer.

After the test files were loaded to disk, the full set of testswas compiled on the IBM 3081K.

The IBM 370 3081K machine was also used to control the linking andexecution of the object files, by submitting batch jobs to the MVS3.2 system runnign on an IBM 370 3084Q, and retrieving the output

* of those jobs. The process was controlled by command scripts tosubmit object files and associated JCL to link and execute testsusing two simultaneous batch streams on a single host computer.

Once a test completed, its output was returned to the CMS systemand processed by scripts that made the output easier to understand.

* All test output was transferred to the SUN 3/160 running via a SUNfile transfer program IBMFTP, from where it was transferred viaethernet to the VAX 750 and printed.

Chapter 3 Page 4 of 6

TEST INFORMATION

The compiler was tested using command scripts provided byAlsys Limited and reviewed by the validation team. The compilerwas tested using all default (switch I option) settings exceptfor the following:

Option J Switch Effect

PAGELENGTH=45 Control length of compiler listingpages

PAGEWIDTH=132 Control width of compiler listingpages

ERRORS=999 Control number of errors detectedbefore compiler aborts

TEXT Include full source code in listing

Tests were compiled, linked, and executed (as appropriate) usinga single host computer and a single target computer. Test output,compilation listings, and job logs were captured on magnetic tape

* and archived at the AVF. The listings examined on-site by thevalidation team were also archived.

3.7.3 Test Site

The validation team arrived at Alsys Ltd, Partridge House,Newtown Road, Henley on Thames on 7 December 1987 and departedafter testing was completed on 10 December 1987.

-. 36

~Chapter 3 Page 6 of 6

APPENDIX A

CONFORMANCE STATEMENT

Alsys Limited has submitted the following conformancestatement concerning the AlsyCOMP_006

A d 1'

..

Appendix A Page 1 of 3

CONFORMANCE STATEMENT

DECLARATION OF CONFORMANCE

Compiler Implementor: Alsys LimitedAda Validation Facility: The National Computing Centre LtdAda Compiler Validation Capability (ACVC) Version: 1.9

Base Configuration

Base Compiler Name: AlsyCOMP_006 Version: 3.2

Host Architecture : IBM 370 3081K OS&VER : VM/SP CMS 3.1

Target Architecture : IBM 370 3084Q OS&VER : MVS 3.2

Implementor's Declaration

I, the undersigned, representing Alsys Limited, have implemented nodeliberate extensions to the Ada Language Standard ANSI/MIL-STD-1815Ain the compiler(s) listed in this declaration. I declare that AlsysLimited is the owner of record of the Ada language compiler(s) listedabove and, as such, is responsible for maintaining said compiler(s) inconformance to ANSI/MIL-STD-1815A. All certificates and registrationsfor Ada language compiler(s) listed in this declaration shall be madeonly in th own.nr's corporate name.

* \,\~~~~j\* JI ~~~Date:_______________ ________

ALSYS LimitedM L J Jordan, Marketing Director

*Ada is a registered trademark of the United States Government(Ada Joint Program Office)

I

Appendix A Page 2 Of 3

I

Jk . *

~CONFORMANCE STATEMENT

' . Owner's Declaration

4..

. " I, the undersigned, representing Alsys Ltd, take full responsibilityfor implementation and maintenance of the Ada compiler(s) listed

i Ebove, and agree to the public disclosure of the final ValidationSummary Report. I further agree to continue to comply with the Ada

trademark policy, as defined by the Ada Joint Program Office. Ideclare that all of the Ada language compilers listed, and theirhost/target performance are in compliance with the Ada Language

CANSI/MIL-STD-NA81E5A.

• " J Date:~Alsys Limited

M L J Jordan, Marketing Director

'

I

abv, n gretotepubic disclosur f thia Vldto

APPENDIX B

APPENDIX F OF THE Ada STANDARD

The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependentconventions as mentioned in chapter 13 of MIL-STD-1815A, and tocertain allowed restrictions on representation clauses. Theimplementation-dependent characteristics of the AlsyCOMP 006,version 3.2 are described in the following sections which discusstopics in Appendix F of the Ada Language Reference Manual(ANSI/MIL-STD-1815A). Implementation-specific portions of the

* package STANDARD are also included in this appendix.

C.

AP

Apedi Pg 1o.

0

Alsys IBM 370 Ada* Compiler

Appendix F

Implementation - Dependent Characteristics

for MVS

* Version 3.2

Alsys S.A.29. Avenue de Versailles

78170 La Celle St. Cloud, France

* Alsys Inc.1432 Main StreetWaltham, MA 02154. U.S.A.

* Alsys Ltd.Partridge House, Newtown Road

Henley-on- Thames.

Oxfordshire RG9 1EN, U.K.

Ada is a registered trademark of the U.S. Government, Ada Joint Program Office

Printed: November 1987

Alsys reserves the right to make changes in specifications and other informationcontained in this publication without prior notice. Consult Alsys to determine

* whether such changes have been made.

W,€

.1m0

4 -AV., Pinted Noeme 1987

-PREFACE

This A/si.r IB. 370 Ada Compiler Appendix F is for programmers, softwareengineers. project managers, educators and students who want to develop an Adaprogram for any IBM System/370 processor that runs NIVS.

This appendix is a required part of the Reference Manual for the Ada ProgrammingLanguage, ANSI/MIL-STD 1815A, February 1983 (throughout this appendix,citations in square brackets refer to this manual). It assumes that the user is alreadyfamiliar with the MVS operating system, and has access to the following IBMdocuments:

OS/VS2 MVS Overview, GC28-0984

OS/VS2 System Programming Library: Job Management, GC28-1303

OS/I'$2 M VS JCL, GC28-1350

IBM System/370." Principles of Operation, GA22-7000

IBM System/370 System Summary, GA22-7001

3

'p.

0"

~Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2i

' S " , " " " " J .' ." -,- J '' " .. - " ,, , ' .' " -, , " " " , " , . " ' " ". ' . ." " k ' ' ., " . , " " " , , , , " ,, ' , " ,, ,,

I

TABLE OF CONTENTS

APPENDIX F 1

I Implement: ion-Dependent Pragmas I1.1 INTERFACE I

Calling Conventions 2Parameter-Passing Conventions 3Parameter Representations 3Restrictions on Interfaced Subprograms 5

1.2 INTERFACE NAME 5! I Other Pragmas 6

2 Implementation-Dependent Attributes 6

3 Specification of the Package SYSTEM 7

0 4 Restrictions on Representation Clauses 8

5 Conventions for Implementation-Generated Names 8

, 6 Address Clauses 10

7 Restrictions on Unchecked Conversions 10

8 Input-Output Packages 108.1 Specifying External Files 10

Files 10FORM Parameter 11

8.2 USE ERROR 168.3 Text Terminators 168.4 EBCDIC and ASCII 168.5 Characteristics of disk files 26

TEXT 10 26SEQUENTIAL 10 26

* DIRECT_10 26-..9 Characteristics of Numeric Types 27

9.1 Integer Types 279.2 Floating Point Type Attributes 27

SHORT FLOAT 27* FLOAT 28

LONGFLOAT 289.3 Attributes of Type DURATION 28

Alsy's IB.M 370 Ada Compiler. Appendix F for MVS, Version 3.2 if.A

10 Other Implementation-Dependent Characteristics

10.1 Characteristics of the leap10.2 Characteristics of Tasks10.3 Definition of a Main Program 3010.4 Ordering of Compilation Units 3010.5 Package SYSTEM _ENVIRONMENT 30

11 Limitations 3211.1 Compiler Limitations 32

o. Ip

'. .

,

-5,

.'

", Alsjs IBM 370 Ada Compiler. Appendix F for Mi'S. V'ersion 3.2 ii"

0

0

Appendix F

Implementation-Dependent Characteristics

This appendix summarises the imolementation-dependent characteristics of the AlsysIBM 370 Ada Compiler for MVS.

The sections of this appendix are as follows:

I. The form, allowed places, and effect of every implementation-dependentpragma.

2. The name and type of every implementation-dependent attribute.

3. The specification of the package SYSTEM.

4. The list of all restrictions on representation clauses.

* 5. The conventions used for any implementation-generated names denotingimplementation-dependent components.

6. The interpretation of expressions that appear in address clauses, includingthose for interrupts.

7. Any restrictions on unchecked conversions.

8. Any implementation-dependent characteristics of the input-output

packages.

9. Characteristics of numeric types.

10. Other implementation-dependent characteristics.

11. Compiler limitations.

The name Ada Run-Time Executive refers to the run-time library routines providedfor all Ada programs. These routines implement the Ada heap, exceptions, tasking,10, and other utility functions.

- 1 Implementation-Dependent Pragmas

Ada programs can interface with subprograms written in assembler or otherlanguages through the use of the predefined pragma INTERFACE [13.9] and theimplementation-defined pragma INTERFACENAME.

1.1 INTERFACE

Pragma INTERFACE specifies the name of an interfaced subprogram and the nameof the programming language for which calling and parameter passing conventions

Als.s IBM 370 Ada Compiler. Appendix F for MVS, Version 3.2 1

h,: Ie gene .c.-. Pragma INTERFACE takes the form specified in the Reference

pragina IN IFERIACE ,'angua,4e _nanze *siuhprograminame);

%k hlee

* layu,:ge__izanc is the name of the other language whose calling andparameter passing conventions are to be used.

a subprogramnarne is the name used within the Ada program to refer tothe interfaced subprogram.

The only language name currently accepted by pragma INTERFACE isASSEMBLER.

The language name used in the pragma INTERFACE does not necessarily correspondto the language used to write the interfaced subprogram. It is used only to tell theCompiler how to generate subprogram calls, that is, which calling conventions andparameter passing techniques to use. ASSEMBLER is used to refer to the standardIBM 370 calling and parameter passing conventions. The programmer can use thelanguage name ASSEMBLER to interface Ada subprograms with subroutines writtenin any language that follows the standard IBM 370 calling conventions.

eCalling Conventions

The contents of the general purpose registers 12 and 13 must be left unchanged by* ,e the call. On entry to the subprogram, register 13 contains the address of a register

save area provided by the caller.

Registers 15 and 14 contain the entry point address and return address, respectively,of the called subprogram.

The Ada Run-Time Executive treats any interruption occurring during the executionof the body of the subprogram as an exception being raised at the point of call ofthe subprogram. The exception raised following a program interruption in interfacedcode is a NUMERICERROR for the following cases:

Fixed-pt overflow *% Fixed-pt divide

Decimal overflow *

Decimal divideExponent overflowExponent underflow

'. Significance *5Floating-pt divide

In other cases, PROGRAM ERROR is raised. The classes of interruptions markedwith an asterisk (*) may be masked by setting the program mask. Note that theprogram mask should be restored to its original value before returning to Ada code.

ISA/sy's IBM 370 Ada Compiler. Appendix F for MVS. Version 3.22

""

Parameter-Passing Consentions

On entry to the subprogram, register I contains the address of a parameter addresslist. Each word in this list is an address corresponding to a parameter. The lastword in the list has its bit 0 (sign bit) set.

For actual parameters which are literal values, the address is that of a cop) of thevalue of the parameter; for all other parameters it is the address of the parameterobject. Interfaced subprograms have no notion of parameter modes; henceparameters whose addresses are passed are not protected from modification by theinterfaced subprogram, even though they may be formally declared to be of mode in.

If the subprogram is a function, on exit register 0 is used to return the result. Scalarvalues are returned in register 0. Non-scalar values are returned by address inregister 0.

No consistency checking is performed between the subprogram parameters declaredin Ada and the corresponding parameters of the interfaced subprogram. It is theprogrammer's responsibility to ensure correct access to the parameters.

An example of an interfaced subprogram is:

* 64-bit integer addition: use an array rather than a record to* represent the integer so as not to rely on record ordering if the* components are accessed in Ada.

* type DOUBLE is array (1..2) of INTEGER;* procedure ADD (LEFT, RIGHT: in DOUBLE;* RESULT : out DOUBLE);

ADD CSECTUSING ADD,15STM 2,6,12(13)L 2,0(1) Address of LEFTLM 3,4,0(2) Value of LEFTL 2,4(!) Address of RIGHTAL 4,4(2) Add low-order components (no interruption)BC 12,S1 Branch if no carryA 3,=F'I' Add carry (NUMERIC ERROR possible)

SI A 3,0(2) Add high-order (NUMERICERROR possible)L 2,8(1) Address of RESULTSTM 3,4,0(2) Value of resultLM 2,6,12(13)BR 14

-.LTORGDROPEND

-Izi

V Parameter Representations

This section describes the representation of values of the types that can be passed asparameters to an interfaced subprogram.

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 3

0.%

Integer Types [3.5.4]

Ada integer types occupy 16 (SHORTINTEGER) or 32 (INTEGER) bits. AnINTEGER subtype falling within the range of SHORT INTEGER is implemented asa SHORTINTEGER in 16 bits.

Enumeration Tves [3.5.11

Values of an Ada enumeration type are represented internally as unsigned valuesrepresenting their position in the list of enumeration literals defining the type. The

4 first literal in the list corresponds to a value of zero.

Enumeration types with 256 elements or fewer are represented in 8 bits, those withmore than 256 elements in 16 bits. The maximum number of values an enumerationtype can include is 65536 (2**16).

The Ada predefined type CHARACTER [3.5.2] is represented in 8 bits, using thestandard ASCII codes [C].

,V.

Floating Point Tves [3.5.7, 3.5.8]

Ada floating-point values occupy 32 (SHORTFLOAT), 64 (FLOAT) or 128(LONGFLOAT) bits, and are held in IBM 370 (short, long or extended floatingpoint) format.

Fixed Point Tves [3.5.9, 3.5.10]

Ada fixed-point types are managed by the Compiler as the product of a signedmantissa and a constant snall. The mantissa is implemented as a 16 or 32 bitinteger value. Small is a compile-time quantity which is the power of two equal orimmediately inferior to the delta specified in the declaration of the type.

The attribute MANTISSA is defined as the smallest number such that:

2 ** MANTISSA >= max (abs (upperbound), abs (lowerbound)) / small

,. The size of a fixed point type is:

* MANTISSA Size

. 15 16 bits16 31 32 bits

Fixed point types requiring a MANTISSA greater than 31 are not supported.

Access Tves [3.8]

Values of access types are represented internally by the 31-bit address of thedesignated object held in a 32 bit word. Users should not alter the bits of this word,

Alsys IBM 370 Ada Compiler. Appendix F for MVS, Version 3.2 4

'V

~~W0 2W"4

VK

ii ich are ignored by the architet ule kn \hiji the program is running. The value-etu Is used to represent null.

A rrv T\ pos [3.6]

.-Nda arras are passed by referen.ze, the \alue passed is the address of the firstelement of the array. When an array is passed as a parameter to an interfacedsubprogram, the usual consistency checking between the array bounds declared in thecalling program and the subprogram is not enforced. It is the programmer'sresponsibility to ensure that the subprogram does not violate the bounds of the array.

Values of the predefined type STRING [3.6.3] are arrays, and are passed in the sameway: the address of the first character in the string is passed. Elements of a stringare represented in 8 bits, using the standard ASCII codes.

Record Types [3.7]

Ada records are passed by reference, by passing the address of the first componentof the record. Components of a record are aligned on their natural boundaries (e.g.INTEGER on a four-byte boundary). If a record contains discriminants orcomponents having a dynamic size, implicit components may be added to the record.Thus the exact internal structure of the record in memory may not be inferreddirectly from its Ada declaration.

Restrictions on Interfaced Subprograms

• The Ada Run-Time Executive uses the SPIE (SVC 14) macro. Interfacedsubprograms should avoid use of this facility, or else restore interruption processingto its original state before returning to the Ada program. Failure to do so may leadto unpredictable results.

Similarly, interfaced subprograms must not change the program mask in the ProgramStatus Word (PSW) of the machine without restoring it before returning.

1.2 INTERFACENAME

Pragma INTERFACE NAME associates the name of an interfaced subprogram, asdeclared in Ada, with its name in the language of origin. If pragmaINTERFACE NAME is not used, then the two names are assumed to be identical.This pragma takes the form

pragma INTERFACE NAME (subprogram nanie, string literal);

where

a subprogramname is the name used within the Ada program to refer tothe interfaced subprogram.

*',0

A/sys IBM 370 Ada Compiler, Appendix F for MVS, Version 3.2

0

-- --""a-.- .'. -. - .° ,-.,.-. .-. , . . . ,-. . ."-. , .- 5-.-.-,,,,3.? 3.,.,3.,- .- . , a

strtini,_lite ral is the name b\ which the interfaced subprogram is referredto at link-time.

The use of INTERFACENAME is optional, and is not needed if a subprogram hasthe same name in Ada as in the language of origin. It is useful, for example, if thename of the subprogram in its original language contains characters that are notpermitted in Ada identifiers. Ada identifiers can contain only letters, digits andunderscores, whereas the IBM 370 linkage editor/loader allows external names tocontain other characters, e.g. the plus or minus sign. These characters can bespecified in the string literal argument of the pragma INTERFACE NAME.

The pragma INTERFACE NAME is allowed at the same places of an Ada programas the pragma INTERFACE [13.91. However, the pragma INTERFACE NAMEmust always occur after the pragma INTERFACE declaration for the interfacedsubprogram.

In order to conform to the naming conventions of the IBM 370 linkage editor/loader,the link-time name of an interfaced subprogram will be truncated to 8 charactersand converted to upper case.

Example

package SAMPLEDATA is

function SAMPLEDEVICE (X: INTEGER) return INTEGER;

function PROCESS_SAMPLE (X: INTEGER) return INTEGER;private

pragma INTERFACE (ASSEMBLER, SAMPLEDEVICE);pragma INTERFACE (ASSEMBLER, PROCESSSAMPLE);

pragma INTERFACENAME (PROCESSSAMPLE, PSAMPLE");

end SAMPLEDATA;

1.3 Other Pragmas

No other implementation-dependent pragmas are supported in the current version ofthis compiler.

2 Implementation-Dependent Attributes

In a addition to the Representation Attributes of [13.7.2] and [13.7.3], there are thefour attributes listed in section 5 (Conventios for Implementation-Generated

6I Names), for use in record representation clauses. There also exists the restrictionsgiven below on the use of the ADDRESS attribute.

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 6

A

.

Limitations on the use of tie attribute ADDRESS

The auribute ADDRESS is implemented for all prefixes that have meaningfuladdresses. The following entries do not have meaningful addresses and will thereforecause a compilation error if used as prefix to address:

0 A constant that is implemented as an immediate value i.e., does not haveany space allocated for it.

* A package specifiaction that is not a library unit.

* A package body that is not a library unit or subunit.

3 Specification of the Package SYSTEM

package SYSTEM is

type N. "4E is (IBM 370);

SYSTEMNAME: constant NAME:= NAME'FIRST;MININT :constant :=-(2"*3);

MAXINT S constant :- 2*31-1;

MEMORY-SIZE : constant 2-24;

% type ADDRESS is range MININT .. MAXINT;

STORAGEUNIT: constant 8;

MAX-DIGITS constant 18;

MAX-MANTISSA : constant :31;

FINEDELTA constant :2 2#1.0#e-31;

TICK constant 0.01;

NULLADDRESS: constant ADDRESS : 0;

subtype PRIORITY is INTEGER range 1 .. 10;

-- These subprograms are provided to perform

-- READ/WRITE operations in memory.

V generic

type ELEMENTTYPE is private;

Sfunction FETCH (FROM :ADDRESS) return ELEMENT TYPE;

generic

type ELEMENTTYPE is private;

procedure STORE (INTO : ADDRESS; OBJECT: ELEMENTTYPE);

* end SYSTEM;

The generic function FETCH may be used to read data objects from given addressesin store. The generic procedure STORE may be used to write data objects to givenaddresses in store.

Als's IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 7

&0K= N

4 Restrictions on Representation Clauses

This %ersion of the Alsys IBM 370 Ada Compiler supports represe".ation clauses[13.!] with the following exceptions:

" There is no bit level implernentation for any of the representation

clauses.

" Address clauses are not supported.

* Change of representation for RECORD types are not implemented.

* Machine code insertions are not supported.

* For the length clause:

Size specification: T'SIZE is not implemented for types declaredin a generic unit.

- Specification of small for a fixed point type: T'SMALL isrestricted to a power of 2, and the absolute value of theexponent must be less than 31.

.,The Enumeration Clause is not allowed if there is a range constraint onthe parent subtype.

, The Record Clause is not allowed for a derived record type.

* The pragma PACK [13.1] is also not supported. However, its presence ina program does not in itself make the program illegal; the Compiler will

simply issue a warning message and ignore the pragma.

5 Conventions for Implementation-Generated Names

Special record components are introduced by the compiler for certain record typedefinitions. Such record components are implementation-dependent: they are usedby the compiler to improve the quality of the generated code for certain operationson the record types. The existence of these components is established by thecompiler depending on implementation-dependent criteria. Attributes have beendefined for referring to them in record representation clauses. An error message isissued by the compiler if the user refers to implementation-dependent attribute that

% does not exist. If the implementation-dependent component exists, the compilerchecks that the storage location specified in the component clause is compatible with

the treatment of this component and the stoarge locations of other components. Anerror message is issued if this check fails.

There are four such attributes:

Alsys IBM 370 Ada Compiler, Appendix F for MVS, Version 3.2 8

0

T'RECORD SIZE For a prefix T that denotes a record type. Thisattribute refers to the record component introduced bythe compiler in a record to store the size of the recordobject. This component exists for objects of a recordtype with defaulted discriminants when the sizes of therecord objects depend on the values of thediscriminants.

T'VARIENT INDEX For a prefix T that denotes a record type. Thisattribute refers to the record component introduced bythe compiler in a record to assist in the efficientimplementation of discriminant checks. Thiscomponent exists for objects of a record type withvariant type.

C'ARRAYDESCRIPTOR For a prefix C that denotes a record componentof array type whose component subtype definitiondepends on discriminants. This attribute refers to therecord component introduced by the compiler in arecord to store information on subtypes of componentsthat depend on discriminants.

C'RECORDDESCRIPTOR For a prefix C that denotes a record componentof record type whose component subtype definitiondepends on discriminants. This attribute refers to therecord component introduced by the compiler in arecord to store information on subtype- o componentsthat depend on discriminants.

There are four implementation-generated names:

RECORDSIZE This is an implementation-specific record component.The component is introduced by the compiler in arecord to store the size of the record object.

VARIANTINDEX This is an implementation-specific record component.The component is introduced by the compiler in arecord to assist in the efficient implementation ofdiscriminant checks.

ARRAYDESCRIPTIOR and RECORDDESCRIPTOR Array and recorddescriptors are internal components which are used bythe compiler to store information on subtypes or recordcomponents that depend upon discriminants.

Array descriptors are used for record components ofarray types, whereas record descriptors are used forrecord components of record types

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 9

S

6 Address Clauses

Address clauses [13.5] are not supported in this version of the Alsys IBM 370 AdaCompiler.

7 Restrictions on Unchecked Conversions

* Unchecked conversions [13.10.2] are allowed only between types which have thesame value for their 'SIZE attribute.

8 Input-Output Packages

The predefined input-output packages SEQUENTIAL 10 [14.2.31, DIRECT10[14.2.5], and TEXT _10 [14.3.10] are implemented as described in the LanguageReference Manual, as is the package 10_EXCEPTIONS [14.5], which specifies theexceptions that can be raised by the predefined input-output packages.

The package LOWLEVEL_10 [14.6], which is concerned with low-level machine-dependent input-output, has not been implemented.

TEXT 10 and SEQUENTIAL 10 files are implemented as DSORG PS (QSAM).DIRECT_10 files are implemented as DSORG DA (BDAM).

* 8.1 Specifying External Files

The NAME parameter supplied to the Ada procedures CREATE or OPEN [14.2.1]may represent an MVS dataset name (DSNAME) or a DDNAME.

* Files

An MVS dataset name as specified in the Ada NAME parameter may be given inany of the following forms:

- Als's IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 10

I I5 *,''. ',. ) ,i ' ' " .. " , " " " -

OPEN (F, NAME => "L\NQUALII-LD.NAMIL"....)

OPEN (F, NAME => "'FULLY.QUALIFIED.NAME", ... );

OPEN (F, NAME => "UNQUALIFIED.PDS (NILMBER)",

OPEN (F, NAME => "'FULLLY.QUALIFIED.PDS (MEMBER)', ...);

An unqualified name (not enclosed in apostrophes) is first prefixed by the name (ifany) given as the QUALIFIER parameter in the program PARM string when theprogram is run.

The QUALIFIER parameter may be specified as in the following example:

//STEP20 EXEC PGM=IEB73,PARM='/QUALIFIER(PAYROLL.ADA)'

A fully qualified name (enclosed in single quotes) is not so prefixed. The result ofthe NAME function is always in the form of a fully qualified name, i.e. enclosed insingle quotes.

The file name parameter may also be a DDNAME. If the file name parameter startswith a % character, the remainder of the string (including trailing blanks) is taken asa DDNAME which must be defined in the JCL used to execute the program;otherwise NAMEERROR will be raised.

If DELETE is called for a file opened using a DDNAME, USEERROR will beraised, but the file will be closed.

FORM Parameter

The FORM parameter comprises a set of attributes formulated according to thelexical rules of [2], separated by commas. The FORM parameter may be given as anull string except when DIRECTIO is instantiated with an unconstrained type: inthis case the RECORDSIZE attribute must be provided. Attributes are comma-separated; blanks may be inserted between lexical elements as desired. In thedescriptions below the meanings of natural, positive, etc., are as in Ada; attributekeywords (represented in upper case) are identifiers [2.3] and as such may bespecified without regard to case.

USEERROR is raised if the FORM parameter does not conform to these rules.

The attributes are as follows:

Unit attribute

* _This attribute allows control over the unit on which a file is allocated. The syntax is-. as follows:

UNIT => unit name

Alsvs IBM 370 Ada Compiler, Appendix F for AMI'S, Version 3.2 11

where ut! nane specifies a group name, a device type or a specific unit address.

The default is the local system generation default.

Volume attribute

This attribute allows control over the volume on which a file is allocated. The

syntax is as follows:

VOLUME => volunie name

* where volumename specifies the volume serial number.

The default is the local system generation default.

Primary attribute

This attribute allows control over the primary space allocation for the file. The

syntax is as follows:

* •PRIMARY => natural

where natural is the number of blocks allocated to the file.

The default is the local system generation default.

Secondary attribute

This attribute allows control over the secondary space allocation for the file. Thesyntax is as follows:

SECONDARY => natural

where natural is the number of additional blocks allocated to the file if more space isneeded.

The default is the local system generation default.

Extension attribute

This attribute allows control over the manner in which DIRECT_10 (BDAM) filesare extended. When a DIRECT 10 file is created it must be initialised to a certain

• extent (number of records). In order to extend the file beyond this point, the filemust be recreated and copied. This recreation is automatic, but does imply an

or. overhead in extending a file beyond its initial allocation. The EXTENSION attributeallows this overhead to be minimised by specifying both the initial number ofrecords to be initialised when the file is created, and the additional number of

Alsivs IBM 370 Ada Compiler. Appendix F for MT/S. Version 3.2 12

0a

records to be intialised over and above that required, when a record greater than thecurrent number of initialised records is written to. The syntax is as follows:

EXTENSION => natural

where natural is the number of records initialised on file creation and the number ofadditional records initialised on file extension.

The default is EXTENSION => 0.

Unpredictable results may occur if file sharing is attempted for DIRECT 10 fileswhich are extended (see File sharing attribute).

File sharing attribute

This attribute allows control over the sharing of one external file between severalinternal files within a single program. In effect it establishes rules for subsequentOPEN and CREATE calls which specify the same external file. If such rules areviolated or if a different file sharing attribute is specified in a later OPEN orCREATE call, USEERROR will be raised. The syntax is as follows:

NOTSHARED I SHARED => access mode

where

access mode::= READERS I SINGLE WRITER I ANY

A file sharing attribute of:

NOTSHARED

implies only one internal file may access the external file.

SHARED => READERS

imposes no restrictions on internal files of mode IN FILE, but prevents%' any internal files of mode OUT FILE or INOUT FILE being associated% with the external file.

SHARED => SINGLEWRITER

is as SHARED => READERS, but in addition allows a single internal fileof mode OUTFILE or INOUTFILE.

SHARED => ANY

-, places no restrictions on external file sharing.

If a file of the same name has previously been opened or created, the default istaken from that file's sharing attribute, otherwise the default depends on the mode

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 13

r r* %

0:1 OR0 .

I

o1" the file: for mode IN FILE the default is SHARED => REIADERS, fur modesINOUTFILE and OUTFILE the default is NOT SIIARLD.

Unpredictable results may occur if file sharing is attempted for DIRECT 10 fileswhich are extended (see Extension attribute).

Record size attribute

This attribute controls the record format (RECFM) and logical record length(LRECL) of an external file.

By default, records are output according to the following rules (see section 8.5):

* for TEXT_10 and SEQUENTIALIO, variable-length record files(RECFM = V).

* for DIRECTIO, fixed-length record files (RECFM = F).

The user can specify the record size attribute to force the representation of the Adaelement in output records of a given byte size. If the record size attribute isspecified, fixed-length records (RECFM = F) will be generated, with a record length(LRECL) as specified (see section 8.5).

In the case of DIRECT_10 and SEQUENTIAL _10 for constrained types the valuegiven which must not be smaller than ELEMENT TYPE'SIZE /SYSTEM.STORAGEUNIT; USEERROR will be raised if this rule is violated.

In the case of DIRECT_10 for unconstrained types the user is required to specifiythe RECORD SIZE attribute (otherwise USEERROR will be raised by the OPENor CREATE procedures). The size specified must be large enough to accommodatethe largest record which is to be read or written plus 4 bytes for the descriptor (seesection 8.5). If a larger record is processed, DATAERROR will be raised by theREAD or WRITE.

In the case of TEXT 10, output lines will be padded to the requisite length withspaces; this fact should be borne in mind when re-reading files generated usingTEXT_10 with the record size attribute set.

The syntax of the record size attribute is as follows:

4RECORDSIZE => natural

where natural is a size in bytes.

The default is

RECORDSIZE => element length

where

elementlength = ELEMENTTYPE'SIZE / SYSTEM.STORAGEUNIT

I

AlsYs IBM 370 Ada Compiler, Appendix F for MI'S, Version 3.2 14

I

. 1W"

for input-output of constrained types, and

RECORDSIZE => 0

(meaning variable-length records) for input-output of unconstrained types other thanvia DIRECT 10 in which case the RECORD SIZE attribute must be provided bythe user.

Block size attribute

This attribute controls the block size of an external file. The block size must be atleast as large as the record size (if specified) plus four bytes for a record descriptorword in the case of RECFM V files.

The default is

BLOCKSIZE => record size

for RECFM F files and

BLOCK SIZE => 4096

for RECFM V files.

Carriage control

This attribute applies to TEXT_10 only, and is intended for files destined to be sentto a printer.

For a file of mode OUT FILE, this attribute causes the output procedures ofTEXT 10 to place a carriage control character as the first character of every outputrecord; 'I' (skip to channel 1) if the record follows a page terminator, or space (skipto next line) otherwise. Subsequent characters are output as normal as the result ofcalls of the output subprograms of TEXT_10.

For a file of mode IN FILE, this attribute causes the input procedures of TEXT 10to interpret the first character of each record as a carriage control character, asdescribed in the previous paragraph. Carriage control characters are not explicitly

, •returned as a result of an input subprogram, but will (for example) affect the resultof ENDOFPAGE.The user should naturally be careful to ensure the carriage control attribute of a file

of mode IN-FILE has the same value as that specified when creating the file.

• The syntax of the carriage control attribute is as follows:

, CARRIAGECONTROL => boolean

The default is CARRIAGECONTROL => FALSE.

0

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 15?,P

8.2 VSE ERR01P

The following conditions will cause USE ERROR to be raised:

a Specifying a FORM parameter whose syntax does not conform to therules given above.

a Specifying the BLOCK SIZE FORM parameter attribute to have a valueless than RECORDSIZE.

a Specifying the RECORD SIZE FORM parameter attribute to have avalue of zero (or failing to specify RECORDSIZE) for instantiations ofDIRECT_10 for unconstrained types.

a Specifying a RECORD SIZE FORM parameter attribute to have a valueless than that required to hold the element for instantiations ofDIRECT 10 and SEQUENTIAL 10 of constrained types.

* Violating the file sharing rules stated above.

* Attempting to delete a file opened by DDNAME.

* Errors detected whilst reading or writing.

8.3 Text Terminators

Line terminators [14.3] are not implemented using a character, but are implied by theend of physical record.

Page terminators [14.3] are implemented using the EBCDIC character OC(hexadecimal).

File terminators [14.3] are not implemented using a character, but are implied by theend of physical file.

The user should avoid the explicit output of the character ASCII.FF [C]. If the userexplicitly outputs the character ASCII.LF, this is treated as a call of NEWLINE[14.3.4].

8.4 EBCDIC and ASCII

All I/O using TEXT IO is performed using ASCII/EBCDIC translation.* CHARACTER and STRING values are held internally in ASCII but represented in

external files in EBCDIC. For SEQUENTIAL 10 and DIRECT 10 no translationtakes place, and the external file contains a binary image of the internalrepresentation of the Ada element (see section 8.5).

It should be noted that the EBCDIC character set is larger than the (7 bit) ASCII and* that the use of EBCDIC and ASCII control characters may not produce the desired

results when using TEXT_10 (the input and output of control characters is in anycase not defined by the Ada language [14.3]). Furthermore, the user is advised toexercise caution in the use of BAR (1) and SHARP (#), which are part of the lexis ofAda; if their use is prevented by translation between ASCII and EBCDIC, EXCLAM(!) and COLON (:), respectively, should be used instead [2.101.

Alsi's IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 16

%

9

!•

Various translation tables exist to translate between ASCII and I iCD;. Thtpredefined package EBCDIC is proided to allow a, cess to the translation facilitiesused by TEXT 10 and SYSTEM ENVIRONMENT (see User's Guide for V'M/CMS,Appendix E).

The specification of this package is as follows:

package EBCDIC is

type EBCDIC_CHARACTER isnul, O=Ohsoh, -- I = lh

stx-- 2 = 2hetx, 3=3k

E-4,

hi, -- 5 = 5h

E_6,del, -- =Th

E_8,

E_9,a,, E_A,

. vt, - = O Bh

np, -- 12 = OCh

cr, 13 = ODh

so, -- 14 = OEhsi, -- S= OFh

dle, -16 = 10h

dcl, 17 = Ilh

dc2, - 18= 12h

dc3, -19 = 13h

E_14,

nl, -21 = 15h

bs, -- 22 = 16hE_17,

can, 24 = 18h

em, 25 = 19h

E_IA,

E_iB,

E_IC,gs, -- 29 = IDh

rs, -- 30 = IEhus, -- 31 = IFh

E_20,E_21,

fs, -- 34 = 22h

E_23,

E_24,

E_25,

etb, -- 38 = 26h

esc, -- 39 = 27h

E_28,

E_29,

Alsi's IBM 370 Ada Compiler. Appendix F for MVS, Version 3.2 17

E_2A,E_2B,

E_2C,

enq, -45 = 2Dh

ac k, -- 46 = 2Eh

bel, -47 =2Fh

E_30,

E_3 1,

syn, 50= 2

E_33,E_34,

E_35,E_36,

eot, -55 =37hE_38,

E_39,E_3A,

E_3B,

dc4. -60 =3Chnak, -61 =3DhE_3E,sub, -63 = Fh

1 1--64 = 40h

0 E_4 1,E_4 2,E_43,E_44,

E_45,E_46,E_47,

E_48,

E_49,

E_4A,

-75 = 4Bh

-76 =4Ch

('S -77 =4Dh-78 =4Eh

-79 =4Fh

-80 =50H

E_5 1,E_52.E_53,

E_54,

E_5 5,E_56,

E_57,E_58,

E_59,-90 =SAh

S, -91 =5Bh

-92 = 5Ch'y, -93 =5Dh

Alsvs IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 18

-94 =SEh

-95 = 5Fh-96 =60h-97 = 61h

E_62,

E-63,

E_64,E-65,E_66,E_67,

E_68,E-69,

EGA,-- 6=Bh

-18=6Ch

-1O6Eh--III 6Fh

E_70,E_71,E_72,E_73,E_74,

E_75,E_7-,E_77,E_78,--2=79

--2=7Ah

-13=7Bh

'@', -124 =7Ch

-15=7Dh

'-i, -126=7Eh-17=7Fh

'a' , -129 = Sh

--10, 82h

-11=83h

--3 8 4h

-13=85h

T,-14 86hI--135 87h

-- 137 89h

E_8A.

E_SB,E_SC,

E_SD,

E_SE,

E_8F,E 90,

--4=91h

Alsvs IRA! 370 Ada Compiler, Appendix F for MVIS. Version 3.2 1

k- -- 146 92h

-- 147 = 93h

- -148 94h

'n -- 149 = 95h.0o --150 =96h

p" -- 151 = 97h

-- 152 = 98hr--153 =99h

E 9A,E_9B,

E_90,

E_9D,

E_9E,

E_9F,

E_AO,

-- 161 = OAlh'a,--162 = OA2h

-- 163 = OA3h

V. -- 164 = OA4h

V, -- 165 = OA~h-- 166 = OA6h

-- 167 = OA7h

Y" -- 168 = OA8hT, -- 169 = OAgh

EAA,

E_AB,) E_AC,111. -- 173 = OADh

EAE,

EAF,

E_BO,

E_Bi1,

E_B2,

E_B3,

E_B4,

E_BS,

E_B6,EB7,

E_B8,

E_B9,

E_BA,* EBB,

E_BC,

T, -- 189 = OBDhE_BE,

E_BF,TI -- 192 = OCOb

W,'A -- 193 = OClhB', -- 194 = OC2h

~gq~C,--19Z OC3h

-- 196 = OC4h

'E', -- 197 = OCSh

*Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 20

0rS .F

K 'F -198 = C6h

G' -199 = OC7h'H', -200 = OC8h

EC, -201 =OCgh

G-B,ECC,

ECD,E CE.ECF,

Tl -- 208 = ODOh.J., -- 209 = ODib

'K', -- 210 = OD2hV, -- 211 = OD3hIm" -- 212 = OD4h

'N', -- 213 = OD~h'0', -- 214 = OD6h

lp" -- 215 = OD~h

IQ,, -- 216 =OD~h'R', -- 217 = ODghE_DA,

E_DB,

E_DC,

* E_DD,

EDE,

EDF,

T.' -- 224 = OEOhEEl,IS" -- 226 = OE2h

IT', -- 227 = OE3h.U'. -- 228 = OE4h

.V" -- 229 = OE~h'W" -- 230 = OE6h

IX" -- 231 = OE7h.Y" -- 232 = OE8h.Z., -- 233 = OEgh

EEA,

EEB,

EEC,E ED,

E_EE,

* EEF,'0', -- 240 = OFOh

'1'1 --241 = OFlhI2' --242 = OF2h

'3', -- 243 = OF3h

'4' -- 244 = OF4h'5', -- 245 = OF~h

'6', -- 246 = OF6h'7'V -- 247 = OF7h'8', -- 248 = OF8h'9', -- 249 = OF9h

AAlsys IBM 370 Ada Compiler. Appendix F for MVS, Version 3.2 21

5%

E: FB.F FA,

EFP,

E_FE,

E_FF),

SEL constant EBCDIC_CIIARACTER E 4;

RNL constant EBCDIC_CHARACTER E_6;

GE constant EBCDIC_CHARACTER:= E_8;

SPS constant EBCDICCHARACTER := E_9;

RPT constant EBCDICCHARACTER:= EA;

RES constant EBCDICCHARACTER:= E_4;

ENP constant EBCDICCHARACTER:= E_4;

POC constant EBCDICCHARACTER := E_17;

UBS constant EBCDICCHARACTER:= E_lA;

, CUl cons,.nt EBCDICCHARACTER:= E IB;

,:.,, IFS constant EBCDICCHARACTER:= E_IC;

DS constant EBCDICCHARACTER:= E_20;

SOS constant EBCDICCHARACTER := E_21;

* WUS constant EBCDICCHAR.ACTER:= E_23;

BYP constant EBCDIC_CHARACTER:= E_24;

INP constant EBCDIC CHARACTER:= E 24;

LF constant EBCDICCHARACTER:= E_25;

SA constant EBCDIC CHARACTER:= E_28;

SFE constant EBCDICCHARACTER:= E_29;

SM constant EBCDIC CHARACTER:= E_2A;

SW constant EBCDIC-CHARACTER E_2A;CSP constant EBCDICCHARACTER:= E_2B;

MFA constant EBCDICCHARACTER:= E_2C;

'IR constant EBCDIC CHARACTER:= E_33;

PP constant EBCDIC CHARACTER:= E_34;

TRN constant EBCDIC CHARACTER:= E_35;NBS constant EBCDICCHARACTER:= E_36;

SBS constant EBCDICCHARACTER := E_38;

IT constant EBCDICCHARACTER:= E_39;

RFF constant EBCDICCHARACTER:= E_3A;

CU3 constant EBCDICCHARACTER:= E 3B;

SP constant EBCDICCHARACTER:='

RSP constant EBCDICCHARACTER:= E 41;

CENT constant EBCDICCHARACTER:= E 4A;

SHY constant EBCDIC CHARACTER: E_CA;

HOOK constant EBCDICCHARACTER:= ECC;

FORK constant EBCDICCHARACTER:= ECE;NSP constant EBCDICCHARACTER:= E_El;

CHAIR constant EBCDIC CHARtACTER:= EEC;

, EO constant EBCDIC CHARACTER:= E FF;

E_0 constant EBCDICCHARACTER nul;

E_1 constant EBCDICCHARACTER soh;

E_2 constant EBCDICCHARACTER stx;.'

Alsy's IBM 370 Ada Compiler. Appendix F for AfVS, Version 3.2 22

0%

E_3 constant EBCDICCHIARACTER etx;

E_5 constant EBCDICCHIARACTER ht.

E_7 iconstant EBODICCHiARACTER i=dell

EB constant EBODICCHiARACTER vt;

EC constant EBODICCHARACTER nrED constant EBODICCHARACTER cr;

EHH constant EBODICCHiARACTER so;

EF constant EBCDICCHARACTER si;

E_10 constant EBCDICCHARACTER die;

EH_11 constant EBCDICCHARACTER: dcl;

E_12 constant EBCDICCHARACTER :=dc2;

E_13 constant EBODICCHARACTER: dc3;

E_15 constant EBCDICCHARACTER: n];

E_16 constant EBCDICCHARACTER: bs;

E_18 constant EBCDICCHARACTER: can-,

E_19 constant EBODICCHARACTER: em;

E-iD constant EBCDICCHARACTER:=P

E_lE constant EBCDICCHARACTER: rs;

E-IF constant EBCDICCHARACTER: us;

E_22 constant EBCDICCHARACTER: fs;

4E_26 constant EBCDICCHARACTER: etb;

E_27 constant EBODICCHARACTER: esc;

E_2D constant EBCDICCHARACTER: enq;

E_2E :constant EBCDJC_CHA1 %CTER :=ack;

E_2F constant EBCD1CCHARACTER:=bel;

E_32 constant EBCDICCHARACTER= syn;

E_37 constant EBCD)ICCHARACTER :=eot;

E_3C constant EBCDICCHARACTER: dc4;

H_3D constant EBCDICCHARACTER: nak;

E_3F constant EBCDICCHARACTER: sub;

E_40 constant EBCDICCHARACTER:

E_4B constant EBCDICCHARACTER

E_4C constant EBCDICCHARACTER:

H_4D constant EBODICCHARACTER:=C

E_4E constant EBCDICCHARACTER -'

E_4F constant EBCDICCHARACTER:

E_50 constant EBCDICCHAR-ACTER:

HSA constant EBCDICCHARACTER: T;

E_SB constant EBCDICCHARACTER:=''

HSC constant EBCDICCHARACTERL:

H_SD constant EBCDICCHARACTER:

ESE constant EBCDICCHARACTER:

H_SF constant EBCDICCHARACTER:

E_60 constant EBCDICCHARACTER:

E_61 constant EBCDICCHARACTER 'I'E_6B constant EBODICCHARACTER:=V

E_6C constant EBCDICCHAR.ACTER:

H_6D constant EBCDICCHARACTER:_

E_6£ constant EBCDJCCHARACTER :>'

H_6F constant EBCDICCHARACTER:

E_79 constant EBCDICCHARACTER:..

H_7A constant EBCDICCHARACTER:

A15sIS IBM 370 Ada Compiler. Appendix F for Mi'S, Version 3.2 23

% ,

ESB cntn BDCCAATR=WE_7B constant EBCDICCHARACTER:=

"UE_7C constant EBODICCHARACTER :=

E_7D constant EBODICCHARACTER:=

E_7E constant EBCDICCHARACTER:

E_81 constant EBCDICCHARACTER:=''

E_82 constant EBCDICCHARACTER:= 'a'

E_83 constant EBCDICCHARACTER:=V

E_83 constant EBCDICCHARACTER:=W

E_85 constant EBCDICCHARACTER:=Y

E_85 constant EBCDICCHARACTER:=T

E_867 constant EBCDICCHARACTER := ''

E_88 constant EBCDICCHARACTER := W

E_88 constant EBODICCHARACTER:=T

E_89 I constant EBCDICCHARACTER:=''

E_91 constant EBCDICCHARACTER:k;

E_92 constant EBCDICCHARACTER:=''

E_94 constant EBCDICCHARACTER:='';

E_95 constant EBCDICCHARACTER := Win;

E_96 constant EBCDICCHARACTER:o'

E_96 constant EBCDICCHARACTER:=''

E_98 constant EBCDICCHARACTER:=''

E_98 constant EBCDICCHARACTER:=Y

E_99 constant EBCDICCHARACTER:=''

*EAl constant EBCDIC_CHARACTER:=Y

EA2 constant EBCDIC-CHARACTER: Va;

EA3 constant EBODICCHARACTER := V

EA4 constant EBCDICCHARACTER: 'V;

EAS constant EBCDICCHARACTER := W

EA6 constant EBCDICCHARACTER := V

EAS constant EBCDIC CHARACTER := ''EA8 constant EBCDICCHARACTER:z;

EA9 constant EBCDICCHARACTER 'a'EAD constant EBCDICCHARACTER:

EBD constant EBCDICCHARACTER:';

ECO constant EBCDICCHARACTER: 'W;ECl constant EBCDICCHARACTER: 'A';

EC2 constant EBODICCHARACTER: 'B';

EC3 constant EBCDICCHARACTER: 'C';

EC5 constant EBCDICCHARACTER:='D';

ECS constant EBODICCHARACTER:=V

EC6 constant EBCDICCHAR.ACTER := 'G';

*E C7 constant EBCDICCHARACTER: TG;

BC8 constant EBCDICCHARACTER 'H'

EC9 :constant EBCDICCHARACTER:='J';

EDO constant EBCDICCHARACTER: 'K';EDl constant EBODICCHARACTER:=VE D4 cntnECIHRATR=''ED2 constant EBCDICCHARACTER: 'K';

BD6 constant EBCDICCHARACTER: '0';

ED7 constant EBCDICCHARACTER := 'P';

Also's IBAf 370 Ada Compiler. Appendix F for MfVS, Version 3.2 24

E LS constant EI3CDIC _CIARACTERE_D9 constant EBCI)IC_ CHARACTER 'R'E_£0 constant EBCDICCHARACTERE_£2 constant EFRCDICCHARACTER ='S',

E £3 constant EBCDICCHARACTER ''E_£4 constant EBCDICCHARACTER: ' U';EES constant EBCDICCHARACTER :='N";E £6 constant EBCDICCHARACTER:=''£_E7 constant EI3CDICCHARACTER := ''EES constant EBCDIC_-CHARACTER:='Y';

EE9 constant EBCDIC_-CHARACTER:';EFO constant EBCDIC_-CHARACTER: '0'%EFl constant EBCDICCHARACTER: '1';E F2 constant EBCDICCHARACTER: 72;EF3 constant EBCDIC CHARACTER '3';EF4 constant EBCDICCHARACTER:='4';EF5 Constant EBCDIC CHARACTER := '';EP6 constant EBCDIC CHARACTER '6'1;EP7 constant EBCDIC CHARACTER:='7';

EF8 constant EBCDICCHARACTER :='8';EP9 constant EBCDICCHARACTER := '9';

type EBCDICSTRING is array (POSITIVE range <>=) of EBCDICCHARACTER;

function ASCIITO_EBCDIC (S: STRING) return EBCDICSTRING;

-- CONSTRAINT_-ERROR is raised if E_-STRING'LENGTH /= ASTRING LENGTH;procedure ASCIITOEBCDIC (ASTRING in STRING;

ESTRING out EBCDICSTRING);

function EBCDICTOASCII (S :EBCDIC_STRING) return STRING;

-CONSTRAINTERROR is raised if ESTRING'LENGTH /= ASTRING 'LENGTH;procedure EBCDICTOASCII (ESTRING in EBCDIC_-STRING;

ASTRING: out STRING);

end EBCDIC;

The subprograms ASCIITOEBCDIC and EBCDIC_-TO_-ASCII convert between* ASCII encoded STRINGs and EBCDICSTRINGs as appropriate.

*The procedures ASCIITOEBCDIC and EBCDICTO__ASCII are much moreefficient than the corresponding functions, as they do not make use of the programheap. Note that if the in and out string parameters are of different lengths (i.e.ASTRING'LENGTH /= ESTRING'LENGTH), the procedures will raise theexception CONSTRAINT-ERROR.

Note that the user may' alter the ASCII to EBCDIC and EBCDIC to ASCII mappingsused by the Alsys IBM 370 Ada compiler, as described in the installation guide.

If SEQUENTIAL_10 is instantiated with the type EBCDIC__STRING, 10 of arbitary

EB3CDIC strings is possible. Note also that in many mays EBCDIC__STRINGs may

A/si's IBM 370 Ada Compiler. Appendix F for MVS, Version 3.2 25

be manipulated exactly as the predefined type STRING; in particular, string literalsand catenations are available.

8.5 Characteristics of disk files

Disk files that are have already been created and are opened take on thecharacteristics that are already associated with that file.

1! The characteristics of disk files that are created using the predefined input-outputpackages are set up as described in the below.

TEXT 10

" RECFM = V, unless the RECORD SIZE FORM parameter component isspecified in which case RECFM = F and the LRECL is as specified.

" A carriage control character is placed in column I if the CARRIAGE controlcomponent is specified.

" Data is translated between ASCII and EBCDIC so that the external file isreadable using other system 370 tools.

SEQUENTIALIO

SRECFM = V, unless the RECORD SIZE FORM parameter component isspecified in which case RECFM = F and the LRECL is as specified.

a No translation is performed between ASCII and EBCDIC; the data in theexternal file is a memory image of the elements written, preceded by a 4-bytelength count in the case of unconstrained types for which a RECORD SIZEcomponent has been specified.

DIRECT 10

. RECFM=F and LRECL=ELEMENTTYPE'SIZE/SYSTEM.STORAGE UNITfor unconstrained types (unlesss overriden by a RECORD_SIZE FORM

* parameter component), LRECL is defined by the mandatory RECORDSIZEFORM parameter component for unconstrained types.

- No translation is performed between ASCII and EBCDIC; the data in theexternal file is a memory image of the elements written, preceded by a 4-byte

length count in the case of unconstrained types.

-- DIRECT_10 files may be read using SEQUENTIALIO (vice-versa if aRECORD SIZE component is specified).

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 26

VO

9 Characteristics of Numeric Types

9.1 Integer Tpes

The ranges of values for integer types declared in package STANDARD are asfollows:

SItORT INTEGER -32768 .. 32767 -- 2**15 - I

INTEGER -2147483648 .. 2147483647 -- 2**31 - I

For the packages DIRECT_10 and TEXT O, the ranges of values for typesCOUNT and POSITIVECOUNT are as follows:

COUNT 0 .. 2147483647 -- 2**31 - I

POSITIVE COUNT 1 .. 2147483647 -- 2**31 - I

For the package TEXT_10, the range of values for the type FIELD is as follows:

* FIELD 0 .. 255 -- 2**8 - I

9.2 Floating Point Type Attributes

SHORTFLOAT

Approximatevalue

DIGITS 6MANTISSA 21EMAX 84EPSILON 2.0 ** -20 9.54E-07

SMALL 2.0 ** -85 2.58E-26LARGE 2.0 ** 84 * (1.0 - 2.0 ** -21) 1.93E+25SAFE EMAX 252

, SA FESMALL 2.0 ** -253 6.91E-77

4 SAFE LARGE 2.0 127 * (1.0 - 2.0* -21) 1.70E+38

FIRST -2.0 ** 252 * (1.0 - 2.0 ** -24) -7.24E+75LAST 2.0 ** 252 * (1.0 - 2.0 ** -24) 7.24E+75

MACHINE RADIX 16MACHINEMANTISSA 6MACHINE EMAX 63

0 MACHINE EMIN -64MACHINE ROUNDS FALSEMACHINEOVERFLOWS TRUE

i I SIZE 32

A/sys IBM 370 Ada Compiler, Appendix F for MVS. Version 3.2 27

.J

FLOAT

Approximatev.alue

DIGITS5MANTISSAEMIA X20EPSILON 20 **-50 8.88E- 16SMALL 2.0 -205 1.94E-62LARGE 2'.0 **204 * (1.0 - 2.0 -51) 2.57E+61SAFEENIAX 252SAFESNMALL 2.0 **-253 6.91 E -77SAFELARGE 2.0 **252 * (1.0 - 2.0 **51) 7.24E+75FIRST -2.0 252 (1.0 - 2.0 **-56) -7.24E+75LAST 2.0 ** 252 * (1.0 - 2.0 **-56) 7.24E+75MACHINERADIX 16MACHINEMANTISSA 14MACHINEEMAX 63MACHINEEMIN -64MACHINEROUNDS FALSEMACHINEOVERFLOWVS TRUESIZE 64

LONGFLOAT

Approximatevalue

DIGITS 18MANTISSA 61EMAX 244EPSILON 2.0 **-60 8.67E- 19

ASMALL 2. 0 --2 45 1.77E-74LARGE 2.0 **244 * (1.0 - 2.0 **-61) 2.83E+73SAFE EMAX 252SAFESMALL 2. 0 **-253 6.91 E-77SAFELARGE 21.0 **252 * (1.0 - 2.0 **-61) 7.24E+75FIRST -2.0 **252 * (1.0 - 2.0 --112) -7.24E+75LAST 2.0 ** 252 *(1.0 - 2.0 *-112) 7.24E+75MACHINERADIX 16MACHINEMANTISSA 28

*MACHINEEMAX 63MACHINE EMIN -64MACHINEROUNDS FALSEMACHINEOVERFLOW\S TRUESIZE 128

9.3 Attributes of Type DURATION

DURATION'DELTA 2.0 **-14

DURATION'SMALL 2.0 **-14

Alsvs IBMf 370 Ada Compiler, Appendix F for MVS. Version 3.2 28

01I

DURATION'LARGE 131072.0DURATION'FIRST -86400.0DURATION'LAST 86400.0

10 Other Implementation-Dependent Characteristics

10.1 Characteristics of the Heap

All objects created by allocators go into the heap. Also, portions of the Ada Run-Time Executive's representation of task objects, including the task stacks, are

*allocated in the heap.

All objects whose visibility is linked to a subprogram or block have their storagereclaimed at exit.

10.2 Characteristics of Tasks

The default task stack size is 16 Kbytes, but by using the Binder option TASK thesize for all task stacks in a program may be set to any size from 4 Kbytes to 16

Mbytes.

Timeslicing is implemented for task scheduling. The default time slice is 1000milliseconds, but by using the Binder option SLICE the time slice may be set to anyperiod of 10 milliseconds or more. It is also possible to use this option to specify notimeslicing, i.e. tasks are scheduled only at explicit synchronisation points.Timeslicing is started only upon activation of the first task in the program, so theSLICE option has no effect for sequential programs.

Normal priority rules are followed for preemption, where PRIORITY values run inthe range I .. 10. All tasks with "undefined" priority (no pragma PRIORITY) areconsidered to have a priority of 0.

The minimum timeable delay is 10 milliseconds.

The maximum number of active tasks is limited only by memory usage. Tasksrelease their storage allocation as soon as they have terminated.

The acceptor of a rendezvous executes the accept body code in its own stack. Arendezvous with an empty accept body (e.g. for synchronisation) does not cause acontext switch.

1i The main program waits for completion of all tasks dependent on library packagesbefore terminating. Such tasks may select a terminate alternative only aftercompletion of the main program.

Abnormal completion of an aborted task takes place immediately, except when theabnormal task is the caller of an entry that is engaged in a rendezvous. Any suchtask becomes abnormally completed as soon as the rendezvous is completed.

Alsys IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 29

0 %

It a global deadlock situation arises because e'ery task (including the main program)is aiting for another task, the program is aborted and the state of all tasks isdisplayed.

10.3 Definition of a Main Program

A main program must be a non-generic, parameterless, library procedure.

10.4 Ordering of Compilation Units

The Alsys IBM 370 Ada Compiler imposes no additional ordering constraints oncompilations beyond those required by the language. However, if a generic unit isinstantiated during a compilation, its body must be compiled prior to the completionof that compilation [10.3].

10.5 Package SYSTEMENVIRONMENT

The implementation-defined package SYSTEMENVIPONMENT enables an Ada

program to communicate with the environment in which it is executed.

* The specification of this package is as follows:

package SYSTEMENVIRONMENT is.1,

subtype EXITSTATUS is INTEGER;

function ARGLINE return STRING;

function ARGLINELENGTH return NATURAL;

procedure ARG LINE (LINE :out STRING;

LAST : out NATURAL);

function ARGSTART return NATURAL;

procedure SETEXITSTATUS (STATUS in EXITSTATUS);

procedure ABORTPROGRAM (STATUS : in EXITSTATUS);

function EXISTS (FILE : in STRING) return BOOLEAN;.

* end SYSTEMENVIRONMENT;

The ARGLINE subprograms give access to the program PARM string as specifiedin the JCL used to run the program. The procedure ARG _LINE is more efficientthan the corresponding function, as it does not make use of the program heap. The

Alsvs IBM 370 Ada Compiler. Appendix F for MVS. Version 3.2 30

out parameter LAST specif'i.,s the character n I INE which holds ihe last character

of the command line. Note, if LINE is not long enough to hold the command linegiven, CONSTRAINT_ ERROR will be raised. The command line returned includesthe name of the program executed, but not any iun-time options specified.

The function ARG START is included for compatibility with the VM/CNISimplementation of SYSTENI ENVIRON %I ENT; for MVS ARG START always

Areturns the value 1.

The exit status of the program (returned in register 15 on exit) can be set by a callof SET EXIT STATUS. Subsequent calls of SET EXIT STATUS will overwritethe exit status, which is by default 0. If SETEXITSTATUS is not called, apositive exit code may be set by the Ada Run-Time Executive if an unhandledexception is propagated out of the main subprogxam, or if a deadlock situation isdetected.

The following exit codes relate to unhandled exceptions:

Exception Code Cause of exception

NUMERICERROR:I divide by zero

-2 numeric overflowS CONSTRAINT ERROR:

3 discriminant error4 lower bound index error5 upper bound index error6 length error7 lower bound range error8 upper bound range error9 null access value

STORAGEERROR:

10 frame overflow(overflow on subprogram entry)

S11 stack overflow

(overflow otherwise)12 heap overflow

PROGRAMERROR:13 access before elaboration14 function left without return

SPURIOUSERROR:15-20 <an erroneous program>

a7: NUMERIC ERROR 21 (other than for the above reasons)CONSTRAINT ERROR 22 (other than for the above reasons)

23 anonymously raised exceptionr. (an exception re-raised using the raise

statement without an exception name)* 24 <unused>25 static exception

(an exception raised using the raisestatement with an exception name)

Alsys IBM 370 Ada Compiler, Appendix F for MI/S, Version 3.2 31

Sv

WV ,%.~?iA

Code 100 is used if a deadlocking situation is detected and the program is aborted asa result.

Codes 1000-1999 are used to indicate other anomalous conditions in the initialisationof the program, messages concerning which are displayed on the terminal.

The EXISTS functions returns a boolean to indicate whether the file specified by thefile name string exists or not.

11 Limitations

11.1 Compiler Limitations

* The maximum identifier length is 255 characters.

* The maximum line length is 255 characters.

* The maximum number of unique identifiers per compilation unit is 1500.

. The maximum number of compilation units in a library is 1023.* * The maximum number of subunits per compilation unit is 100.

* The maximum size of the generated code for a single program unit(subprogram or task body) is 128 Kbytes.There is no limit (apart from machine addressing range) on the size ofthe generated code for a single compilation unit.

There is no limit (apart from machine addressing range) on the size of asingle array or record object.

The maximum size of a single stack frame is 64 Kbytes including thedata for inner package subunits which is "unnested" to the parent frame.

The maximum amount of data in the global data area of a singlecompilation unit is 64 Kbvtes, including compiler-generated data.

Alsys IBM 370 Ada Compiler, Appendix F for MVS. Version 3.2 32

APPENDIX C

TEST PARAMETERS

Certain tests in the ACVC make use of implementation-dependent values,such as the maximum length of an input line and invalid file names. Atest that makes use of such values is identified by the extension .TSTin its file name. Actual values to be substituted are represented bynames that begin with a dollar sign. A value must be substituted foreach of these names before the test is run. The values used for thisvalidation are given below.

Name and Meaning Value

$BIGIDI X23456789012345678901234567890123

Identifier the size of the 4567890123456789012345* maximum input line length with A .... Al

varying last character. 199 characters

$BIGID2 X23456789012345678901234567890123Identifier the size of the 4567890123456789012345maximum input line length with A .... A2varying last character. I ---- 1 199 characters

$BIGID3 X23456789012345678901234567890123Identifier the size of the 4567890123456789012345maximum input line length with A .... A3A .... Avarying middle character. 1-99-I 1-100-I characters

$BIGID4 X23456789012345678901234567890123Identifier the size of the 4567890123456789012345maximum input line length with A .... A4A .... Avarying middle character. 1-99-I 1-100-I characters

• $BIGINT LIT 0 .... 0298An integer literal of value I ---- 1298 with enough leading zeroes 252 charactersso that it is the size of themaximum length.

* $BIGREAL LIT 0 .... 0690.0A universal real literal of I ---- Ivalue 690.0 with enough 250 charactersleading zeroes to be thesize of the maximum linelength.

A

~Appendix C Page 1 of 4

0i

TEST PARAMETERS

Name and Meaning Value

$BIGSTRING1 "X23456789012345678901234567890123A string literal which when 4567890123456789012345catenated with BIG STRING2 A .... A"yields the image of BIGIDl. I ---- 1 72 characters

$BIGSTRING2 "A .... AI"A string literal which when I ....catenated to the end of 127 charactersBIG STRING1 yields the imageof BIGIDI.

$BLANKS 235 blanksA sequence of blanks twentycharacters less than the sizeof the maximum line length.

$COUNTLAST 2147483647A universal integer literal

* whose value isTEXT__IO.COUNT'LAST.

$FIELDLAST 255A universal integer literalwhose value isTEXTIO.FIELD'LAST.

$FILENAMEWITHBADCHARS T??????? LISTING AlAn external file name thateither contains invalidcharacter or is too long.

$FILENAME WITH WILDCARDCHAR TOOLONGNAME TOOLONGTYPE TOOLONGMODEAn external file name thateither contains a wild cardcharacter or is too long.

* $GREATER THAN DURATION 100000.0A universal real literal thatlies betweenDURATION'BASE'LAST andDURATION'LAST or any value in

*D the range of DURATION.0$GREATER THAN DURATION BASE LAST 10000000.0

A universal real literal thatis greater than DURATION'BASE'LAST.

$ILLEGAL EXTERNAL FILE NAME1 T??????? LISTING Al* An external file name which

contains invalid characters.Appendix C Page 2 of 4

4

TEST PARAMETERS

Name and Meaning Value

$ILLEGALEXTERNALFILENAME2 TOOLONGNAME TOOLONGTYPE TOOLONGMODEAn external file name which istoo long.

$INTEGER FIRST -2147483648A universal integer literalwhose value is INTEGER'FIRST.

$INTEGER LAST 2147483647A universal integer literalwhose value is INTEGER'LAST.

$INTEGER LAST PLUS 1 2147483648A universal integer literalwhose value is INTEGER'LAST +1.

$LESSTHANDURATION -100000.0A universal real literal thatlies between DURATION'BASE'FIRST and DURATION'FIRST orany value in the range ofDURATION.

$LESSTHAN DURATION BASE FIRST -10000000.0A universal real literal thatis less than DURATION'BASE'FIRST

$MAX-DIGITS 18Maximum digits supported forfloating-point types.

$MAXIN LEN 255--Maximum input line lengthpermitted by theimplementation.

$MAX INT 2147483647A universal integer literalwhose value is SYSTEM.MAXINT.

$MAXINTPLUS 1 2147483648A universal integer literalwhose value isSYSTEM.MAXINT+l.

4

Appendix C Page 3 of 4

41 1 1

TEST PARAMETERS

Name and Meaning Value

$MA.X_LENINTBASEDLITERAL 2:0... 011:A universal integer basedliteral whose value is 2#11# 250 characterswith enough leading zeroes inthe mantissa to be MAXINLEN

*5 long.

$MAXLEN REAL BASED LITERAL 16:0 .... OF.E:A universal real based literal I ---- Iwhose value is 16:F.E: with 248 charactersenough leading zeroes in themantissa to be MAXINLENlong.

$M.AX STRING LITERAL "X23456789012345678901234567890123A string literal of size 4567890123456789012345MAX IN LEN, including the A .... A3"quote characters. I ---- 1 197 characters

$MININT -2147483648A universal integer literalwhose value is SYSTEM.MININT.

$NAME NOSUCHTYPEA name of a predefined numerictype other than FLOAT,INTEGER, SHORT FLOAT,SHORT INTEGER, LONG_FLOAT, orLONG_INTEGER.

$NEGBASED INT 8#20000000000#A based integer literal whosehighest order nonzero bitfalls in the sign bit positionof the representation forSYSTEM.MAX INT.

Ap4

Appendix C Page 4 of 4

i.

"

APPENDIX D

WITHDRAWN TESTS

Some tests are withdrawn from the ACVC because they do not conform tothe Ada Standard. The following 25 tests had been withdrawn at the

* time of validation testing for the reasons indicated. A reference ofthe form "AI-ddddd" is to an Ada Commentary.

B28003A: A basic declaration (line 36) wrongly follows a laterdeclaration.

E28005C: This test requires that 'PRAGMA LIST (ON);' not appear in alisting that has been suspended by a previous "pragma LIST

, ~ (OFF);"; the Ada Standard is not clear on this point, andthe matter will be reviewed by the ALMP.

C34004A: The expression in line 168 wrongly yields a value outside of-the range of the target type T, raising CONSTRAINTERROR.

C35502P: The equality operators in lines 62 & 69 should be inequalityal operators.

* A35902C: Line 17's assignment of the nominal upper bound of a fixed-point type to an object of that type raises CONSTRAINTERRORfor that value lies outside of the actual range of the type.

C35904A: The elaboration of the fixed-point subtype on line 28wrongly raises CONSTRAINTERROR, because its upper bound

* exceeds that of the type.

C35A03E, These tests assume that attribute 'MANTISSA returns 0 whenapplied to a fixed-point type with a null range, but the AdaStandard doesn't support this assumption.

C35A03R These tests assume that attribute 'MANTISSA returns 0 whenapplied to a fixed-point type with a null range, but the AdaStandard doesn't support this assumption.

Appendix D Page 1 of 3

6- s Yl

WITHDRAWN TESTS

C37213H The subtype declaration of SCONS in line 100 is wronglyexpected to raise an exception when elaborated.

C37213J The aggregate in line 451 wrongly raises CONSTRAINTERROR.

C37215C Various discriminant constraints are wrongly expected to beincompatible with type CONS.

C37215E Various discriminant constraints are wrongly expected to beincompatible with type CONS.

C37215G Various discriminant constraints are wrongly expected to beincompatible with type CONS.

C37215H Various discriminant constraints are wrongly expected to beincompatible with type CONS.

C38102C The fixed-point conversion on line 25 wrongly raises* oCONSTRAINTERROR.

C41402A 'STORAGE-SIZE' is wrongly applied to an object of an accesstype.

C45614C REPORT.IDENT INT has an argument of the wrong type(LONGINTEGER).

A74016C A bound specified in a fixed-point subtype declaration liesoutside that calculated for the base type, raisingCONSTRAING ERROR. Errors of this sort occur re lines 37 &59, 142 143, 16 & 48 and 252 & 253 of the four tests,respectively (and possibly elsewhere).

C85018B A bound specified in a fixed-point subtype declaration liesoutside that calculated for the base type, raisingCONSTRAING ERROR. Errors of this sort occur re lines 37 &

N. 59, 142 & 143, 16 & 48 and 252 & 253 of the four tests,* respectively (and possibly elsewhere).

C87B04B A bound specified in a fixed-point subtype declaration liesoutside that calculated for the base type, raisingCONSTRAING ERROR. Errors of this sort occur re lines 37 &59, 142 & 143, 16 & 48 and 252 & 253 of the four tests,

* respectively (and possibly elsewhere).

CC1311B A bound specified in a fixed-point subtype declaration liesoutside that calculated for the base type, raisingCONSTRAINT ERROR. Errors of this sort occur re lines 37 &

N' 59, 142 & 143, 16 & 48 and 252 & 253 of the four tests,*O respectively (and possibly elsewhere).

4.. Appendix D Page 2 of 3I•

WITHDRAWN TESTS

BC3105A Lines 159. .168 are wrongly expected to be incorrect; theyare correct.

ADlA01A The declaration of subtype INT3 raises CONSTRAINT ERROR forimplementations that select INT'SIZE to be 16 or greater.

CE2401H The record aggregates in lines 105 & 117 contain the wrongvalues.

CE3208A This test expects that an attempt to open the default outputfile (after it was closed) with mode INFILE raisesNAMEERROR or USE ERROR; by Commentary AI-00048, MODEERRORshould be raised.

A i5,a

A

,,