20 23 i ~~~ a2 0 2 ad nl; lr 1 - dtic · 2011. 5. 15. · se 20 23 i___ ___ ____ ___)n page .a 0...

54
SE I___ ___ ____ ___ 20 23 )N PAGE .a 0 TMr;knos 1 ~~~ ~ ? AD A2 0 2 1- 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR . $- TYPE Or REPORT & PENIOD COVERED Ada Compiler Validation Summary Report:R.R. Soft-9Sp.18to9'et.90 .are, Inc.,' Integrada, Version 3.2, Zenith ZMV-3727-ET unde 6 p. 1989MON6 tOR 9 sp.199 interactive Unix (Host & Target), 890919W .10165S. P R O U hb G L R * M E 1 AUNORs) . C0hIRACT OR 6MAhl %L0MER(S) Wrigl'Tt'-Patterson AFB Dayton, OH, _USA 9. PEftFOREKhka ONi~hZAUION AND ADDRESS 10. PROCDRAM ELIMENI. PMz2ICI. 7AS& Wright-Patterson AFBAE WR hE UBR Dayton, OH, USA 11. CONRO0.L1NG OfIC NAwE AN: APDRESS 2REO'DT Ada Joint Program Office United States De artment of Defense 1.NTZKU AL Washington, DC 2E301-3081 14. KN% ORkw AGEh.Y NAMi & ADDRSS(I different from Controlling Ofice) 15. SLCviRTv CLASS (o#th,S,,po,1) Wright-Patterson AFBTELSIFE Dayton, OH, USA is&. Kmk~o rC~jh,~%QDh 16. DISIRIIB0 1iO STATEMENTI (ofthislepo)IN/ Approved for public release; distribution unlimited. 17. DSTRIB211ON SIALWA.'' (OftP f~brfr t t ona. If frent from Repo' ) UN OLASS:FIED LiT C 13. KEY:RZS (COnh'Iiueooverjeit' if~ neea) end idenfy2 byblock number) Ada Programming language, Ada Compiler Validation Summjary Rep~rt, Ada Conpiler Validation Capability, ACVC, Validation Testing, Ada Validation Office, AVO, Ada Validation Facility, AVF, A%.SI/?YL-S"D- l8lSA, Ada Joint Program Office, AJPO 20. aISIQA,11 (Corntiue 01rve~l sid 1fneccu rydd rM, bf~~ ) bl bock numrber) R. R.. Software, Inc., Integrada, Version 3.2, W right-Patterson AFB, Zenith ZMV-3727-ET under Interactive Unix, Version 2.1 (Host & Target), AGVG 1.10. DO It" 1473 tol"oh Of I NO" 115 IS OISOLflL I JAN 73 I'lS0-U~~S1UNCLASSIFED SICURMl', CLASS11ICAIION or 1141S PA L (4hmn DaefnrI?)

Upload: others

Post on 20-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

SE I___ ___ ____ ___

20 23 )N PAGE .a 0 TMr;knos

1 ~~~ ~ ? AD A2 0 2 1- 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR

. $- TYPE Or REPORT & PENIOD COVERED

Ada Compiler Validation Summary Report:R.R. Soft-9Sp.18to9'et.90.are, Inc.,' Integrada, Version 3.2, Zenith ZMV-3727-ET unde 6 p. 1989MON6 tOR 9 sp.199

interactive Unix (Host & Target), 890919W .10165S. P R O U hb G L R * M E

1 AUNORs) . C0hIRACT OR 6MAhl %L0MER(S)

Wrigl'Tt'-Patterson AFBDayton, OH, _USA

9. PEftFOREKhka ONi~hZAUION AND ADDRESS 10. PROCDRAM ELIMENI. PMz2ICI. 7AS&

Wright-Patterson AFBAE WR hE UBR

Dayton, OH, USA

11. CONRO0.L1NG OfIC NAwE AN: APDRESS 2REO'DTAda Joint Program OfficeUnited States De artment of Defense 1.NTZKU ALWashington, DC 2E301-3081

14. KN% ORkw AGEh.Y NAMi & ADDRSS(I different from Controlling Ofice) 15. SLCviRTv CLASS (o#th,S,,po,1)

Wright-Patterson AFBTELSIFEDayton, OH, USA is&. Kmk~o rC~jh,~%QDh

16. DISIRIIB0 1iO STATEMENTI (ofthislepo)IN/

Approved for public release; distribution unlimited.

17. DSTRIB211ON SIALWA.'' (OftP f~brfr t t ona. If frent from Repo' )

UN OLASS:FIED LiT C

13. KEY:RZS (COnh'Iiueooverjeit' if~ neea) end idenfy2 byblock number)

Ada Programming language, Ada Compiler Validation Summjary Rep~rt, AdaConpiler Validation Capability, ACVC, Validation Testing, AdaValidation Office, AVO, Ada Validation Facility, AVF, A%.SI/?YL-S"D-l8lSA, Ada Joint Program Office, AJPO

20. aISIQA,11 (Corntiue 01rve~l sid 1fneccu rydd rM, bf~~ ) bl bock numrber)

R. R.. Software, Inc., Integrada, Version 3.2, W right-Patterson AFB, Zenith ZMV-3727-ET

under Interactive Unix, Version 2.1 (Host & Target), AGVG 1.10.

DO It" 1473 tol"oh Of I NO" 115 IS OISOLflLI JAN 73 I'lS0-U~~S1UNCLASSIFED

SICURMl', CLASS11ICAIION or 1141S PA L (4hmn DaefnrI?)

Page 2: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

AVF Control Number: AVF-VSR-329.029089-07-18-RRS

Ada COMPILERVALIDATION SUMMARY REPORT:

Certificate Number: 890919W1.10165R.R. Software, Inc.

Integrada, Version 3.2 DIZenith ZMV-3727-ET under Interactive Unix 2.1 (TC

Completion of On-Site Testing:19 September 1989

Prepared By:Ada Validation Facility

ASD/ SCOLWright-Patterson AFE OH 45433-6503

Acces,07 For

Prepared For: N71S CRA&IAda Joint Program Office 0 TI rAt3

United States Department of Defense U ,;...tWashington DC 20301-3081 - --

Avi4.;djbii~ Codes

:or

Dist'd

Page 3: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Ada Compiler Validation Summary Report:

Compiler Name: Integrada, Version 3.2

Certificate Number: 890919W1.10165

Host: Zenith ZMV-3727-ET underInteractive Unix, Version 2.1

Target: Zenith ZMV-3727-ET underInteractive Unix, Version 2.1

Testing Completed 19 September 1989 Using ACVC 1.10

Customer Agreement Number: 89-07-18-RRS

This report has been reviewed and is approved.

Ada Validation FacilitySteven P. WilsonTechnical DirectorASD/SCOLWright-Patterson AFB OH 45433-6503

J Ada Validation OrganizationDirector, Computer & Software Engineering DivisionInstitute for Defense AnalysesAlexandria VA 22311

Ada Joint Program OfficeDr. John SolomondDirectorDepartment of DefenseWashington DC 20301

Page 4: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TABLE OF CONTENTS

CHAPTER 1 INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT . . .. 1-21.2 USE OF THIS VALIDATION SUMMARY REPORT .. ..... 1-21.3 REFERENCES....................1-31.4 DEFINITION OFTERMS................1-31.5 ACVC TEST CLASSES. .. .............. 1-4

CHAPTER 2 CONFIGURATION INFORMATION

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

Cll'TER 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-63.7 ADDITIONAL TESTING INFORMATION .. .. ....... 3-73.7.1 Prevalidation. .. ................ 3-73.7.2 Test Method. .. .............. .. 3-73.7.3 Test Site .. ....... ........... 3-9

APPENDIX A DECLARATION OF CONFORMANCE

APPENDIX B APPENDIX F OF THE Ada STANDARD

APPENDIX C TEST PARAMETERS

APPENDIX D WITHDRAWN TESTS

APPENDIX E COMPILER OPTIONS AS SUPEFJ. BY R.R. SOFTWARE, INC.

Page 5: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CHAPTER I

INTRODUCTION

This Validation Summary Report (VSR describes the extent to which aspecific Ada compiler conforms to the Ada Standard, ANSI/MIL-STD-1815A.This report explains all technical terms used within it and thoroughlyreports the results of eting this compiler using the Ada CompilerValidation Capability. 4A VC)._-LAn Ada compiler must be implementedaccording to the Ada Standard, and any implementation-dependent featuresmust conform to the requirements of the Ada Standard. The Ada Standardmust be implemented in its entirety, and nothing can be implemented that isnot in the Standard.

Even though all validated Ada compilers conform to the Ada Standard, itmust be understood that some differences do exist between implementations.The Ada Standard permits some implementation dependencies--for example, themaximum length of identifiers or the maximum values of integer types.Other differences between compilers result from the characteristics ofparticular operating systems, hardware, or implementation strategies. Allthe dependencies observed during the process of testing this compiler aregiven in this report.

The information in this report Is derived from the test results producedduring validation testing. The validation process includes submitting asuite of standardized tests, the ACVC, as inputs to an Ada compiler andevaluating the results. -The purpose of validating is to ensure conformityof the compiler to the Ada Standard by testing that the compiler properlyimplements legal language constructs and that it identifies and rejectsillegal language constructs. The testing also identifies behavior that isimplementation-dependent but is permitted by the Ada Standard. Six classesof tests are used. These tests are designed to perform checks at compiletime, at link time, and during execution.

1-1

Page 6: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

INTRODUCTION

1.1 PURPOSE OF THIS VALIDATION SUMMARY REPORT

This VSR documents the results of the validation testing performed on anAda compiler. Testing was carried out for the following purposes:

" To attempt to identify any language constructs supported by thecompiler that do not conform to the Ada Standard

" To attempt to identify any language constructs not supported bythe compiler but required by the Ada Standard

" To determine that the implementation-dependent behavior is allowedby the Ada Standard

Testing of this compiler was conducted by SofTech, Inc. under thedirection of the AVF according to procedures established by the Ada JointProgram Office and administered by the Ada Validation Organization (AVO).On-site testing was completed 19 September 1989 at Madison WI.

1.2 USE OF THIS VALIDATION SUMMARY REPORT

Consistent with the national laws of the originating country, the AVO maymake full and free public disclosure of this report. In the United States,this is provided in accordance with the "Freedom of Information Act" (5U.S.C.#552). The results of this validation apply only to the computers,operating systems, and compiler versions identified in this report.

The organizations represented on the signature page of this report do notrepresent or warrant that all statements set forth in this report areaccurate and complete, or that the subject compiler has no nonconformitiesto the Ada Standard other than those presented. Copies of this report areavailable to the public from:

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

or from:

Ada Validation FacilityASD/SCOLWright-Patterson AFB OH 45433-6503

1-2

Page 7: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

INTRODUCTION

Questions regarding this report or the validation test results should bedirected to the AVF listed above or to:

Ada Validation OrganizationInstitute for Defense Analyses1801 North Beauregard StreetAlexandria VA 22311

1.3 REFERENCES

1. Reference Manual for the Ada Programming Langage,ANSI/MIL-STD-1815A,Fe-uaiy 1983 and ISO 8652-1987.

2. Ada Compiler Validation Procedures, Version 2.0, Ada Joint ProgramM'ice, May 197.

3. Ada Compiler Validation Capability Implementers' Guide, SofTech,in., Decebmer 1986.

4. Ada Compiler Validation Capability User's Guide, December 1986.

1.4 DEFINITION OF TERMS

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

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

comments are given a unique identification number having theform AI-ddddd.

Ada Standard ANSI/MIL-STD-1815A, February 1983 and ISO 8652-1987.

Applicant The agency requesting validation.

AVF The Ada Validation Facility. The AVF is responsible forconducting compiler validations according to procedurescontained in the Ada Compiler Validation Procedures.

AVO The Ada Validation Organization. The AVO has oversightauthority over all AVF practices for the purpose ofmaintaining a uniform process for validation of Adacompilers. The AVO provides administrative and technicalsupport for Ada validations to ensure consistent practices.

Compiler A processor for the Ada language. In the context of thisreport, a compiler is any language processor, includingcross-compilers, translators, and interpreters.

1-3

Page 8: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

INTRODUCTION

Failed test An ACVC test for which the compiler generates a result thatdemonstrates nonconformity to the Ada Standard.

Host The computer on which the compiler resides.

Inapplicable An ACVC test that uses features of the language that atest compiler is not required to support or may legitimately

support in a way other than the one expected by the test.

Passed test An ACVC test for which a compiler generates the expectedresult.

Target The computer for which a compiler generates code.

Test A program that checks a compiler's conformity regarding aparticular feature or a combination of features to the AdaStandard. In the context of this report, the term is used todesignate - single test, which may comprise one or morefiles.

Withdrawn An ACVC test found to be incorrect and not used to checktest conformity to the Ada Standard. A test may be incorrect

because it has an invalid test objective, fails to meet itstest objective, or contains illegal or erroneous use of thelanguage.

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 name identifiesthe class to which it belongs. Class A, C, D, and E tests are executable,and special program units are used to report their results duringexecution. Class B tests are expected to produce compilation errors.Class L tests are expected to produce compilation or link errors because ofthe way in which a program library is used at link time.

Class A tests ensure the successful compilation of legal Ada programs withcertain language constructs which cannot be verified at compile time.There are no explicit program components in a Class A test to checksemantics. For example, a Class A test checks that reserved words ofanother language (other than those already reserved in the Ada language)are not treated as reserved words by an Ada compiler. A Class A test ispassed if no errors are detected at compile time and the program executesto produce a PASSED message.

Class B tests check that a compiler detects illegal language usage. ClassB tests are not executable. Each test in this class is compiled and theresulting compilation listing is examined to verify that every syntax orsemantic error in the test is detected. A Class B test is passed if everyillegal construct that it contains is detected by the compiler.

1-4

Page 9: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

INTRODUCTION

Class C tests check the run time system to ensure that legal Ada programscan be correctly compiled and executed. Each Class C test is self-checkingand produces a PASSED, FAILED, or NOT APPLICABLE message indicating theresult when it is executed.

Class D tests check the compilation and execution capacities of a compiler.Since there are no capacity requirements placed on a compiler by the AdaStandard for some parameters--for example, the number of identifierspermitted in a compilation or the number of units in a library--a compilermay 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 thecompiler is exceeded, the test is classified as inapplicable. If a Class Dtest compiles successfully, it is self-checking and produces a PASSED orFAILED message during execution.

Class E tests are expected to execute successfully and checkimplementation-dependent options and resolutions of ambiguities in the AdaStandard. Each Class E test is self-checking and produces a NOTAPPLICABLE, 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 during compilation.Therefore, a Class E test is passed by a compiler if it is compiledsuccessfully and executes to produce a PASSED message, or if it is rejectedby 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 is attempted.A Class L test passes if it is rejected at link time--that is, an attemptto execuce the main program must generate an error message before anydeclarations in the main program or any units referenced by the mainprogram are elaborated. In some cases, an implementation may legitimatelydetect errors during compilation of the test.

Two library units, the package REPORT and the procedure CHECK FILE, supportthe self-checking features of the executable tests. The package REPORTprovides the mechanism by which executable tests report PASSED, FAILED, orNOT APPLICABLE results. It also provides a set of identity functions usedto defeat some compiler optimizations allowed by the Ada Standard thatwould circumvent a test objective. The procedure CHECK FILE is used tocheck the contents of text files written by some of the Class C tests forchapter 14 of the Ada Standard. The operation of REPORT and CHECK FILE ischecked by a set of executable tests. These tests produce messages thatare examined to verify that the units are operating correctly. If theseunits are not operating correctly, then the validation is not attempted.

The text of each test in the ACVC follows conventions that are intended toensure that the tests are reasonably portable without modification. Forexample, the tests make use of only the basic set of 55 characters, containlines with a maximum length of 72 characters, use small numeric values, andplace features that may not be supported by all implementations in separatetests. However, some tests contain values that require the test to be

1-5

Page 10: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

INTRODUCTION

customized according to implementation-specific values--for example, anillegal file name. A list of the values used for this validation isprovided in Appendix C.

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 shoving that the test is inapplicable tothe implementation. The applicability of a test to an implementation isconsidered each time the implementation is validated. A test that isinapplicable for one validation is not necessarily inapplicable for asubsequent validation. Any test that was determined to contain an illegallanguage construct or an erroneous language construct is withdrawn from theACVC and, therefore, is not used in testing a compiler. The testswithdrawn at the time of this validation are given in Appendix D.

1-6

Page 11: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CHAPTER 2

CONFIGURATION INFORMATION

2.1 CONFIGURATION TESTED

The candidate compilation system for this validation was tested under thefollowing configuration:

Compiler: Integrada, Version 3.2

ACVC Version: 1.10

Certificate Number: 890919W1.10165

Host Computer:

Machine: Zenith ZMV-3727-ET

Operating System: Interactive UnixVersion 2.1

Memory Size: 1,655,360 Bytes

Target Computer:

Machine: Zenith ZMV-3727-ET

Operating System: Interactive UnixVersion 2.1

Memory Size: 1,655,360 Bytes

2-1

Page 12: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CONFIGURATION INFORMATION

2.2 IMPLEMENTATION CHARACTERISTICS

One of the purposes of validating compilers is to determine thebehavior of a compiler in those areas of the Ada Standard thatpermit implementations to differ. Class D and E tests specificallycheck for such implementation differences. However, tests in otherclasses also characterize an implementation. The tests demonstratethe following characteristics:

a. Capacities.

(1) The compiler correctly processes a compilation containing723 variables in the same declarative part. (See testD29002K.)

(2) The compiler correctly processes tests containing loopstatements nested to 17 levels. (See tests D55A03A..H (8tests).)

(3) The compiler rejects tests containing block statementsnested to 65 levels. (See test D56001B.)

(4) The compiler correctly processes tests containing recursiveprocedures separately compiled as subunits nested to sixlevels. (See tests D64005E..G (3 tests).)

b. Predefined types.

(1) This implementation supports the additional predefinedtypes LONG INTEGER and LONG FLOAT in package STANDARD.(See tests 186001T..Z (7 testal.)

c. Expression evaluation.

The order in which expressions are evaluated and the time atwhich constraints are checked are not defined by the language.While the ACVC tests do not specifically attempt to determinethe order of evaluation of expressions, test results indicatethe following:

(1) None of the default initialization expressions for recordcomponents are evaluated before any value is checked formembership in a component's subtype. (See test C32117A.)

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

2-2

Page 13: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CONFIGURATION INFORMATION

(3) This implementation uses no extra bits for extra precisionand uses no extra bits for extra range. (See testC35903A.)

(4) Sometimes NUMERIC ERROR is raised when an integer literaloperand in a comparison or membership test is outside therange of the base type. (See test C45232A.)

(5) NUMERIC ERROR is raised when a literal operand in afixed-point comparison or membership test is outside therange of the base type. (See test C45252A.)

(6) Underflov is gradual. (See tests C45524A..Z (26 tests).)

d. Rounding.

The method by which values are rounded in type conversions isnot defined by the language. While the ACVC tests do notspecifically attempt to determine the method of rounding, thetest results indicate the following:

(1) The method used for rounding to integer is round away fromzero. (See tests C46012A..Z (26 tests).)

(2) The method used for rounding to longest integer is roundaway from zero. (See tests C46012A..Z (26 tests).)

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

e. Array types.

An implementation is allowed to raise NUMERIC ERROR orCONSTRAINT ERROR for an array having a 'LENGTH thit exceedsSTANDARD.IRTEGER'LAST and/or SYSTEM.MAX INT.

For this implementation:

(1) Declaration of an array type or subtype declaration withmore than SYSTEM.MAXINT components raises no exception.(See test C36003A.)

(2) CONSTRAINT ERROR is raised when 'LENGTH is applied to anarray type with INTEGER'LAST + 2 components with eachcomponent being a null array. (See test C36202A.)

(3) NUMERIC ERROR is raised when 'LENGTH is applied to an arraytype with SYSTEM.MAX INT + 2 components with each componentbeing a null array. (See test C36202B.)

2-3

Page 14: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CONFIGURATION INFORMATION

(4) A packed BOOLEAN array having a 'LENGTH exceedingINTEGER'LAST raises STORAGE ERROR when the array objectsare declared. (See test C52103X.)

(5) A packed two-dimensional BOOLEAN array with more thanINTEGER'LAST components raises CONSTRAINT ERROR when thelength of a dimension is calculateU and exceedsINTEGER'LAST. (See test C52104Y.)

(6) 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,lengths must match in array slice assignments. Thisimplementation raises no exception. (See test E52103Y.)

(7) In assigning one-dimensional array types, the expression isevaluated in its entirety before CONSTRAINT ERROR is raisedwhen checking whether the expression's subtype iscompatible with the target's subtype. (See test C52013A.)

(8) In assigning two-dimensional array types, the expression isnot evaluated in its entirety before CONSTRAINT ERROR israised when checking whether the expression's subtype iscompatible with the target's subtype. (See test C52013A.)

f. Discriminated types.

(1) In assigning record types with discriminants, theexpression is evaluated in its entirety beforeCONSTRAINT ERROR is raised when checking whether theexpressionTs subtype is compatible with the target'ssubtype. (See test C52013A.)

g. Aggregates.

(1) In the evaluation of a multi-dimensional aggregate, indexsubtype checks are made as choices are evaluated. (Seetests C43207A and C43207B.)

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

(3) CONSTRAINT ERROR is raised before all choices are evaluatedwhen a bound in a non-null range of a non-null aggregatedoes not belong to an index subtype. (See test E43211B.)

2-4

Page 15: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CONFIGURATION INFORMATION

h. Pragmas.

(1) The pragma INLINE is not supported for functions orprocedures. (See tests LA3004A..B (2 tests), EA3004C..D (2tests), and CA3004E..F (2 tests).)

i. Generics.

(1) Generic specifications and bodies can be compiled inseparate compilations. (See tests CAlOl2A, CA2009C,CA2009F, BC3204C, and BC3205D.)

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

J. Input and output.

(1) Modes IN FILE and OUT FILE are supported for SEQUENTIAL 10.(See tests CE2102D..E-(2 tests), CE2102N, and CE2102P.)-

(2) Modes IN FILE, OUT FILE, and INOUT FILE are supported forDIRECT 10. (See tests CE2102F, CE2102I..J (2 tests),CE2102R, CE2102T, and CE2102V.)

(3) Modes IN FILE and OUT FILE are supported for text files.(See tests CE3102E and C-3102I..K (3 tests).)

(4) RESET and DELETE operations are supported forSEQUENTIALIO. (See tests CE2102G and CE2102X.)

(5) RESET and DELETE operations are supported for DIRECTIO.(See tests CE2102K and CE2102Y.)

(6) RESET and DELETE operations are supported for text files.(See tests CE3102F..G (2 tests), CE3104C, CE3110A, andCE3114A.)

(7) Overwriting to a sequential file does not truncate thefile. (See test CE2208B.)

(8) Temporary sequential files are given names and not deletedwhen closed. (See test CE2108A.)

(9) Temporary direct files are not given names. (See testCE2108C.)

(10) Temporary text files are not given names. (See testCE3112A.)

2-5

Page 16: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CONFIGURATION INFORMATION

(11) More than one internal file can be associated with eachexternal file for sequential files when reading only. (Seetests CE2107A..E (5 tests), CE2102L, CE211OB, and CE2111D.)

(12) More than one internal file can be associated with eachexternal file for direct files when reading only. (Seetests CE2107F..H (3 tests), CE211OD, and CE2111H.)

(13) More than one internal file can be associated with eachexternal file for text files when reading only. (See testsCE3111A..E (5 tests), CE3114B, and CE3115A.)

2-6

Page 17: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

CHAPTER 3

TEST INFORMATION

3.1 TEST RESULTS

Version 1.10 of the ACVC comprises 3717 tests. When this compiler wastested, 44 tests had been withdrawn because of test errors. The AVFdetermined that 379 tests were inapplicable to this implementation. Allinapplicable tests were processed during validation testing except for 192executable tests that use floating-point precision exceeding that supportedby the implementation or that contain a line which exceed the maximum inputline length allowed by this implementation. Modifications to the code,processing, or grading for 34 tests were required to successfullydemonstrate the test objective. (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 TOTALA B C D E L

Passed 128 1131 1959 10 22 44 3294

Inapplicable 1 7 356 7 6 2 379

Withdrawn 1 2 35 0 6 0 44

TOTAL 130 1140 2350 17 34 46 3717

3-1

Page 18: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

3.3 SUMMARY OF TEST RESULTS BY CHAPTER

RESULT CHAPTER TOTAL

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

Passed 198 576 544 240 170 99 160 331 131 36 252 275 282 3294

Inappl 14 73 136 8 2 0 6 1 6 0 0 94 39 379

Wdrn 1 1 0 0 0 0 0 2 0 0 1 35 4 44

TOTAL 213 650 680 248 172 99 166 334 137 36 253 404 325 37171

3.4 WITHDRAWN TESTS

The following 44 tests were withdrawn from ACVC Version 1.10 at the time ofthis validation:

E28005C A39005G B97102E C97116A BC3009B CD2A62DCD2A63A CD2A63B CD2A63C CD2A63D CD2A66A CD2A66BCD2A66C CD2A66D CD2A73A CD2A73B CD2A73C CD2A73DCD2A76A CD2A76B CD2A76C CD2A76D CD2A81G CD2A83GCD2A84M CD2A84N CD2B15C CD2Dl1B CD5007B CD50110ED7004B ED7005C ED7005D ED7006C ED7006D CD7105ACD7203B CD7204B CD7205C CD7205D CE2107I CE3111CCE3301A CE3411B

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

3.5 INAPPLICABLE TESTS

Some tests do not apply to all compilers because they make use of featuresthat a compiler is not required by the Ada Standard to support. Others maydepend on the result of another test that is either inapplicable orwithdrawn. The applicability of a test to an implementation is consideredeach time a validation is attempted. A test that is inapplicable for onevalidation attempt is not necessarily inapplicable for a subsequentattempt. For this validation attempt, 379 tests were inapplicable for thereasons indicated:

a. The following 192 tests are not applicable because they havefloating-point type declarations requiring more digits thanSYSTEM.MAXDIGITS:

C24113L..P (5) C35705L..Y (14) C35706L..Y (14) C35707L..Y (14)C35708L..Y (14) C35802L..Z (15) C45241L..Y (14) C45321L..Y (14)

3-2

Page 19: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

C45421L..Y (14) C45521L..Z (15) C45524L..Z (15) C45621L..Z (15)C45641L..Y (14) C46012L..Z (15)

b. C24113Q..Y (9 tests) are not applicable because they have containa line which exceeds maximum input line length allowed by thisimplementation.

c. C35702A and B86001T are not applicable because this implementationsupports no predefined type SHORTFLOAT.

d. The following 30 tests are not applicable because thisimplementation does not support 'STORAGESIZE representationclauses for access types:

A39005C C87B62B CD1009J CD1009RCD1009S CD1C03C CD2A83A..C (3) CD2A83E..F (2)CD2A84B..I (8) CD2A84K..L (2) CD2B11B..G (6) CD2B15BCD2B16A ED2A86A

e. The following 16 tests are not applicable because thisimplementation does not support a predefined type SHORTINTEGER:

C45231B C45304B C45502B C45503B C45504BC45504E C45611B C45613B C45614B C45631BC45632B B52004E C55B07B B55B09D B86001VCD7101E

f. C45231D, B86001X, and CD7101G are not applicable because thisimplementation does not support any predefined integer type with aname other than INTEGER, LONG-INTEGER, or SHORT-INTEGER.

g. C45531M..P (4 tests) and C45532M..P (4 tests) are not applicablebecause the value of SYSTEM.MAXMANTISSA is less than 48.

h. D55A03E..H (4 tests) use 31 levels of loop nesting which exceedsthe capacity of the compiler.

i. D56001B uses 65 levels of block nesting which exceeds the capacityof the compiler.

J. D64005F and D64005G are not applicable because this implementationdoes not support nesting 10 levels of recursive procedure calls.

k. B86001Y is not applicable because this implementation supports nopredefined fixed-point type other than DURATION.

1. B86001Z is not applicable because this implementation supports nopredefined floating-point type with a name other than FLOAT,LONGFLOAT, or SHORTFLOAT.

m. C96005B is not applicable because there are no values of typeDURATION'BASE that are outside the range of DURATION.

3-3

Page 20: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

n. LA3004A, LA3004B, EA3004C, EA3004D, CA3004E, and CA3004F are notapplicable because this implementation does not support pragmaINLINE.

o. CD1009C, CD2A41A..B (2 tests), CD2A41E, and CD2A42A..J (10 tests)are not applicable because this implementation does not supportsize clauses for floating point types.

p. The following 13 tests are not applicable because thisimplementation does not support record representation clauses:

CD1009N CD1009X..Z (3) CD1CO3H CD1C04E CD4031ACD4041A CD4051A..D (4) ED1D04A

q. The following 21 tests are not applicable because thisimplementation does not support size clauses for arrays:

CD2A61A..D (4) CD2A61F CD2A61H..L (5) CD2A62A..C (3)CD2A64A..D (4) CD2A65A..D (4)

r. The following 16 tests are not applicable because thisimplementation does not support size clauses for records:

CD2A71A..D (4) CD2A72A..D (4) CD2A74A..D (4) CD2A75A..D (4)

s. CE2102D is inapplicable because this implementation supportsCREATE with INFILE mode for SEQUENTIALIO.

t. CE2102E is inapplicable because this implementation supportsCREATE with OUTFILE mode for SEQUENTIALIO.

u. CE2102F is inapplicable because this implementation supportsCREATE with INOUTFILE mode for DIRECT IO.

v. CE2102I is inapplicable because this implementation supportsCREATE with INFILE mode for DIRECT IO.

w. CE2102J is inapplicable because this implementation supportsCREATE with OUTFILE mode for DIRECT IO.

x. CE2102N is inapplicable because this implementation supports OPENwith IN FILE mode for SEQUENTIAL IO.

y. CE21020 is inapplicable because this implementation supports RESETwith INFILE mode for SEQUENTIAL IO.

z. CE2102P is inapplicable because this implementation supports OPENwith OUTFILE mode for SEQUENTIALI0.

aa. CE2102Q is inapplicable because this implementation supports RESETwith OUT FILE mode for SEQUENTIALIO.

3-4

Page 21: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

ab. CE2102R is inapplicable because this implementation supports OPENwith INOUTFILE mode for DIRECT IO.

ac. CE2102S is inapplicable because this implementation supports RESETwith INOUTFILE mode for DIRECT IO.

ad. CE2102T is inapplicable because this implementation supports OPENwith IN FILE mode for DIRECTIO.

ae. CE2102U is inapplicable because this implementation supports RESETwith IN FILE mode for DIRECTIO.

af. CE2102V is inapplicable because this implementation supports OPENwith OUT FILE mode for DIRECTIO.

ag. CE2102V is inapplicable because this implementation supports RESETwith OUT FILE mode for DIRECTIO.

ah. CE2107B..E (4 tests), CE2107L, CE2110B, and CE2111D are notapplicable because multiple internal files cannot be associatedwith the same external file when one or more files is writing forsequential files. The proper exception is raised when multipleaccess is attempted.

ai. CE2107G..H (2 tests), CE2110D, and CE2111H are not applicablebecause multiple internal files cannot be associated with the sameexternal file when one or more files is writing for direct files.The proper exception is raised when multiple access is attempted.

aj. EE2201D and EE2401D are not applicable because USE ERROR is raisedwhen trying to create a file with constrained array types.

ak. CE3102E is inapplicable because this implementation supportsCREATE with IN FILE mode for text files.

al. CE3102F is inapplicable because this implementation supports RESETfor text files.

am. CE3102G is inapplicable because this implementation supportsdeletion of an external file for text files.

an. CE3102I is inapplicable because this implementation supportsCREATE with OUT FILE mode for text files.

ao. CE3102J is inapplicable because this implementation supports OPENwith INFILE mode for text files.

ap. CE3102K is inapplicable because this implementation supports OPENwith OUTFILE mode for text files.

3-5

Page 22: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

aq. CE3111B, CE3111D..E (2 tests), CE3114B, and CE3115A are notapplicable because multiple internal files cannot be associatedwith the same external file when one or more files is writing fortext files. The proper exception is raised when multiple accessis attempted.

3.6 TEST, PROCESSING, AND EVALUATION MODIFICATIONS

It is expected that some tests will require modifications of code,processing, or evaluation in order to compensate for legitimateimplementation behavior. Modifications are made by the AVF in cases wherelegitimate implementation behavior prevents the successful completion of an(otherwise) applicable test. Examples of such modifications include:adding a length clause to alter the default size of a collection; splittinga Class B test into subtests so that all errors are detected; andconfirming that messages produced by an executable test demonstrateconforming behavior that wasn't anticipated by the test (such as raisingone exception instead of another).

Modifications were required for 34 tests.

The following tests were split because syntax errors at one point resultedin the compiler not detecting other errors in the test:

B22003A B24007A B24009A B29001A B37106A B49003AB49005A B51001A B53003A B55AO1A B63001A B63001BB91001H BA1lO1A BA1101C BA11OE BA3006A BA3006BBA3007B BA3008A BA3008B BA3013A BC2OClD BC2001EBC3005B

CC3601A was split because the original test generates more code than thisimplementation can handle in one compilation unit.

The following modifications were made to compensate for legitimateimplementation behavior:

a. At the recommendation of the AVO, a "PRAGMA ELABORATE (REPORT);"was added at the beginning of C39005A to ensure that theelaboration of the routines in package REPORT takes place beforethese routines are called.

b. At the recommendation of the AVO, the expression "2**T'MANTISSA -1" on line 262 in test CC1223A was changed to "(2**(T'MANTISSA -1) - 1 + 2**(T'MANTISSA - 1))" in order to avoid generating theexception raising value 2**31. The grading criteria for this testwere also modified. See the next section for modified evaluationcriteria.

3-6

Page 23: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

c. At the recommendation of the AVO, the variables V and W on line 41of test CD2C11A were initialized to 5.0 due to PROGRAM ERROR beingraised when an attempt is made to use the uninitializeU variables.

d. At the recommendation of the AVO, the lines which check whethertemporary files can be created in tests CE2108B, CE2108D, andCE3112B were commented out because of the way in which temporaryfile names are constructed.

The following tests were graded using modified evaluation criteria:

a. At the recommendation of the AVO, test C34006D is graded PASSEDprovided the only failure messages arise from the requirements onthe value of T'SIZE, where T is a type, since the meaning of 'SIZEapplied to a type is not clear in this test.

b. At the recommendation of the AVO, test CC1223A is graded PASSEDprovided the only failure messages arise from the requirements onthe value of T'AFT, where T is a type.

c. CE3804G writes, then reads, a floating-point literal and tests theinput value against a textually identical literal; thisimplementation stores the numeric literal with greater precisionthan it uses for objects of the type, and because the literal isnot a model number, the test for equality at line 121 fails. TheAVO ruled that this test should be graded as passed if the onlyfailure messages arise from the test at line 121.

3.7 ADDITIONAL TESTING INFORMATION

3.7.1 Prevalidation

Prior to validation, a set of test results for ACVC Version 1.10 producedby the Integrada, Version 3.2, compiler was submitted to the AVF by theapplicant for review. Analysis of these results demonstrated that thecompiler successfully passed all applicable tests, and the compilerexhibited the expected behavior on all inapplicable tests.

3.7.2 Test Method

Testing of the Integrada, Version 3.2, compiler using ACVC Version 1.10 wasconducted on-site by a validation team from the AVF. The configuration inwhich the testing was performed is described by the following designationsof hardware and software components:

Host computer: Zenith ZMV-3727-ETHost operating system: Interactive Unix, Version 2.1Target computer: Zenith ZMV-3727-ET

3-7

Page 24: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

Target operating system: Interactive Unix, Version 2.1Compiler: Integrada, Version 3.2

Diskettes containing all tests except for withdrawn tests and testsrequiring unsupported floating-point precisions was taken on-site by thevalidation team for processing. Tests that make use ofimplementation-specific values were customized before being written to thediskettes. Tests requiring modifications during the prevalidation testingwere included in their modified form on the diskettes.

The contents of the diskettes were loaded directly onto the host computer.

After the test files were loaded to disk, the full set of tests wascompiled, linked, and all executable tests were run on the ZenithZMV-3727-ET. Results were printed from the host computer.

The compiler was tested using command scripts provided by R.R. Software,Inc. and reviewed by the validation team. The compiler was tested usingall the following option settings. See Appendix E for a complete listingof the compiler options for this implementation. The following list ofcompiler options includes those options which were invoked by default:

-Q Quiet error messages - suppresses userprompting on errors.

-W Warnings off.-T Trimming code on - this directs the compiler

to generate code which allows the linker totrim unused subprograms.

-D Debugging code off.-S? Re-direct the compiler scratch files into a

RAM disk where possible (? is replaced by adrive letter).

-E Produce an .EXE file rather than a .COM file.-F Library calls are generated for floating point

operations.-L No listing file is generated.-0 Memory model 0 is used.-R The JRL file is put on the same disk as the

input file.-X Extra symbol table information is not generated.-Z Optimization is done only where so specified by

pragmas.

Tests were compiled, linked, and executed (as appropriate) using a singlecomputer. Test output, compilation listings, and job logs were captured ondiskettes and archived at the AVF. The listings examined on-site by thevalidation team were also archived.

3-8

Page 25: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST INFORMATION

3.7.3 Test Site

Testing was conducted at Madison WI and was completed on 19 September 1989.

3-9

Page 26: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

APPENDIX A

DECLARATION OF CONFORMANCE

R.R. Software, Inc. has submitted the followingDeclaration of Conformance concerning the Integrada,Version 3.2, compiler.

A-i

Page 27: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

DECLARATION OP CONFORMANCE

Compiler Implementor: R.R. Software, Inc.Ada Validation Facility: ASD/SCEL, Wright-Patterson AFB, OH 45433-6503Ada Compiler Validation Capability (ACVC) Version: 1.10

Base Configuration

Base Compiler Name: Integrada Version: 3.2Host Architecture ISA: Zenith ZMV-3727-ET OS&VER 4: Interactive Unix

ver. 2.1Target Architecture ISA: Zenith ZWV-3727-ET OS&VER #: Interactive Unix

ver. 2.1

Implementor's Declaration

I, the undersigned, representing R.R. Software, Inc., have implemented nodeliberate extensions to the Ada Language Standard ANSI/MIL-STO-1815A in thecompiler(s) listed in this declaration. I declare that AETECH, Inc.is the owner of record of the Ada language compiler(s) listed above and, assuch, is responsible for maintaining said compiler(s) in conformance toANSI/MIL-STO-1815A. All certificates and registrations for Ada languagecompiler(s) listed in this declaration shall be made only in the owner'scorporate name.

.R Soft m, Inc.Da : /./9 'L.-James A. Stewart, Vice President

Owner's Declaration

I, the undersigned, representing AETECH, Inc., take full responsibility forimplementation and maintenance of the Ada compiler(s) listed above, and agreeto the public disclosure of the final Validation Summary Report. I declarethat all of the Ada language compilers listed, and their hcst/targetperformance are in compliance with the Ada Language Standard ANSI/MIL-STD-__ _ _ _ _ _ _Date: / t /d.

AETECH, Inc. D

James Thomes, President

A-2

Page 28: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

APPENDIX B

APPENDIX F OF THE Ada STANDARD

The only allowed implementation dependencies correspond toimplementation-dependent pragmas, to certain machine-dependent conventionsas mentioned in Chapter 13 of the Ada Standard, and to certain allowedrestrictions on representation clauses. The implementation-dependentcharacteristics of the Integrada, Version 3.2, compiler, as described inthis Appendix, are provided by R.R. Software, Inc. Unless specificallynoted othervise, references in this Appendix are to compiler documentationand not to this report. Implementation-specific portions of the packageSTANDARD, which are not a part of Appendix F, are:

package STANDARD is

type INTEGER is range -32768 .. 32767;type LONGINTEGER is range -2147483648 .. 2147483647;

type FLOAT is digits 6 range -((2.0 ** 128) - (2.0 ** 104))((2.0 ** 128) - (2.0 ** 104));

type LONG FLOAT is digits 15 range -((2.0 ** 1024) - (2.0 ** 971))((2.0 ** 1024) - (2.0 ** 971));

type DURATION is delta 0.00025 range -((2.0 ** 31) - 1)/4096.0 ..((2.0 ** 31) - 1)/4096.0;

end STANDARD;

B-1

Page 29: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

F Implementation Dependencies

This appendix specifies certain system-dependent characteristics ofIntegrAda, version 3.2 386 Interactive UNIX compiler.

F. 1 Implementation Dependent Pragmas

In addition to the required Ada pragmas, IntegrAda also provides severalothers. Some of these pragmas have a textual range. Such pragmas set somevalue of importance to the compiler, usually a flag that may be On or Off.The value to be used by the compiler at a given point in a program dependson the parameter of the most recent relevant pragma in the text of theprogram. For flags, if the parameter is the identifier On, then the flag ison; if the parameter is the Identifier Off, then the flag is off; if no suchpragma has occurred, then a default value is used.

The range of a pragma - even a pragma that usually has a textual range -may vary if the pragma Is not inside a compilation unit. This matters onlyif you put multiple compilation units in a file. The following rules apply:

1) If a pragma is inside a compilation unit, it affects only thatunit.

2) If a pragma is outside a compilation unit, it affects allfollowing compilation units in the compilation.

Certain required Ada pragmas, such as INLINE, would follow different rules;however, as it turns out, IntegrAda ignores all pragmas that would .followdifferent rules.

The following system-dependent pragmas are defined by IntegrAda. Unlessotherwise stated, they may occur anywhere that a pragma may occur.

ALL_CHECKS Takes one of two identifiers On or Off as its argument, and hasa textual range. If the argument is Off, then this pragmacauses suppression of arithmetic checking (like pragmaARITHCHECK - see below), range checking (like pragmaRANGECHECK - see below), storage error checking, andelaboration checking. If the argument is On, then these checksare all performed as usual. Note that pragma ALLCHECKS doesnot affect the status of the DEBUG pragma; for the fastest runtime code (and the worst run time checking), both ALL_CHECKSand DEBUG should be turned Off and the pragma OPTIMIZE(Time) should be used. Note also that ALLCHECKS does notaffect the status of the ENUMTAB pragma. Combining check

Revision 4.4

B-2

Page 30: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

suppression using the pragma ALL-CHECKS and using the pragmaSUPPRESS may cause unexpected results; It should not be done.However, ALLCHECKS may be combined with the IntegrAdapragmas ARITHCHECK and RANGECHECK; whichever relevantpragma has occurred most recently will determine whether agiven check is performed. ALLCHECKS Is on by default. Turningany checks off may cause unpredictable results if executionwould have caused the corresponding assumption to be violated.Checks should be off only In fully debugged and testedprograms. After checks are turned off, full testing should againbe done, since any program that handles an exception mayexpect results that will not occur If no checking is done.

ARITHCHECK Takes one of the two identifiers On or Off as its argument, andhas a textual range. Where ARITHCHECK is on, the compiler Ispermitted to (and generally does) not generate checks for

- situations where it is permitted to raise NUMERICERROR; thesechecks Include overflow checking and checking for division byzero. Combining check suppression using the pragma ARITHCHECKand using the pragma SUPPRESS may cause unexpected results;it should not be done. However, ARITHCHECK may be combinedwith the IntegrAda pragma ALLCHECKS; whichever pragma hasoccurred most recently will be effective. ARITHCHECK is on bydefault. Turning any checks off may cause unpredictable resultsif execution would have caused the corresponding assumption tobe violated. Checks should be off only in fully debugged andtested programs. After checks are turned off, full testing shouldagain be done, since any program that handles an exceptionmay expect results that will not occur if no checking is done.

CLEANUP Takes an integer literal in the range 0..3 as its argument, andhas a textual range. Using this pragma allows the IntegrAdarun-time system to be less than meticulous about recoveringtemporary memory space it uses. This pragma can allow forsmaller and faster code, but can be dangerous; certainconstructs can cause memory to be used up very quickly. Thesmaller the parameter, the more danger is permitted. A value of3 - the default value - causes the run-time system to be itsusual immaculate self. A value of 0 causes no reclamation oftemporary space. Values of 1 and 2 allow compromising between"cleanliness" and speed. Using values other than 3 adds somerisk of your program running out of memory, especially in loopswhich contain certain constructs.

Copyright 1988, R.R. Software, Inc.

B-3

Page 31: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

DEBUG Takes one of the two Identifiers On or Off as its argument, andhas a textual range. This pragma controls the generation of linenumber code and procedure name code. When DEBUG is on, suchcode is generated. When DEBUG is off, no line number code orprocedure names are generated. This information is used by thewalkback which is generated after a run-time error (e.g., anunhandled exception). The walkback is still generated whenDEBUG is off, but the line numbers will be incorrect, and nosubprogram names will be printed. DEBUG's initial state can beset by the command line; if no explicit option is given, thenDEBUG is initially on. Turning DEBUG off saves space, butcauses the loss of much of IntegrAda's power In describing runtime errors.

Notes:DEBUG should only be turned off when the program has noerrors. The Informatipn provided on an error when DEBUG Is offis not very useful.

If DEBUG is on at the beginning of a subprogram or packagespecification, then it must be on at the end of thespecification. Conversely, if DEBUG is off at the beginning ofsuch a specification, it must be off at the end. If you wantDEBUG to be off for an entire compilation, then you can eitherput a DEBUG pragma.in the context clause of the compilation oryou can use the appropriate compiler option.

ENUMTAB Takes one of the two identifiers On or Off as its argument, andhas a textual range. This pragma controls the generation ofenumeration tables. Enumeration tables are used for theattributes IMAGE, VALUE, and WIDTH, and hence to input andoutput enumeration values. The tables are generated whenENUMTAB is on. The state of the ENUMTAB flag is significantonly at enumeration. type definitions. If this pragma is used toprevent generation of a type's enumeration tables, then usingthe three mentioned attributes causes an erroneous program,with unpredictable results; furthermore, the type should not beused as a generic actual discrete type, and in particularTEXTO.ENUMERATIONIO should not be Instantiated for thetype. If the enumeration type is not needed for any of thesepurposes, the tables, which use a lot of space, are unnecessary.ENUMTAB is on by default.

Revision 4.4

B-4

Page 32: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

PAGELENGTH This pragma takes a single Integer literal as its argument. Itsays that a page break should be added to the listing aftereach occurrence of the given number of lines. The default pagelength is 32000, so that no page breaks are generated for mostprograms. Each page starts with a header that looks like thefollowing:

IntegrAda Version 3.2 compiling file on date at tize

RANGECHECK Takes one of the two identifiers On or Off as its argument, andhas a textual range. Where RANGECHECK is off, the compiler Ispermitted to (and generally does) not generate checks forsituations where it is expected to raise CONSTRAINTERROR;these checks Include null pointer checking. dlscrimlnantchecking, index checking, array length checking, and rangechecking. Combining check suppression using the pragmaRANGECHECK and using the pragma SUPPRESS may causeunexpected results; It should not be done. However,RANGECHECK may be combined with the IntegrAda pragmaALLCHECKS; whichever pragma has occurred most recently willhe effective. RANGECHECK is on by default. Turning any checksoff may cause unpredictable results if execution would havecaused the corresponding assumption to be violated. Checksshould be off only in fully debugged and tested programs. Afterchecks are turned off, full testing should again be done, sinceany program that handles an exception may expect results thatwill not occur If no checking Is done.

SYSLIB This pragma tells the compiler that the current unit Is one ofthe standard IntegrAda system libraries. It takes as a parameteran integer literal in the range 1 .. 15; only the values 1through 4 are currently used. For example, system librarynumber 2 provides floating point support. Do not use thispragma unless you are writing a package to replace one of thestandard IntegrAda system libraries.

VERBOSE Takes On or Off as its argument, and has a textual range.VERBOSE controls the amount of output on an error. If VERBOSEIs on, the two lines preceding the error are printed, with anarrow pointing at the error. If VERBOSE is off, only the linenumber is printed.

Copyright 1988, R.R. Software, Inc.

B-5

Page 33: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

VERBOSE(Off):

Line 16 at Position 5

*ERROR* Identifier is not defined

VERBOSE(On):

15: if X = 10 then16: Z :0 10;

*UROR* Identifier is not defined

The reason for this option Is that an error message withVERBOSE on can take a long time to be generated, especially ina large program. VERBOSE's initial condition can be set by thecompiler command line.

Several required Ada pragmas may have surprising effects in IntegrAda. ThePRIORITY pragma may only take the value 0, since that Is the only value inthe range System.Priority. Specifying any OPTIMIZE pragma turns onoptimization; otherwise, optimization is only done if specified on thecompiler's command line. The SUPPRESS pragma is ignored unless it only hasone parameter. Also, the following pragmas are always ignored: CONTROLLED,INLINE, MEMORY SIZE, PACK, SHARED, STORAGE_UNIT, and SYSTEM_NAME.Pragma CONTROLLED Is always Ignored because IntegrAda does no automaticgarbage collection; thus, the effect of pragma CONTROLLED already appliesto all access types. Pragma SHARED is similarly ignored: IntegrAda'snon-preemptive task scheduling gives the appropriate effect to all variables.The pragmas INLINE, PACK, and SUPPRESS (with two parameters) all providerecommendations to the compiler; as Ada allows, the recommendations areignored. The pragmas MEMORYSIZE, STORAGEUNIT, and SYSTEMNAME allattempt to make changes to constants in the System package; in each case,IntegrAda allows only one value, so that the pragma is ignored.

F.2 Implementation Dependent Attributes

IntegrAda does not provide any attributes other than the required Adaattributes.

Revision 4.4

B-6

Page 34: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

F.3 Specification of the Package SYSTEM

The package System for IntegrAda has the following definition.

package System is

-- System package for IntegrAda

-- Types to define type Address.type OffsetType is new Log_.Integer;type Word is range 0 .. 65536;for Word'Size use 16;type Address is record

Offset Offset-Type;Segment : Word;

end record;Function "+" (Left : Address; Right : OffsetType) Return Address;Function "+" (Left : OffsetType; Right : Address) Return Address;Function "-" (Left : Address; Right : Offsetjype) Return Address;Function "-" (Left, Right : Address) Return Offset-Type;

type Name is (UNIX);

System-Name : constant Name := UNIX;

Storage-Unit : constant 8;Memory-Size : constant : 65536;

-- Note: The actual memory size of a program is determined-- dynamically; this is the maximum number of bytes in the

data-- segment.

-- System Dependent Named Numbers:MinInt : constant -2_147_483_648;MaxInt : constant : 2_147 483 647;Max_- Digits : constant := 15;MaxMantissa : constant :- 31;Fine-Delta : constant := 2#1.0#E-31;-

-- equivalently, 4.656612873077392578125E-10Tick : constant := 0.01; -- Some machines have less accuracy;

-- for example, the IBM PC actually ticks about-- every 0.06 seconds.

Copyright 1988, R.R. Software, Inc.

B-7

Page 35: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

-- Other System Dependent Declarationssubtype Priority is Integer range 0..0;

type Byte is range 0 .. 255;

for Byte'Size use 8;

end System;

The type Byte in the System package corresponds to the 8-bit machine byte.The type Word is a 16-bit Unsigned Integer type, corresponding to amachine word.

F.4 Restrictions on Representation Clauses

If T Is a discrete type, or a fixed point type, then the size expression cangive any value between 1 and 1000 bits (subject, of course, to allowingenough bits for every possible value). For other types, the expression mustgive the default size for T.

A length clause that specifies T'STORAGESIZE for an access type is notsupported; IntegrAda uses a single large common heap.

A length clause that specifies T'STORAGESIZE for a task type T Issupported. Any integer value can be specified. Values smaller than 256 willbe rounded up to 256 (the minimum T'Storage_Size), as the Ada standarddoes not allow raising an exception in this case.

A length clause that specifies T'SMALL for a fixed point type must give avalue (subject to the Ada restrictions) in the range

2.0 ** (-99) .. 2.0 ** 99,inclusive.

An enumeration representation clause for a type T may give any integervalues within the range System.MinInt .. System.Max_Int. If a size lengthclause is not given for the type, the type's size is determined from theliterals given. (If all of the literals fit in a byte, then Byte'Size is used;similarly for Integer and Long_Integer).

The expression in an alignment clause In a record representation clausemust equal 1.

Revision 4.4

B-8

Page 36: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

A component clause must give a storage place that is equivalent to thedefault value of the POSITION attribute for such a component.

A component clause must give a range that starts at zero and extends toone less than the size of the component.

IntegrAda supports address clauses on most objects. Address clauses are notallowed on parameters, generic formal parameters, and renamed objects. Theaddress given for an object address clause may be any legal value of typeSystem.Address. It will be Interpreted as an absolute machine address, usingthe segment part as a selector if in the protected mode. It Is the user'sresponsibility to ensure that the value given makes sense (i.e., points atmemory, does not overlay other objects, etc.) No other address clauses aresupported.

F.5 Implementation Defined Names

IntegrAda uses no implementation generated names.

F.6 Address Clause Expressions

The address given for an object address clause may be any legal value oftype System.Address. It will be interpreted as an absolute machine address,using the segment part as a selector If In the protected mode. It Is theuser's responsibility to ensure that the value given makes sense (i.e., pointsat memory, does not overlay other objects, etc.)

F.7 UncheckedConversion Restrictions

We first make the following definitions:A type or subtype is said to be a simple type or a simple subtype(respectively) if it is a scalar (sub)type, an access (sub)type, a task(sub)type, or if it satisfies the following two conditions:

1) If it Is an array type or subtype, then it Is constrained and its indexconstraint Is static; and

2) If It is a composite type or subtype, then all of its subcomponents have asimple subtype.

Copyright 1988, R.R. Software, Inc.

B-9

Page 37: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

A (subtype which does not meet these conditions is called non-simple.Discriminated records can be simple; variant records can be simple. However,constraints which depend on discriminants are non-simple (because they arenon-static).

IntegrAda imposes the following restriction on Instantiations ofUncheckedConversion: for such an instantiation to be legal, both the sourceactual subtype and the target actual subtype must be simple subtypes, andthey must have the same size.

F.8 Implementation Dependencies of I/O

The syntax of an external file name depends on the operating system beingused. Some external files do not really specify disk files; these are calleddevices. Devices are specified by special file names, and are treatedspecially by some of the I/O routines.

The syntax of an UNIX filename is:

[path] filename

where "path" is an optional path consisting of directory names, eachfollowed by a foreslash; "filename" is the filename (maximum 14 characters).See your UNIX manual for a complete description. In addition, the followingspecial device names are recognized:

/dev/sti UNIX standard input. The same as Standard_Input. Input isbuffered by lines, and all UNIX line editing characters may beused. Can only be read.

/dev/sto UNIX standard output. The same as StandardOutput. Can onlybe written.

/dev/err UNIX standard error. The output to this device cannot beredirected. Can only be written.

/dev/ekbd The current terminal input device. Single character Input withechoing. Due to the design of UNIX, this device can beredirected. Can be read and written.

/dev/kbd The current terminal input device. No character interpretationis performed, and there is no character echo. Again, the inputto this device can be redirected, so It does not always refer tothe physical keyboard.

Revision 4.4

B-10

Page 38: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

The UNIX device files may also be used.

The UNIX I/O system will do a search of the default search path (set by theenvironment PATH variable) if the following conditions are met:

1) No path is present In the file name; and2) The name is not that of a device.

Alternatively, you may think of the search being done If the file name doesnot contain any of the characters ':' or ''.

The default search path cannot be changed while the program Is running, asthe path is copied by the IntegrAda program when it starts running.

Note:Creates will never cause a path search as they must work in the currentdirectory.

Upon normal completion of a program, any open external files are closed.Nevertheless, to provide portability, we recommend explicitly closing anyfiles that are used.

Sharing external files between multiple file objects causes the correspondingexternal file to be opened multiple times by the operating system. Theeffects of this are defined by your operating system. This external filesharing is only allowed if all internal files associated with a single externalfile are opened only for reading (mode In-File), and no internal file isCreated. UseError is raised if these requirements are violated. A Reset to awriting mode of a file already opened for reading also raise Use_Error if theexternal file also is shared by another internal file.

Binary I/O of values of access types will give meaningless results andshould not be done. Binary I/O of types which are not simple types (seedefinition in Section F.7, above) will raise UseError when the file isopened. Such types require specification of the blck ,!Ae in the form, acapability which is not yet supported.

The form parameter for Sequential_1O and DirectjO is always expected tobe the null string.

The type Count in the generic package DirectIO is defined to have therange 0 .. 2 147_483_647.

Copyright 1988, R.R. Software, Inc.

B-i1

Page 39: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

Ada specifies the existence of special markers called terminators in a textfile. IntegrAda defines the line terminator to be <LF> (line feed), with orwithout an additional (CR> (carriage return). The page terminator is the<FF> (form feed) character; If it Is not preceded by a (LF>, a lineterminator is also assumed.

The file terminator is the end-of-file returned by the host operatingsystem. If no line and/or page terminator directly precedes the fileterminator, they are assumed. The only legal form for text files is "" (thenull string). All other forms raise USE-ERROR.

Output of control characters does not affect the layout that Text 10generates. In particular, output of a (LF> before a NewPage does notsuppress the New-Line caused by the NewPage.

The character <LF> Is written to represent the line terminator.

The type Text IO.Count has the range 0 .. 32767; the type TextIO.Fieldalso has the range 0 .. 32767.

IO Exceptons.USE ERROR is raised if something cannot be done because ofthe external file system; such situations arise when one attempts:

- to create or open an external file for writing when the external file Isalready open (via a different internal file).

- to create or open an external file when the external file is already open forwriting (via a different internal file).

- to reset a file to a writing mode when the external file is already open (viaa different internal file).

- to write to a full device (Write, Close);- to create a file In a full directory (Create);- to have more flies open than the OS allows (Open, Create);- to open a device with an Illegal mode;- to create, reset, or delete a device;- to create a file where a protected file (i.e., a directory or read-only file)

already exists;- to delete a protected file;- to use an illegal form (Open, Create); or- to open a file for a non-simple type without specifying the block size;- to open a device for direct I/O.

Revision 4.4

B-i2

Page 40: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

IOExceptions.DEVICEERROR is raised If a hardware error other than thosecovered by USE-ERROR occurs. These situations should never occur, but mayon rare occasions. For example, DEVICEERROR is raised when:

- a file is not found in a Close or a Delete;- a seek error occurs on a direct Read or Write; or- a seek error occurs on a sequential EndOfFile.

The subtypes Standard.Posltive and Standard.Natural, used by some I/Oroutines, have the maximum value 32767.

No package LowLeveljO is provided.

Copyright 1988, R.R. Software, Inc.

B-13

Page 41: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

APPENDIX C

TEST PARAMETERS

Certain tests in the ACVC make use of implementation-dependent values, suchas the maximum length of an input line and invalid file names. A test thatmakes use of such values is identified by the extension .TST in its filename. Actual values to be substituted are represented by names that beginwith a dollar sign. A value must be substituted for each of these namesbefore the test is run. The values used for this validation are givenbelow.

Name and Meaning Value

$ACC SIZE 32An integer literal whose valueis the number of bits sufficientto hold any value of an accesstype.

$BIG ID1 (1..199 -> 'A', 200 -> '1')An identifier the size of themaximum input line length whichis identical to $BIG ID2 exceptfor the last character.

$BIG ID2 (1..199 => 'A', 200 -> '2')An identifier the size of themaximum input line length whichis identical to $BIG ID1 exceptfor the last character.

$BIG ID3 (1..99 => 'A', 100 -> '3',An identifier the size of the 101..200 -> 'A')maximum input line length whichis identical to $BIG ID4 exceptfor a character near-the middle.

C-1

Page 42: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST PARAMETERS

Name and Meaning Value

$BIG ID4 (1..99 -> 'A', 100 => '4',An identifier the size of the 101..200 -> 'A')maximum input line length whichis identical to $BIG ID3 exceptfor a character near-the middle.

$BIG INT LIT (1..197 -> '0', 198..200 -> "298")An integer literal of value 298with enough leading zeroes sothat it is the size of themaximum line length.

$BIG REAL LIT (1..195 -> '0', 196..200 -> "690.0")W universal real literal ofvalue 690.0 with enough leadingzeroes to be the size of themaximum line length.

$BIG STRING1 (1 => '"', 2..101 -> 'A', 102 -> '"')1 string literal which whencatenatd with $BIG STRING2yields the image of $SIGIDi.

$BIG STRING2 (1 -> '"', 2...100 -> 'A', 101 -> '1',A string literal which when 102 => '"')catenated to the end of$BIG STRING1 yields the image of$BIG-IDI.

$BLANKS (1..180 -> 'A sequence of blanks twentycharacters less than the sizeof the maximum line length.

$COUNT LAST 32767A universal integerliteral whose value isTEXTIO.COUNT'LAST.

$DEFAULT HEM SIZE 65536An integer literal whose valueis SYSTEM.MEMORYSIZE.

$DEFAULT STOR UNIT 8An iiteger literal whose valueis SYSTEM.STORAGE UNIT.

C-2

Page 43: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST PARAMETERS

Name and Meaning Value

$DEFAULT SYS NAME UNIXThe value of the constantSYSTB M.SYSTEMNAME.

$DELTA DOC 0.0000000004656612873077392578125A seal literal vhose value isSYSTEM.FINE DELTA.

$FIELDLAST 32767A universal integerliteral whose value isTEXTIO. FIELD' LAST.

$FIXED NAME NOTAPPLICABLEThe name of a predefinedfixed-point type other thanDURATION.

$FLOAT NAME NOT APPLICABLEThe name of a predefinedfloating-point type other thanFLOAT, SHORTFLOAT, orLONG FLOAT.

$GREATER THAN DURATION 300000.0A universal real literal thatlies between DURATION'BASE'LASTand DURATION'LAST or any valuein the range of DURATION.

$GREATER THAN DURATION BASE LAST 1.0E6A unlversil real literal that isgreater than DURATION'BASE'LAST.

$HIGH PRIORITY 0An integer literal whose valueis the upper bound of the rangefor the subtype SYSTEM.PRIORITY.

$ILLEGAL EXTERNAL FILE NAMEl /NODIRECTORY/FILENAMEAn external- file name vhichcontains invalid characters.

$ILLEGAL EXTERNAL FILE NAME2 <BADI-->An -external- fili name whichis too long.

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

C-3

Page 44: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST PARAMETERS

Name and Meaning Value

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

$INTEGER LAST PLUS 1 32768A univeirsal - integer literalwhose value is INTEGER'LAST + 1.

$LESS THAN DURATION -305000.0A7 universal real literal thatlies between DURATION'BASE'FIRSTand DURATION'FIRST or any valuein the range of DURATION.

$LESS THAN DURATION BASE FIRST -l.0E6A-universal real litiral that isless than DURATION'BASE'FIRST.

$LOW PRIORITY 0An integer literal whose valueis the lover bound of the rangefor the subtype SYSTEM.PRIORITY.

$MANTISSA DOC 31An infeger literal whose valueis SYSTEM.MAXMANTISSA.

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

$MAX IN LEN 200Maximum input line lengthpermitted by the implementation.

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

$MAX INT PLUS 1 2147483648A universal integer literalwhose value is SYSTEM.MAX INT+1.

$MAX LEN INT BASED LITERAL (1..2 a> "2:", 3..197 -> '0',I universal - integer based 198..200 -> "11:")literal whose value is 2#11#with enough leading zeroes inthe mantissa to be $MAXINLENlong.

C-4

Page 45: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST PARAMETERS

Name and Meaning Value

SMAX LEN REAL BASED LITERAL (1.-3 -> "16:", 4.-196 -> '0',1 universal real based literal 197..200 -> "F.E:")whose value is 16:F.E: withenough leading zeroes in themantissa to be $MAXINLEN long.

$MAX STRING LITERAL (1 -> '"', 2..201 -> 'A', 202 -> '"')X strIng literal of size$MAX IN LEN, including the quotecharacters.

$MIN INT -21474836481 universal integer literalwhose value is SYSTEM.MIN INT.

$MIN TASK SIZE 32An integer literal whose valueis the number of bits requiredto hold a task object which hasno entries, no declarations, and"NULL;" as the only statement inits body.

$NAME NOTAPPLICABLEA name of a predefined numerictype other than FLOAT, INTEGER,SHORT FLOAT, SHORT INTEGER,LONG-FLOAT, or LONG-INTEGER.

$NAME LIST UNIXA list of enumeration literalsin the type SYSTEM.NAME,separated by commas.

$NEG BASED INT 16#FFFFFFFF#X basid integer literal whosehighest order nonzero bitfalls in the sign bitposition of the representationfor SYSTEM.MAX INT.

$NEW MEM SIZE 65536An integer literal whose valueis a permitted argument forpragma MEMORY SIZE, other than$DEFAULT MEM SIZE. If there isno other value, then use$DEFAULTMEMSIZE.

C-5

Page 46: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

TEST PARAMETERS

Name and Meaning Value

SNEW STOR UNIT 8An integer literal whose valueis a permitted argument forpragma STORAGE UNIT, other than$DEFAULT STOR UNIT. If there isno other- permitted value, thenuse value of SrSTEM.STOAGE UNIT.

$NEV SYS NAME UNIX1 value of the type SYSTEM.NAME,other than $DEFAULT SYS NAME. Ifthere is only one value-of thattype, then use that value.

$TASK SIZE 32AR integer literal whose valueis the number of bits requiredto hold a task object which hasa single entry with one 'IN OUT'parameter.

STICK 0.01A real literal whose value isSYSTEM. TICK.

C-6

Page 47: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

APPENDIX D

WITHDRAWN TESTS

Some tests are withdrawn from the ACVC because they do not conform to theAda Standard. The following 44 tests had been withdrawn at the time ofvalidation testing for the reasons indicated. A reference of the formAI-ddddd is to an Ada Commentary.

a. E28005C: This test expects that the string "-- TOP OF PAGE. --63" ofline 204 will appear at the top of the listing page due to a pragmaPAGE in line 203; but line 203 contains text that follows the pragma,and it is this text that must appear at the top of the page.

b. A39005G: This test unreasonably expects a component clause to pack anarray component into a minimum size (line 30).

c. B97102E: This test contains an unintended illegality: a selectstatement contains a null statement at the place of a selective waitalternative (line 31).

d. C97116A: This test contains race conditions, and it assumes thatguards are evaluated indivisibly. A conforming implementation may useinterleaved execution in such a way that the evaluation of the guardsat lines 50 & 54 and the execution of task CHANGING OF THE GUARDresults in a call to REPORT.FAILED at one of lines 52 or 56.- -

e. BC3009B: This test wrongly expects that circular instantiations willbe detected in several compilation units even though none of the unitsis illegal with respect to the units it depends on; by AI-00256, theillegality need not be detected until execution is attempted (line95).

f. CD2A62D: This test wrongly requires that an array object's size be nogreater than 10 although its subtype's size was specified to be 40(line 137).

D-1

Page 48: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

WITHDRAIWN TESTS

g. CD2A63A..D, CD2A66A..D, CD2A73A..D, and CD2A76A..D (16 tests): Thesetests vrongly attempt to check the size of objects of a derived type(for which a 'SIZE length clause is given) by passing them to aderived subp;rogam (which implicitly converts them to the parent type(Ada standard 3.4:14)). Additionally, they use the 'SIZE lengthclause and attribute, whose interpretation is considered problematicby the WG9 ARG.

h. CD2A81G, CD2A83G, CD2A84M..N, and CD50110 (5 tests): These testsassume that dependent tasks will terminate while the main programexecutes a loop that simply tests for task termination; this is notthe case, and the main program may loop indefinitely (lines 74, 85,86, 96, and 58, respectively).

i. CD2B15C and CD7205C: These tests expect that a 'STORAGE SIZE lengthclause provides precise control over the number of designated objectsin a collection; the Ada standard 13.2:15 allows that such controlmust not be expected.

J. CD2D11B: This test gives a SMALL representation clause for a derivedfixed-point type (at line 30) that defines a set of model numbers thatare not necessarily represented in the parent type; by CommentaryAI-00099, all model numbers of a derived fixed-point type must berepresentable values of the parent type.

k. CD5007B: This test wrongly expects an implicitly declared subprogramto be at the address that is specified for an unrelated subprogram(line 303).

1. ED7004B, ED7005C..D, and ED7006C..D (5 tests): These tests checkvarious aspects of the use of the three SYSTEM pragmas; the AVOwithdraws these tests as being inappropriate for validation.

m. CD7105A: This test requires that successive calls to CALENDAR.CLOCKchange by at least SYSTEM.TICK; however, by Commentary AI-00201, it isonly the expected frequency of change that must be at leastSYSTEM.TICK--particular instances of change may be less (line 29).

n. CD7203B and CD7204B: These tests use the 'SIZE length clause andattribute, whose interpretation is considered problematic by the WG9ARG.

o. CD7205D: This test checks an invalid test objective: it treats thespecification of storage to be reserved for a task's activation asthough it were like the specification of storage for a collection.

D-2

Page 49: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

WITHDRAWN TESTS

p. CE2107I: This test requires that objects of two similar scalar typesbe distinguished when read from a file--DATA ERROR is expected to beraised by an attempt to read one object as of the other type.Hcwever, it is not clear exactly how the Ada standard 14.2.4:4 is tobe interpreted; thus, this test objective is not considered valid(line 90).

q. CE3111C: This test requires certain behavior, when two files areassociated with the same external file, that is not required by theAda standard.

r. CE3301A: This test contains several calls to END OF LINE andEND OF PAGE that have no parameter: these calls were intended tospeiif a file, not to refer to STANDARD INPUT (lines 103, 107, 118,132, and 136).

s. CE3411B: This test requires that a text file's column number be set toCOUNT'LAST in order to check that LAYOUT ERROR is raised by asubsequent PUT operation. But the former operation will generallyraise an exception due to a lack of available disk space, and the testwould thus encumber validation testing.

D-3

Page 50: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

APPENDIX E

COMPILER OPTIONS AS SUPPLIED BY R.R. SOFTWARE, INC.

Compiler: Integrada, Version 3.2

ACVC Version: 1.10

E- 1

Page 51: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appenaix F: implementation Dependencies

F.9 Running the compiler and linker

The IntegrAda compiler is invoked using the following format:

COMPILE filename (-option)

where filename is an UNIX file name with optional compiler options(-optioni.

The compiler options are:B Brief error messages. The line in error is not printed (equivalent to turning

off pragma VERBOSE).D Don't generate debugging code (equivalent to turning off pragma DEBUG)F Use in-line 80387 instructions for Floating point operations. By default the

compiler generates library calls for floating point operations. The 80387 maybe used to execute the library calls. A floating point support library is stillrequired, even though this option is used.

L Create a listing file with name fllename.PRN on the same disk as filename.The listing file will be a listing of only the last compilation unit in a file.

Ox Object code memory model. X is 0 for the 80386 system. Other memorymodels are not supported. (Since 'his model 'limits' a program to 4 Clgabytesof Code and 4 Gigabytes of Data. this is not a concern). Memory mcdel 0 isassumed if this option is not given.

Copyright 1988. R.R. Software, Inc.

E-2

Page 52: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

Q Quiet error messages. This option causes the compiler not to wait for theuser to interact after an error. In the usual mode, the compiler will promptthe user after each error to ask If the compilation should be aborted. Thisoption is useful If the user wants to take a coffee break while the compilerIs working, since all user prompts are suppressed. The errors (if any) willnot stay on the screen when this option Is used; therefore, the consoletraffic should be sent to the printer or to a file. Be warned that certainsyntax errors can cause the compiler to print many error messages for eachand every line In the program.

T Generate information which allows trimming unused subprograms from thecode. This option tells the compiler to generate information which can beused by the remove subprograms from the final code. This option increasesthe size of the .JRL files produced. We recommend that it be used onreusable libraries of code (like trig. libraries or stack packages) - that isthose compilations for which It is likely that some subprograms are notcalled.

W Don't print any warning messages. For more control of warning messages, usethe following option form (Wx).

Wx Print only warnings of level less than the specified digit 'x'. The givenvalue of x may be from 1 to 9. The more warnings you are willing to see,the higher the number you should give.

X Handle eXtra symbol table information. This Is for the use of debuggers andother future tools. This option requires large quantities of memory and diskspace, and thus should be avoided if possible.

Z Turn on optimization. This has the same effect as If the pragma OPTIMIZEwere set to SPACE throughout your compilation.

The default values for the command line options are:B Error messages are verbose.D Debug code is generated.F Library calls are generated for floating point operations.L No listing file is generated.0 Memory model 0 is used.Q The compiler prompts for abort after every error.T No trimming code Is produced.W All warnings are printed.X Extra symbol table Information is not generated.Z Optimization is done only where so specified by pragmas.

Leading spaces are disregarded between the filename and the call toCOMPILE. Spaces are otherwise not recommended on the command line. Thepresence of blanks to separate the options will be ignored.

Revision 4.4

E-3

Page 53: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

Appendix F: Implementation Dependencies

Examples:COMPILE test-Q-LCOMPILE test. run-W4COMPILE testCOMPILE test .run -B -U-L

The compiler produces a SYM (SYMbol table information) file when aspecification is compiled, and a SRL or JRL (Specification ReLocatable orJanus ReLocatable) file when a body is compiled. To make an executableprogram, the appropriate SRL and JRL files must be linked (combined) withthe run-time libraries. This is accomplished by running the IntegrAda linker,BIND.

The IntegrAda linker is invoked using the following format:

BIND filename I-option)

Here "filename" Is the name of the SRL or JRL file created when the mainprogram was compiled (without the .SRL or .JRL extension) with optionallinker options {-optioni. The filename usually corresponds to the firstfourteen letters of the name of your main program. See the linker manualfor more detailed directions. We summarize here, however, a few of the mostcommonly used linking options:

E Create an EXE file. This option has no effect on the 80386 linker (it alwayscreates an EXE file).

FO Use software floating point (the default).F2 Use hardware (80387) floating point.L Display lots of information about the loading process.00 Use memory model 0 (the default); see the description of the /0 option in

the compiler, above.Q Use quiet error messages; i.e., don't wait for the user to interact after an

error.T Trim unused subprograms from the code. This option tells the linker to

remove subprograms which are never called from the final output file. Thisoption reduces space usage of the final file by as much as 30K.

Examples:BIND testBIND test -Q-LBIND test-L-F2

Copyright 1988, R.R. Software, Inc

E-4

Page 54: 20 23 I ~~~ A2 0 2 AD NL; LR 1 - DTIC · 2011. 5. 15. · SE 20 23 I___ ___ ____ ___)N PAGE .a 0 TMr;knos 1 ~~~ A2 0 2 ~ AD 1- ? 1 ACCESSION NO. 3. RICIPIENh1S CAIALDL NL";_LR. $-

a

Appendix F: Implementation Dependencies

Note that if you do not have a hardware floating point chip, then yougenerally will not need to use any linker options.

Revision 4.4

E-5