40
RE AD-A249 488 PAGE L L N00 ,Iedque Sei~e k& S~ 1204. Aran VA 22=4= wW f CONe d kI ON ft Mim MbW ks. Ofte dt 1. AGENCY USE ONLY (Leave B/ank) 2. REPORT DATE i3. REPORT TYPE AND DATES COVERED I Final: 30 Nov 1990 to 01 Jun 1993 4. TITLE AND SUBTITLE 5. FUNDING NUMBERS Validation Summary Report: Concurrent Conputer Corporation, C3 Ada Version 1. lv, Concurrent Computer Corporation 6650 with MC6882 Floating Point under RTU Version 5.0C (Host & Target), 901130W1.11110 6. AUTHOR(S) Wright-Patterson AFB, Dayton, OH USA 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) S. PERFORMING ORGANIZATION Ada Validation Facility, Language Control Facility ASD/SC3L REPORT NUMBER Bldg. 676, Rm 135 AVF-VSR-417.0891 Wright-Patterson AFB, Dayton, OH 45433 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSORINGMONITORING AGENCY Ada Joint Program Office REPORT NUMBER United States Department of Defense Pentagon, Rm 3E1 14 Washington, D.C. 20301-3081 11. SUPPLEMENTARY NOTES l LECTE 12a. DISTRIBUTION/AVAILABILITY STATEMENT l12b. DISTRIBUTION CODE Approved for public release; distribution unlimited. 13. ABSTRACT (Maximum 200 words) Concurrent Computer Corporation, C3 Ada Version 1.lv, Wright-Patterson AFB, Concurrent Computer Corporation 6650 with MC6882 Floating Point under RTU Version 5.OC (Host & Target), ACVC 1.11. 92-11776 92 4 29 076 III fl|I| i 14. SUBJECT TERMS 115. NUMBEH ut- L*ac Ada programming language, Ada Compiler Val. Summary Report, Ada Compiler Val. I Capability, Val. Testing, Ada Val. Office, Ada Val. Facility, ANSIIMIL-STD-1815A, AJPO. 1s. PRICE COOE 17. SECURITY CLASSIFICATION 18. SECURITY CLASSIFICATION 19. SECURITY CLASSIFICATION 20. UMITATION OF ABSTRACT OF REPORT OF ABSTRACT I UNCLASSIFIED UNCLASSIFED UNCLASSIFIED NSN 7540-01-205 StWndWard Form 296, (R9 Presubed by ANSI SW. 2.

PAGE L N00L - DTIC · 2011. 5. 14. · RE AD-A249 488 PAGE L N00L ,Iedque Sei~e k& S~ 1204. Aran VA 22=4= wW f CONe d kI ON ft Mim MbW ks.Ofte dt 1. AGENCY USE ONLY (Leave B/ank)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • RE AD-A249 488 PAGE L L N00,Iedque Sei~e k& S~ 1204. Aran VA 22=4= wW f CONe d kI ON ft Mim MbW ks. Ofte dt

    1. AGENCY USE ONLY (Leave B/ank) 2. REPORT DATE i3. REPORT TYPE AND DATES COVERED

    I Final: 30 Nov 1990 to 01 Jun 19934. TITLE AND SUBTITLE 5. FUNDING NUMBERSValidation Summary Report: Concurrent Conputer Corporation, C3 Ada Version1. lv, Concurrent Computer Corporation 6650 with MC6882 Floating Point underRTU Version 5.0C (Host & Target), 901130W1.111106. AUTHOR(S)

    Wright-Patterson AFB, Dayton, OHUSA

    7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) S. PERFORMING ORGANIZATION

    Ada Validation Facility, Language Control Facility ASD/SC3L REPORT NUMBERBldg. 676, Rm 135 AVF-VSR-417.0891Wright-Patterson AFB, Dayton, OH 45433

    9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSORINGMONITORING AGENCY

    Ada Joint Program Office REPORT NUMBERUnited States Department of DefensePentagon, Rm 3E1 14Washington, D.C. 20301-308111. SUPPLEMENTARY NOTES l L E C T E

    12a. DISTRIBUTION/AVAILABILITY STATEMENT l12b. DISTRIBUTION CODE

    Approved for public release; distribution unlimited.

    13. ABSTRACT (Maximum 200 words)

    Concurrent Computer Corporation, C3 Ada Version 1.lv, Wright-Patterson AFB, Concurrent Computer Corporation 6650with MC6882 Floating Point under RTU Version 5.OC (Host & Target), ACVC 1.11.

    92-1177692 4 29 076 III fl|I| i

    14. SUBJECT TERMS 115. NUMBEH ut- L*acAda programming language, Ada Compiler Val. Summary Report, Ada Compiler Val. ICapability, Val. Testing, Ada Val. Office, Ada Val. Facility, ANSIIMIL-STD-1815A, AJPO. 1s. PRICE COOE17. SECURITY CLASSIFICATION 18. SECURITY CLASSIFICATION 19. SECURITY CLASSIFICATION 20. UMITATION OF ABSTRACT

    OF REPORT OF ABSTRACT IUNCLASSIFIED UNCLASSIFED UNCLASSIFIED

    NSN 7540-01-205 StWndWard Form 296, (R9Presubed by ANSI SW. 2.

  • Certificate Information

    The following Ada implementation was tested and determined to pass ACVC1.11. Testing was completed on 30 November 1990.

    Compiler Name and Version: C3 Ada Version 1.lv

    Host Computer System: Concurrent Computer Corporation 6650with MC68882 Floating Pointunder RTU Version 5.0C

    Target Computer System: Concurrent Computer Corporation 6650with MC68882 Floating Pointunder RTU Version 5.OC

    Customer Agreement Number: 90-10-08-CCC

    See Section 3.1 for any additional information about the testingenvironment.

    As a result of this validation effort, validation Certificate901130W1.110 is awarded to Concurrent Computer Corporation. Thiscertificate expires on 1 March 1993.

    This report has been reviewed and is approved.

    Ada Validation FacilitySteven P. Wilson Accesion ForTechnical Director NT1S CR,&IASD/SCEL TC A.Wright-Patterson AFB OH 45433-6503 DTIC TABUn~annotlced [

    an ~~~~~~~Justilication...............

    By ..................Adia Va aYP7 Oraizat Dist: ib.:tc. IDirect r, _eppter & Software Engineering Division .......Institute for Defense Analyses ' ' .Alexandria VA 22311 Dt .

    Dist I S; ~

    LAda Joint Program Office --. -_Dr. John Solomond, DirectorDepartment of DefenseWashington DC 20301

  • AVF Control Number: AVF-VSR-417.08911 August 199190-10-08-CCC

    Ada COMPILERVALIDATION SUMMARY REPORT:

    Certificate Number: 901130W1.III0Concurrent Computer Corporation

    C3 Ada Version l.lvConcurrent Computer Corporation 6650

    with MC68882 Floating Pointunder RTU Version 5.OC

    (self-targeted)

    Prepared By:Ada Validation Facility

    ASD/SCELWright-Patterson AFB OH 45433-6503

  • DECLARATION OF CONFORMANCE

    Customer: Concurrent Computer Corporation

    Ada Validation Facility: Wright Patterson Air Force Base, Ohio.

    ACVC Version: 1.11

    Ada Implementation:

    Compiler Name and Version: C 3Ada Version: 1.lv

    Host Computer System: Concurrent Computer Corporation 6650with MC68882 Floating point under RTU Version 5.0C

    Target Computer System: Same as Host

    Customer's Declaration

    I, the undersigned, representing Concurrent Computer Corporation, declare that ConcurrentComputer Corporation has no knowledge of deliberate deviations from the Ada LanguageStandard ANSI/MIL-STD-1815A in the implementation listed in this declaration. I declare thatConcurrent Computer Corporation is the Implementor of the above implementation and thecertificates shall be awarded in the name of Concurrent Computer Corporation's corporatename.

    Seetharama Shastry (date)Senior Manager, System Software Development

  • TABLE OF CONTENTS

    CHAPTER 1 INTRODUCTION

    1.1 USE OF THIS VALIDATION SUMMARY REPORT ........ .1-11.2 REFERENCES ........ ................... . 1-21.3 ACVC TEST CLASSES ....................... ..1-21.4 DEFINITION OF TERMS ............... 1-3

    CHAPTER 2 IMPLEMENTATION DEPENDENCIES

    2.1 WITHDRAWN TESTS ....... ................. .2-12.2 INAPPLICABLE TESTS ................... 2-12.3 TEST MODIFICATIONS ...... ................ .2-4

    CHAPTER 3 PROCESSING INFORMATION

    3.1 TESTING ENVIRONMENT ...... ............... .3-13.2 SUMMARY OF TEST RESULTS .... ............. .. 3-13.3 TEST EXECUTION ....... .................. .3-2

    APPENDIX A MACRO PARAMETERS

    APPENDIX B COMPILATION SYSTEM OPTIONS

    APPENDIX C APPENDIX F OF THE Ada STANDARD

  • CHAPTER 1

    INTRODUCTION

    The Ada implementation described above was tested according to the AdaValidation Procedures [Pro90] against the Ada Standard [Ada83] using thecurrent Ada Compiler Validation Capability (ACVC). This Validation SummaryReport (VSR) gives an account of the testing of this Ada implementation.For any technical terms used in this report, the reader is referred to(Pro90]. A detailed description of the ACVC may be found in the currentACVC User's Guide lUG89].

    1.1 USE OF THIS VALIDATION SUMMARY REPORT

    Consistent with the national laws of the originating country, the AdaCertification Body may make full and free public disclosure of this report.In the United States, this is provided in accordance with the "Freedom ofInformation Act" (5 U.S.C. #552). The results of this validation applyonly to the computers, operating systems, and compiler versions identifiedin 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 implementation has nononconformities to the Ada Standard other than those presented. Copies ofthis report are available to the public from the AVF which performed thisvalidation or from:

    National Technical Information Service5285 Port Royal RoadSpringfield VA 22161

    Questions regarding this report or the validation test results should bedirected to the AVF which performed this validation or to:

    Ada Validation OrganizationInstitute for Defense Analyses1801 North Beauregard StreetAlexandria VA 22311

    1-1

  • INTRODUCTION

    1.2 REFERENCES

    (Ada83J Reference Manual for the Ada Programmin2 Langage,ANSI/MIL-ST----- 5AFeb--iry 1983 and ISO 8652-1987.

    [Pro9O] Ada Compiler Validation Procedures, Version 2.1, Ada Joint Programce, August 1990.

    [UG891 Ada Compiler Validation Capability User's Guide, 21 June 1989.

    1.3 ACVC TEST CLASSES

    Compliance of Ada implementations is tested by means of the ACVC. The ACVCcontains a collection of test programs structured into six test classes:A, B, C, D, E, and L. The first letter of a test name identifies the classto which it belongs. Class A, C, D, and E tests are executable. Class Band class L tests are expected to produce errors at compile time and linktime, respectively.

    The executable tests are written in a self-checking manner and produce aPASSED, FAILED, or NOT APPLICABLE message indicating the result when theyare executed. Three Ada library units, the packages REPORT and SPPRT13,and the procedure CHECK FILE are used for this purpose. The package REPORTalso provides a set of identity functions used to defeat some compileroptimizations allowed by the Ada Standard that would circumvent a testobjective. The package SPPRT13 is used by many tests for Chapter 13 of theAda Standard. The procedure CHECK FILE is used to check the contents oftext files written by some of the Class C tests for Chapter 14 of the AdaStandard. The operation of REPORT and CHECK FILE is checked by a set ofexecutable tests. If these units are not operating correctly, validationtesting is discontinued.

    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 all violations ofthe Ada Standard are detected. Some of the class B tests contain legal Adacode which must not be flagged illegal by the compiler. This behavior isalso verified.

    Class L tests check that an Ada implementation correctly detects violationof the Ada Standard involving multiple, sepe.rettely compiled units. Errorsare expected at link time, and execution is attempted.

    In some tests of the ACVC, certain macro strings have to be replaced byimplementation-specific values - for example, the largest integer. A listof the values used for this implementation is provided in Appendix A. Inaddition to these anticipated test modifications, additional changes may berequired to remove unforeseen conflicts between the tests andimplementation-dependent characteristics. The modifications required forthis implementation are described in section 2.3.

    1-2

  • INTRODUCTION

    For each Ada implementation, a customized test suite is produced by theAVF. This customization consists of making the modifications described inthe preceding paragraph, removing withdrawn tests (see section 2.1) and,possibly some inapplicable tests (see Section 2.2 and [UG891).

    In order to pass an ACVC an Ada implementation must process each test ofthe customized test suite according to the Ada Standard.

    1.4 DEFINITION OF TERMS

    Ada Compiler The software and any needed hardware that have to be addedto a given host and target computer system to allowtransformation of Ada programs into executable form andexecution thereof.

    Ada Compiler The means for testing compliance of Ada implementations,Validation consisting of the test suite, the support programs, the ACVCCapability user's guide and the template for the validation summary(ACVC) report.

    Ada An Ada compiler with its host computer system and itsImplementation target computer system.

    Ada Joint The part of the certification body which provides policy andProgram guidance for the Ada certification system.Office (AJPO)

    Ada The part of the certification body which carries out theValidation procedures required to establish the compliance of an AdaFacility (AVF) implementation.

    Ada The part of the certification body that provides technicalValidation guidance for operations of the Ada certification system.Organization(AVO)

    Compliance of The ability of the implementation to pass an ACVC version.an AdaImplementation

    Computer A functional unit, consistinm of one or more computers andSystem associated software, that uses common storage for all or

    part of a program and also for all or part of the datanecessary for the execution of the program; executesuser-written or user-designated programs; performsuser-designated data manipulation, including arithmeticoperations and logic operations; and that can executeprograms that modify themselves during execution. Acomputer system may be a stand-alone unit or may consist ofseveral inter-connected units.

    1-3

  • INTRODUCTION

    Conformity Fulfillment by a product, process or service of allrequirements specified.

    Customer An individual or corporate entity who enters into anagreement with an AVF which specifies the terms andconditions for AVF services (of any kind) to be performed.

    Declaration of A formal statement from a customer assuring that conformityConformance is realized or attainable on the Ada implementation for

    which validation status is realized.

    Host Computer A computer system where Ada source programs are transformedSystem into executable form.

    Inapplicable A test that contains one or more test objectives found to be

    test irrelevant for the given Ada implementation.

    ISO International Organization for Standardization.

    LRM The Ada standard, or Language Reference Manual, published asANSI/MIL-STD-1815A-1983 and ISO 8652-1987. Citations fromthe LRM take the form ".:."

    Operating Software that controls the execution of programs and thatSystem provides services such as resource allocation, scheduling,

    input/output control, and data management. Usually,operating systems are predominantly software, but partial orcomplete hardware implementations are possible.

    Target A computer system where the executable form of Ada programsComputer are executed.System

    Validated Ada The compiler of a validated Ada implementation.Compiler

    Validated Ada An Ada implementation that has been validated successfullyImplementation either by AVF testing or by registration [Pro90].

    Validation The process of checking the conformity of an Ada compiler tothe Ada programming language and of issuing a certificatefor this implementation.

    Withdrawn A test found to be incorrect and not used in conformitytest testing. A test may be incorrect because it has an invalid

    test objective, fails to meet its test objective, orcontains erroneous or illegal use of the Ada programminglanguage.

    1-4

  • CHAPTER 2

    IMPLEMENTATION DEPENDENCIES

    2.1 WITHDRAWN TESTS

    The following tests have been withdrawn by the AVO. The rationale forwithdrawing each test is available from either the AVO or the AVF. Thepublication date for this list of withdrawn tests is 12 October 1990.

    E28005C B28006C C34006D B41308B C43004A C45114AC45346A C45612B C45651A C46022A B49008A A74006AC74308A B83022B B83022H B83025B B83025D B83026BB85001L C83026A C83041A C97116A C98003B BA2011ACB7001A CB7001B CB7004A CC1223A BC1226A CC1226BBC3009B BDIB02B BD1B06A ADIBO8A BD2AO2A CD2A21ECD2A23E CD2A32A CD2A41A CD2A41E CD2A87A CD2B15CBD3006A BD4008A CD4022A CD4022D CD4024B CD4024CCD4024D CD4031A CD4051D CD5111A CD7004C ED7005DCD7005E AD7006A CD7006E AD7201A AD7201E CD7204BBD8002A BD8004C CD9005A CD9005B CDA201E CE2107ICE2117A CE2117B CE2119B CE2205B CE2405A CE3111CCE3118A CE3411B CE3412B CE3607B CE3607C CE3607DCE3812A CE3814A CE3902B

    2.2 INAPPLICABLE TESTS

    A test is inapplicable if it contains test objectives which are irrelevantfor a given Ada implementation. Reasons fr ;? test's inapplicability maybe supported by documents issued by ISO and the AJPO known as AdaCommentaries and commonly referenced in the format AI-ddddd. For thisimplementation, the following tests were determined to be inapplicable forthe reasons indicated; references to Ada Commentaries are included asappropriate.

    2-1

  • IMPLEMENTATION DEPENDENCIES

    The following 159 tests have floating-point type declarations requiringmore digits than SYSTEM.MAX DIGITS:

    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)

    The following 21 tests check for the predefined type LONG INTEGER:

    C35404C C45231C C45304C C45411C C45412CC45502C C45503C C45504C C45504F C45611CC45612C C45613C C45614C C45631C C45632CB52004D C55B07A B55B09C B86001W C86006CCD7101F

    C35702A, C35713B, C45423B, B86001T, and C86006H check for the predefinedtype SHORTFLOAT.

    C35713D and B86001Z check for a predefined floating-point type with aname other than FLOAT, LONGFLOAT, or SHORTFLOAT.

    C41401A checks that CONSTRAINT ERROR is raised upon the evaluation ofvarious attribute prefixes; thTs implementation derives the attributevalues from the subtype of the prefix at compilation time, and thus doesnot evaluate the prefix or raise the exception. (See Section 2.3.)

    C45531M..P (4 tests) and C45532M..P (4 tests) check fixed-pointoperations for types that require a SYSTEM.MAX MANTISSA of 47 orgreater.

    C45624A checks that the proper exception is raised if MACHINE OVERFLOWSis FALSE for floating point types with digits 5. For thisimplementation, MACHINE OVERFLOWS is TRUE.

    C45624B checks that the proper exception is raised if MACHINE OVERFLOWSis FALSE for floating point types with digits 6. For thisimplementation, MACHINE _OERFLOS is TRUE.

    C86001F recompiles package SYSTEM, making package TEXT 10, and hencepackage REPORT, obsolete. For this implementation, the package TEXT IOis dependent upon package SYSTEM.

    B86001Y checks for a predefined fixed-point type other than DURATION.

    C96005B checks for values of type DURATION'BASE that are outside therange of DURATION. There are no such values for this implementation.

    2-2

  • IMPLEMENTATION DEPENDENCIES

    CD1009C uses a representation clause specifying a non-default size for afloating-point type.

    CD2A84A, CD2A84E, CD2A84I..J (2 tests), and CD2A840 use representationclauses specifying non-default sizes for access types.

    BD8001A, BD8003A, BD8004A..B (2 tests), and AD8011A use machine codeinsertions.

    The tests listed in the following table are not applicable because thegiven file operations are not supported for the given combination ofmode and file access method.

    Test File Operation Mode File Access Method

    CE2102D CREATE IN FILE SEQUENTIAL 10CE2102E CREATE OUT FILE SEQUENTIALIOCE2102F CREATE INOUT FILE DIRECT 10CE2102I CREATE IN FILE DIRECT-IOCE2102J CREATE OUT FILE DIRECT IOCE2102N OPEN IN FILE SEQUENTIAL 10CE21020 RESET IN FILE SEQUENTIALIOCE2102P OPEN OUT FILE SEQUENTIAL ICE2102Q RESET OUT FILE SEQUENTIAL_IOCE2102R OPEN INOUT FILE DIRECT 10CE2102S RESET INOUT FILE DIRECT 10CE2102T OPEN IN FILE DIRECT 10CE2102U RESET IN FILE DIRECT IOCE2102V OPEN OUT FILE DIRECT IOCE2102W RESET OUT FILE DIRECTIOCE3102E CREATE IN FILE TEX-_ I0CE3102F RESET Any Mode TEXT-IOCE3102G DELETE TEXT-IOCE31021 CREATE OUT FILE TEXT 10CE3102J OPEN IN FILE TEXT-IOCE3102K OPEN OUT FILE TEXT-IO

    CE2107C..D (2 tests), CE2107H, and CE2107L apply function NAME totemporary sequential, direct, and text files in an attempt to associatemultiple internal files with the same external file; USEERROR is raisedbecause temporary files have no name.

    CE2108B, CE2108D, and CE3112B use the names of temporary sequential,direct, and text files that were created in other tests in order tocheck that the temporary files are not accessible after the completionof those tests; for this implementation, temporary files have no name.

    CE2203A checks that WRITE raises USE ERROR if the capacity of theexternal file is exceeded for SEQUENTIAL_10. This implementation doesnot restrict file capacity.

    2-3

  • IMPLEMENTATION DEPENDENCIES

    EE2401D checks whether DIRECT 10 can be instantiated for an element typethat is an unconstrained array type; this implementation raisesUSE ERROR on the attempt to create a file, because the maximum potentialelement size exceeds the implementation limit of 2**31 - 1 bits.

    CE2403A checks that WRITE raises USE ERROR if the capacity of theexternal file is exceeded for DIRECT-_IO. This implementation does notrestrict file capacity.

    CE3111B and CE3115A associate multiple internal text files with the sameexternal file and attempt to read from one file what was written to theother, which is assumed to be immediately available; this implementationbuffers output. (See section 2.3.)

    CE3202A expects that function NAME can be applied to the standard inputand output files; in this implementation these files have no names, andUSEERROR is raised. (See section 2.3.)

    CE3304A checks that USE ERROR is raised if a call to SET LINE LENGTH orSET PAGE LENGTH specifies a value that is inappropriate -for tde externalfile. Tiis implementation does not have inappropriate values for eitherline length or page length.

    CE3413B checks that PAGE raises LAYOUT ERROR when the value of the pagenumber exceeds COUNT'LAST. For this implementation, the value ofCOUNT'LAST is greater than 150000 making the checking of this objectiveimpractical.

    2.3 TEST MODIFICATIONS

    Modifications (see section 1.3) were required for 14 tests.

    The following tests were split into two or more tests because thisimplementation did not report the violations of the Ada Standard in the wayexpected by the original tests:

    B29001A BC2001D BC2001E BC3204B BC3205B BC3205D

    C34007P and C34007S were graded passed by Evaluation Modification asdirected by the AVO. These tests include a check that the evaluation ofthe selector "all" raises CONSTRAINT ERROR -hen the value of the object isnull. This implementation determines the result of the equality tests atlines 207 and 223, respectively, bas d on the subtype of the object; thus,the selector is not evaluated and no exception is raised, as allowed by LRM11.6(7). The tests were graded passed given that their only output fromReport.Failed was the message "NO EXCEPTION FOR NULL.ALL - 2".

    C35713D and B86001Z were processed incorrectly during validation testing:the AVF inadvertantly substituted "NO SUCH TYPE" for the macro FLOAT NAMEinstead of "LONGLONGFLOAT", which is the-name of a predefined floating-

    2-4

  • IMPLEMENTATION DEPENDENCIES

    point type in this implementation. This mistake in processing was noticedafter testing had completed, and the AVF asked the customer to process thetests with the correct macro value; the customer complied with the requestand provided the results of correct processing, which showed that the testswere passed instead of inapplicable.

    C41401A was graded inapplicable by Evaluation Modification as directed bythe AVO. This test checks that the evaluation of attribute prefixes thatdenote variables of an access type raises CONSTRAINT ERROR when the valueof the variable is null and the attribute is approprTate for an array ortask type. This implementation derives the array attribute values from thesubtype; thus, the prefix is not evaluated and no exception is raised asallowed by LRM 11.6(7), for the checks at lines 77, 87, 108, 121, 131, 141,152, 165, and 175.

    CE3111B and CE3115A were graded inapplicable by Evaluation Modification asdirected by the AVO. The tests assume that output from one internal fileis unbuffered and may be immediately read by another file that shares thesame external file. This implementation raises END ERROR on the attemptsto read at lines 87 and 101, respectively.

    CE3202A was graded inapplicable by Evaluation Modification as directed bythe AVO. This test applies function NAME to the standard input file, whichin this implementation has no name; USE ERROR is raised but not handled, sothe test is aborted. The AVO ruled that this behavior is acceptablepending any resolution of the issue by the ARG.

    2-5

  • CHAPTER 3

    PROCESSING INFORMATION

    3.1 TESTING ENVIRONMENT

    The Ada implementation tested in this validation effort is describedadequately by the information given in the initial pages of this report.

    For a point of contact for technical information about this Adaimplementation system, see:

    Michael Devlin106 Apple StreetTinton Falls NJ 07724(201) 758-7531

    For a point of contact for sales information about this Ada implementationsystem, see:

    Michael Devlin106 Apple StreetTinton Falls NJ 07724(201) 758-7531

    Testing of this Ada implementation was conducted at the customer's site bya validation team from the AVF.

    3.2 SUMMARY OF TEST RESULTS

    An Ada Implementation passes a given ACVC version if it processes each testof the customized test suite in accordance with the Ada ProgrammingLanguage Standard, whether the test is applicable or inapplicable;otherwise, the Ada Implementation fails the ACVC [Pro90].

    For all processed tests (inapplicable and applicable), a result wasobtained that conforms to the Ada Programming Language Standard.

    3-1

  • PROCESSING INFORMATION

    Total Number of Applicable Tests 3841Total Number of Withdrawn Tests 81Processed Inapplicable Tests 89Non-Processed I/O Tests 0Non-Processed Floating-Point

    Precision Tests 159

    Total Number of Inapplicable Tests 248

    Total Number of Tests for ACVC 1.11 4170

    All I/O tests of the test suite were processed because this implementationsupports a file system. The above number of floating-point tests were notprocessed because they used floating-point precision exceeding thatsupported by the implementation.

    3.3 TEST EXECUTION

    Version 1.11 of the ACVC comprises 4170 tests. When this compiler wastested, the tests listed in section 2.1 had been withdrawn because of testerrors. The AVF determined that 249 tests were inapplicable to thisimplementation. All inapplicable tests were processed during validationtesting except for 159 executable tests that use floating-point precisionexceeding that supported by the implementation. In addition, the modifiedtests mentioned in section 2.3 were also processed.

    A magnetic tape containing the customized test suite (see section 1.3) wastaken on-site by the validation team for processing. The contents of themagnetic tape were configured on a 3280 MPS machine and transferred via tartapes to the host machine.

    After the test files were loaded onto the host computer, the full set oftests was processed by the Ada implementation.

    The tests were compiled and linked on the host computer system, asappropriate. The executable images were transferred to the target computersystem by the conmunications link described above, and run. The resultswere captured on the host computer system.

    Testing was performed using command scripts provided by the customer andreviewed by the validation team. See Appendix B for a complete listing ofthe processing options for this implementation. It also indicates thedefault options. The options invoked explicitly for validation testingduring this test were:

    3-2

  • PROCESSING INFORMATION

    Option Effect

    -l Generate a listing file.

    -L Specify the name of the file or a directoryfor the listing file.

    -m Specify the main program name.

    -o Specify the name of the executable image file.

    -v Cause the compiler to write a versionidentification and information messagesto be displayed.

    The listings were printed on a remote system via a remote shell call. Testoutput, compiler and linker listings, and job logs were captured onmagnetic tape and archived at the AVF. The listings examined on-site bythe validation team were also archived.

    3-3

  • APPENDIX A

    MA.CRO PARAMETERS

    This appendix contains the macro parameters used for customizing the ACVC.The meaning and purpose of these parameters are explained in (UG89]. Theparameter values are presented in two tables. The first table lists thevalues that are defined in terms of the maximum input-line length, which isthe value for $MAXIN LEN-also listed here. These values are expressedhere as Ada string ag~gregates, where "V" represents the maximum input-linelength.

    Macro Parameter Macro Value

    $MAXINLEN 255

    $BIGIDi (l..V-l => 'A, V => 1')

    $BIG 1D2 (l..V-l => 'A, V => '2')$BIG7ID3 (l..V/2 => 'A) & '3' &

    (l..V-l-V/2 -> 'A)

    $BIG_1DN (l..V/2 => 'A) & '4' &

    (1..V-l-V/2 => WA)

    $BIGINTLIT (1. .v-3 => '0') & "1298"1

    $BIGREAL LIT (l..V-5 => '0') & "690.0"

    $BIGSTRINGi " & (1..V/2 => 'A') & ""

    $BIGSTRING2 '~~& (1. 17-1-V/2 -> 'A) & 1', & I'll

    $BLANKS (l..V-20 =>'

    $M'AXLENINTBASED_-LITERAL112:"1 & (l..V-5 => '0') & "111:"1

    $MAXLEN REAL BASEDLITERAL"116:" & (1..V-7 -> '0') & '"F.E:"

    A-1

  • MACRO PARAMETERS

    $MAX STRING LITERAL '"' & (1..V-2 => 'A') & '"'

    The following table lists all of the other macro parameters and theirrespective values:

    Macro Parameter Macro Value

    $ACCSIZE 32

    $ALIGNMENT 4

    $COUNTLAST 2147283647

    $DEFAULTMEM SIZE 2147283748

    $DEFAULT STOR UNIT 8

    $DEFAULTSYSNAME CCUR_MC68K

    $DELTADOC 2#1.0#E-31

    SENTRYADDRESS SYSTEM.signaluser_2_ref

    SENTRYADDRESS1 SYSTEM.signalchildref

    SENTRYADDRESS2 SYSTEM.signal_power_restore ref

    $FIELDLAST 512

    $FILETERMINATOR F '

    $ FIXEDNAME NOSUCHFIXEDTYPE

    $FLOAT NAME NO SUCH FLOATTYPE

    $FORMSTRING ""

    $FORM STRING2 "CANNOT RESTRICT FILE CAPACITY"

    $GREATERTHANDURATION0.0

    $GREATERTHAN DURATION BASE LAST200006. 0

    $GREATERTHAN FLOAT BASE LAST16T1.0#+32

    $GREATERTHAN FLOAT SAFE LARGE161[0.8#E+32

    A-2

  • MACRO PARAMETERS

    $GREATERTHAN SHORT-FLOAT SAFE LARGE0.0-

    $HIGH PRIORITY 255

    $ILLEGALEXTERNAL FILE NAMEI7nodir/filel

    $ILLEGAL EXTERNAL FILE NAME2-- - wrongdir/file2

    $ INAPPROPRIATELINELENGTH-1

    $ INAPPROPRIATEPAGELENGTH-1

    $INCLUDE_PRAGMAI PRAGMA INCLUDE ("A28006DI.TST")

    $INCLUDEPRAGMA2 PRAGMA INCLUDE ("B28006FI.TST")

    $INTEGER FIRST -2147483648

    $INTEGER LAST 2147483647

    $INTEGER LAST PLUS_1 2147483648

    $ INTERFACELANGUAGE ASSEMBLER

    $LESSTHAN DURATION -0.0

    $LESSTHAN DURATION BASE FIRST- - -2U0000.0

    $LINETERMINATOR ASCII. LF

    $LOW PRIORITY 0

    $MACHINECODESTATEMENTNULL

    $MACHINE CODE TYPE NO SUCH TYPE

    $MANTISSA DOC 31

    $MAXDIGITS 18

    $MAX INT 2147483647

    $MAX INT PLUS_1 2147483648

    $MIN INT -2147483638

    A-3

  • MACRO PARAMETERS

    $NAME TINY INTEGER

    $NAMELIST CCUR MC68K

    $NAME SPECIFICATION1 /benl/mpl83/acvcll/chape/X2120A

    $NAME SPECIFICATION2 /benl/mp183/acvcll/chape/X2120B

    $NAME SPECIFICATION3 /benl/mpl83/acvcll/chape/X3119A

    $NEGBASEDINT 16#FFFFFFFE#

    $NEW MEM SIZE 2147483648

    $NEW STOR UNIT 8

    $NEW SYS NAME CCUR MC68K

    $PAGETERMINATOR ASCII.LF & ASCII.FF & ASCII.LF

    $RECORD DEFINITION NEW INTEGER

    $RECORD NAME NO SUCH MACHINE CODETYPE

    $TASKSIZE 32

    $TASK STORAGESIZE 10240

    STICK 1.0/60.0

    $VARIABLE ADDRESS GET VARIABLE ADDRESS

    $VARIABLE ADDRESS1 GET VARIABLE ADDRESS1

    $VARIABLEADDRESS2 GETVARIABLE ADDRESS2

    $YOUR PRAGMA VOLATILE

    A-4

  • APPENDIX B

    COMPILATION SYSTEM OPTIONS

    The compiler and linker options of this Ada implementation, as described inthis Appendix, are provided by the customer. Unless specifically notedotherwise, references in this appendix are to compiler and linkerdocumentation and not to this report.

    Option Effect

    -1 If specified, listing file is generated(listing is not generated by default)

    -L This option specifies the name of thefile or a directory for the listing file.(default filename is source file name.l)

    -m This option will specify the main programname (a parameterless procedure).

    -c This option will specify the name ofthe library unit on which the completershould be run. This will cause thecompilation of all generic instantiations.This option was not specified.

    -o This option specifies the name of theexecutable image file. This option isignored if -m option is not given.

    -A This option instructs the compiler togenerate assembly listing. No assemblerlisting was required. (not specified).

    -C This option instructs the compiler tocopy the source file being compiledinto the program library. (not specified)

    B-i

  • COMPILATION SYSTEM OPTIONS

    Option Effect

    -S This option tells the compiler to suppressall run-time checks. (not specified)

    -O This option controls the optimizationlevel of the compiler. (the compilerperforms all optimizations by default)

    -I This option tells the compiler to obeypragma Inline. (default is to obey thepragma)

    -s This option tells the compiler to performonly the syntax analysis. (not specified)

    -v This option causes the compiler to writea version identification and informationmessages to be displayed. This optionwas specified. (the default is tosuppress such information)

    B-2

  • APPENDIX C

    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 this Ada implementation, as described in this Appendix,are provided by the customer. Unless specifically noted otherwise,references in this Appendix are to compiler documentation and not to thisreport. Implementation-specific portions of the package STANDARD, whichare not a part of Appendix F, are:

    package STANDARD is

    type INTEGER is range -2147483648 .. 2147483647;

    type TINY INTEGER is range -128 .. 127;

    type SHORT INTEGER is range -32768 .. 32767;

    type FLOAT is digits 6 range -16#0.FFFFFF#E32 .. 16#0.FFFFFF#E32;

    type LONG FLOAT is digits 15range -16#0.FFFFFFFFFFFFF8#E256

    16#0. FFFFFFFFFFFFF8#E256;

    type LONG LONG FLOAT is digits 18range- -16#0. FFFFFFFFFFFFFFFF#E4096

    16#0. FFFFFFFFFFFFFFFF#E4096;

    type DURATION is delta 0.00006103515625range -131072.00 .. 131071.99993896484375;

    end STANDARD;

    C-1

  • APPENDIX FIMPLEMENTATION-DEPEN DENT CHARACTERISTICS

    F.1 INTRODUCTIONThe Ada programming language definition requires every Ada compilation system tosupply an Appendix F containing all implementation-specific aspects of the compiler andthe run-time system.

    F.2 IMPLEMENTATION-DEPENDENT PRAGMASTable F-I lists all pragmas in C3Ada predefined as well as implementation-defined.

    TABLE F-1. PRAGMA IMPLEMENTATION SUMMARY

    PRAGMA IMPLEMENTED 1 COMMENTSBYTLPACK Yes The elements of an array or record are packed down

    to a minimal number of bytes.

    CONTROLLED No Not applicable because no automatic storagereclamation of unreferenced access objects isperformed. The complete storage requirement of acollection is released when it passes out of scope.

    ELABORATE Yes Is handled as defined by the Ada language.EXTERNAL-NAME Yes Defines the link-time name of a statically allocated

    _ _object or of a subprogram.INLINE Yes Is handled as defined by the Ada language, with the

    following restrictions: The subprogram to beexpanded inline must not contain declarations ofother subprograms, task bodies, generic units, orbody stubs. If the subprogram is called recursively,only the outer call is expanded. The subprogra, 'must be previously compiled, and if it is a genericinstance, it must be previously completed.

    INTERFACE Yes Is implemented for the languages C and Assembler.LIST Yes Is handled as defined by the Ada language.MEMORY-SIZE No You cannot change the number of available storage

    units in the machine configuration, which is definedin package SYSTEM.

    OPTIMIZE No Optimization of a compilation can only becontrolled usirg, the -o option on the adaccommand line.

    PACK I Yes The elements of an array or record are packed downI to a minimal number of bits.

    PAGE Yes Is handled as defined by the Ada language.PRIORITY I Yes Is handled as defined by the Ada language.

    _ Priorities in the range 0 .. 255 are supported.

    TABLE F-1. PRAGMA IMPLEMENTATION SUMMARY (Continued)

    48-555 FOO ROO F-I

  • PRAGMA IMPLEMENTED COMMENTS

    SHARED Yes Is handled as defined by the Ada language.

    STORAGE-UNIT No You cannot change the number of bits in a storageunit which is defined as 8 in package SYSTEM.

    SUPPRESS No Different types of checks cannot be switched on oroff for specific objects; however, see suPPREss A.L.

    SUPPRESS.-ALL Yes This pragma allows the compiler to omit thegeneration of code to check for errors that mayraise CONSTRAINT ERROR or PROGRAM ERROR thatmay be raised due to an elaboration order problem.

    SYSTEM-NAME No You cannot change the system name which isdefined as CCUR MC68K in package SYSTEM.

    VOLATILE Yes Specifies that every read or update of a variablecauses a reference to the actual memory location forthe variable. That is, a local copy of the variable isnever made. This is similar to pragma SHARED,except that any variable may be specified. Thispragma causes all optimizatlons on the specificvariable to be suppressed.

    F.2.1 Pragma INLINE Restrictions

    Inline expansion of subprogram calls occurs only if the subprogram does not contain anydeclarations of subprograms, task bodies, generic taits, or body stubs. For recursive calls,only the outer call is expanded. The subprogram body must be previously compiled and ifit is a generic instance, it must be previously completed. If for one or more of thesereasons the inline expansion is rejected by the compiler, a corresponding warning messagewill be produced.

    F.3 REPRESENTATION CLAUSES

    The following subsections describe the restrictions on representation clauses as defined inChapter 13 of the Reference Manual for the Ada Programming Language - ANSl/MIL-STD-181 SA-1983.

    F.3.1 Length Clauses

    A length clause specifies the amount of storage to be allocated for objects of a given type.The following is a list of the implementation-dependent attributes:

    T'SIZE must be

  • T'STORAGESIZE If this length clause is applied to a collection, the exactamount of space specified will be allocated. No dynamicextension of the collection will be performed. If the lengthclause is not specified, the collection will be extendedautomatically whenever the allocator new is executed and thecollection is full.

    T'STORAGESIZE If this length clause is applied to a task type, the specifiedamount of stack space will be allocated for each task ofcorresponding type. The value supplied should not be lessthan 1400. If no length clause Is specified for a task type, adefault value of 10K bytes is supplied by the compiler. Stackspace allocated for a task is never extended automatically atrun-time.

    T'SMALL There is no implementation-dependent restriction. Inparticular, even values of SMALL which are not powers of 2may be chosen.

    F.3.2 Representation Attributes

    The Representation attributes listed below are as specified in the Reference Manual for theAda Programming Language - ANSI/MIL-STD-1815A-1983, Section 13.7.2.

    X'ADDRESS is only supported for objects, subprograms, and interruptentries. Applied to any other entity, this attribute yields thevalue SYSTF-M.ADDRESSZERO.

    X'SIZE is handled as defined by the Ada language.

    R.C'POSITION is handled as defined by the Ada language.

    R.C'FIRSTBIT is handled as defined by the Ada language.

    R.C'LASTBIT is handled as defined by the Ada language.

    T'STORAGESIZE applied to an access type, this attribute will return the amountof storage currently allocated for the corresponding collection.The returned value may vary as collections are extendeddynamically.

    T'STORAGESIZE for task types or task objects. this attribute is handled asdefined by the Ada language.

    F.3.3 Representation Attributes of Real Types

    This subsection lists all representation attributes for the floating point types supported:

    P'DIGITS yields the number of decimal digits for the subtype P. Thevalues for the predefined types are 6, 15, and 18 for the typesFLOAT. LONG_FLOAT, and LONGLONGFLOAT. respectively.

    PMANTISSA yields the number of binary digits in the mantissa of P. TableF-2 shows the relationship between 'DIGITS and 'MANTISSA.

    48-555 FOO ROO F-3

  • TABLE F-2. P'MANTISSA VALUES

    DIGITS MANTISSA DIGITS MANTISSA1 5 10 352 8 11 383 11 12 414 15 13 455 18 14 486 21 15 517 25 16 558 28 17 589 31 18 61

    PEPSILON yields the absolute value of the difference between the modelnumber 1.0 and the next model number above 1.0 of subtypeP. Table F-3 summarizes the values for 'EPSILON.

    TABLE F-3. P'EPSILON VALUES

    DIGITS EPSILON DIGITS EPSILON1 16#0.1#EO 10 16#0.4#E-082 16#0.2#E-01 11 16#0.8#E-093 16#0.4#E-02 12 16#0.1#E-094 16#0.4#E-03 13 16#0.1#E-105 16#0.8#E-04 14 16#0.2#E- 116 16#0.1#E-04 15 16#0.4#E-127 16#0.1#E-05 16 16#0.4#E-138 16#0.2#E-06 17 16#0.8#E- 149 16#0.4#E-07 18 16#0.1#E-14

    P'EMAX yields the largest exponent of model numbers for subtype P.The values of 'm,Ax are given in Table F-4.

    TABLE F-4. P'EMAX VALUES

    DIGITS EMAX DIGITS EMAX1 20 10 1402 32 11 1523 44 12 1644 60 13 1805 72 14 1926 84 15 2047 100 16 2208 112 17 2329 124 18 244_.

    P'SMALL yields the smallest model number of subtype P. The values ofALLaregiven

    F-4 48-555 FOO ROO

  • TABLE F-5. PSMALL VALUES

    DIGITS SMALL DIGITS SMALL1 16#0.8#E-05 10 16#0.8#E-352 16#0.8# E-08 I I 16#0.8#E-383 16#0.8#E- 11 12 16#0.8#E-414 16#0.8#E-15 13 16#0.8#E-455 16#0.8*E-18 14 16#0.8#E-486 16#0.8#E-21 15 16#0.8#E-517 16#0.8#E-25 16 16#0.8#E-558 16#0.8#E-28 17 16#0.8#E-589 16#0.8#7uE-31 118 16#0.8#E-61

    P'LARGE yields the largest model number of the subtype P. The valuesOf 'LARGE are given in Table F-6.

    TABLE F-6. P'LARGE VALUES

    DIGITS ILARGE1 16#0.F8#E052 16#0.FF#E083 16#0.FFE#El I4 16#0.FFFE#El55 16#0.EEFF...C#E186 16#0.FFFF-F8#E2 17 16#O.FFFL-FF8#E258 16#Q.FFFF...FF#E289 16#0.FFFF-FFFE#E3 110 1 6#O.FFFF..FFF..E#E3 511 16#O.FFFF.FFF.JC#E3812 16#0.FFFF..FFF..JF8#E4 I13 16#0.FFFFFFFJFFB#E4514 1 6#0.FFFF.JFFF...FFFF#E4815 16#O.FFFF-FFFF-.FFFL-E#E5 116 1 6#0.FFFF...FFFF..FFFFFE#ESS17 16#0.FFFFFFFFJFFF...FFC#E5818 1 6#0.FFFF-FFFF..FFFF...FFF8#E6 1J

    The following attributes will return characteristics of the safe numbers and theimplementation of the floating point types. For any floating point subtype P. the attributesbelow will yield the value of the predefined floating point type onto which type P ismapped. Therefore, only the values for the types FLOAT. LONG-FLOAT, andLONGLONGFLOAT are given in Table F-7.

    48-S55 FOO ROO F-S

  • TABLE F-7. IMPLEMENTATION-DEPENDENT ATTRIBUTES FOR FLOAT TYPES

    ATTRI BUTE FLOAT LONG-.FLOAT LONG-.LONG-.FLOATP'SAFL-EMAX 125 1021 16382P'SAFE..SMALL 1 6#0.4#E-3 1 1 6#0.4#E-255 1 6#0.2#E-4095P'SAFL-LARGE 1 6#0. 1FFL-FF#E32 1 6#0. 1FFF...FFFF.. 1 6#0.3FFFJFFL-

    ______________FFFF...FC#E256 FFFF..FFE#E4096PMVACHINL-ROUNDS TRUE TRUE TRUEP'MACHINE-OVERFLOWS TRUE TRUE TRUEP'MACHINE-RADIX 2 2 2P'MACHINE-MANTISSA 24 53 64P'MACHINE..EMAX 128 1024 16384P'MACHINE..EMIN -125 -1021 -16382

    F.3.4 Representation Attributes of Fixed Point TypesFor any fixed point type T, the representation attributes are:

    T'MACHINL-ROL'NDS is TRUE

    T'MACHINE-OVERFLOWS Is TRUE

    T'MANTISSA is in the range 1 31

    T'S1ZE is in the range 2 .. 32

    F.3.5 Enumeration Representation ClausesThe integer codes specified for each enumeration literal have to lie within the range of thelargest integer type of the implementation (which is' INTEGER). The maximum number ofelements in an enumeration type is limited by the maximum size of the enumeration imagetable which cannot exceed 65535 bytes. The enumeration table size is determined by thefollowing generic function.

    generictype ENUMERATIONTYPE is ()

    function ENUMERATION TABLESIZE return NATURAL;

    function ENUMERATIONTTABLE-SIZE return NATURAL isRESULT :NATURAL :- 0;

    beginfor I in ENUMERATION TYPE'FIRST .. ENUMERATIONTYPE'LASTloop

    declaresubtype E is ENUMERATIONTYPE range I 1, I

    beginRESULT :RESULT + 2 + E'WIDTH;

    end;end loop;return RESULT;

    end ENUMERATION TABLE SIZE;

    F-6 48-S5S FOO ROO

  • F.3.6 Record Representation ClausesWith a record representation clause, you can define the exact layout of a record in memory.Two types of representation clauses are supported: alignment clauses and componentclauses.

    The value given for an alignment clause must be either 0, 1. 2, or 4. A record with analignment of 0 may start anywhere in memory. Values other than 0 will force the record tostart on a byte address which is a multiple of the specified value. If any value other than 0,1, 2, or 4 is specified, the compiler will report a RESTRICTION error.

    For component clauses, the specified range of bits for a component must not be greaterthan the amount of storage occupied by that component. Gaps within a record may beachieved by not using some bit ranges in the record. Violation of these restrictions will beflagged with a RESTRICTION error message by the compiler.

    In some cases, the compiler will generate extra components for a record. These cases are:

    " If the record contains a variant part and the difference between the smallest and thelargest variant is greater than 32 bytes and- it has more than one discriminant or

    - the discriminant can hold more than 256 values.

    In these cases, an extra component is generated which holds the actual size of therecord.

    * If the record contains array or record components whose sizes depend ondiscriminants. In this case, one extra component is generated for each such componentholding its offset in the record relative to the component generated.

    The compiler does not generate names for these extra components. Therefore, they cannotbe accessed by the Ada program. Also, it is not possible to specify representation clausesfor the components generated.

    F.4 ADDRESS CLAUSESAddress clauses can be used to allocate an object at-a specific location in the computer'saddress space or to associate a task entry with an interrupt.

    Address clauses are supported for objects declared in an object declaration and for taskentries. If an address clause is specified for a subprogram, package, or task unit, thecompiler will report a RESTRICTION error.

    For an object, an address clause causes the object to start at the specified location.

    F.4.1 Interrupt EntriesAddress clauses are supported for task entries. An address clause applied to a task entryenables an operating system signal to initiate an entry call to that entry. The addresssupplied in an address clause for a task entry must be one of the constants declared inpackage SYSTEM for this purpose.

    The interrupt is mapped onto an ordinary entry call. The entry may also be called by anAda entry call statement. However, it is assumed that there are no entry calls waiting forthe same entry when an interrupt occurs. Otherwise, the program is erroneous and behavesas follows:

    " If an entry call on behalf of an interrupt is pending, the pending interrupt is lost.

    * If any entry call on behalf of an Ada entry call statement is pending, the interrupt entrycall takes precedence. The rendezvous on behalf of the interrupt is performed beforeany other rendezvous.

    48-555 FOO ROO F-7

  • F.5 PACKAGE SYSTEMThe Ada language definition requires every implementation to supply a package SYSTEM.In addition to the declarations required by the language, package SYSTEM includesdefinitions of certain configuration-dependent characteristics. The specification for theC3Ada implementation is given below.

    package SYSTEM is

    type ADDRESS is private;

    IDDRESSNULL : constant ADDRESS;ADDRESSZERO : constant ADDRESS;

    function '+" (LEFT ADDRESS; RIGHT : INTEGER) return ADDRESS;function "+" (LEFT INTEGER; RIGHT : ADDRESS) return ADDRESS;function "-" (LEFT ADDRESS; RIGHT : INTEGER) return ADDRESS;function "-" (LEFT ADDRESS; RIGHT : ADDRESS) return INTEGER;

    function SYMBOLIC-ADDRESS (SYMBOL : STRING) return ADDRESS--- Returns the address of the external symbol supplied by-- SYMBOL, which must be a string literal. This value can-- be used in address clauses for objects, providing the-- capability of referring to objects declared in C or Assembler.

    type NAME is (CCURMC68K);SYSTEMNAME constant NAME :-CCUR MC68K;

    STORAGEUNIT constant : 8;MEMORY SIZE constant : 2 ** 31;MININT constant : - 2 ** 31;

    MAXINT constant : 2 ** 31 - 1;MAXDIGITS constant : 18;MAXMANTISSA constant : 31;FINE-DELTA constant :-2.0 ** (-31);TICK constant : 1.0 / 60.0;

    type UNSIGNEDSHORTINTEGER is range 0 .. 65535;type UNSIGNEDTINYINTEGER is range 0 .. 255;

    for UNSIGNEDSHORTINTEGER'SIZE use 16;for UNSIGNEDTINY INTEGER'SIZE use 8;

    subtype BYTE is UNSIGNEDTINYINTEGER;subtype ADDRESS-RANGE is INTEGER;

    subtype PRIORITY is INTEGER range 0 255;

    type SIGNAL isSIGNAL4NULL,SIGNAL HANGUP,SIGNALINTERRUPT,SIGNAL QUIT,SIGNAL ILLEGAL-INSTRUCTION,SIGNAL TRACETRAP,SIGNALABORT,SIGNAL7EMT INSTRUCTION,SIGNAL FLOATING POINTERROR,SIGNALKILL,SIGNAL BUS ERROR,SIGNALSEGMENTATIONVIOLATION,SIGNAL BAD ARGUMENT TO SYSTEM CALL,SIGNALPIPE WRITE,

    F-8 48-555 FOO ROO

  • SIGNALALARM,SIGNALTERMINATE,SIGNALUSER_1,SIGNAL_USER 2,SIGNALCHILD,SIGNALPOWERRESTORE,SIGNALSTOP,SIGNAL TERMINALSTOP,SIGNAL CONTINUE,SIGNALTERMINALINPUT,SIGNAL-TERMINALOUTPUT,SIGNAL INPUTCHARACTER,SIGNALCPU TIME LIMIT EXCEEDED,SIGNAL FILE_SIZELIMIT EXCEEDED,SIGNALWINDOWRESIZED,SIGNAL OUT OFBANDDATA ON SOCKET,SIGNALVIRTUAL TIMERALARM,SI GNALPROFILINGTIMERALARM,SIGNALIOISPOSSIBLE);

    -- SIGNAL NULL REF intentionally omittedSIGNALHANGUP REF constant ADDRESS;SIGNALINTERRUPTREF constant ADDRESS;SIGNAL QUIT REF constant ADDRESS;

    -- SIGNAL ILLEGALINSTRUCTIONREF intentionally omittedSIGNALTRACETRAPREF constant ADDRESS;SIGNALABORTREF constant ADDRESS;SIGNAL_EMT_INSTRUCTIONREF constant ADDRESS;

    -- SIGNALFLOATINGPOINTERRORREF intentionally omitted-- SIGNALKILLREF intentionally omitted-- SIGNALBUSERROR REF intentionally omitted-- SIGNALSEGMENTATIONVIOLATIONREF intentionally omitted

    SIGNALBADARGUMENTTO SYSTEMCALLREF constant ADDRESS;SIGNALPIPEWRITEREF constant ADDRESS;

    -- SIGNALALARMREF intentionally omittedSIGNALTERMINATE REF constant ADDRESS;

    -- SIGNALUSER_1 REF intentionally omittedSIGNALUSER_2REF constant ADDRESS;SIGNALCHILD REF constant ADDRESS;SIGNALPOWERRESTOREREF constant ADDRESS;

    -- SIGAL STOP REF intentionally omittedSIGNAL TERMINALSTOP REF constant ADDRESS;SIGNALCONTINUEREF constant ADDRESS;SIGNAL TERMINALINPUTREF constant ADDRESS;SIGNAL TERMINALOUTPUT REF constant ADDRESS;SIGNAL INPUT CHARACTERREF constant ADDRESS;SIGNAL CPU TIMELIMITEXCEEDEDREF constant ADDRESS;SIGNALFILESIZELIMITEXCEEDEDREF constant ADDRESS;SIGNALWINDOW RESIZED REF constant ADDRESS;SIGNALOUT OFBANDDATAONSOCKET REF constant ADDRESS;SIGNALVIRTUALTIMERALARMREF constant ADDRESS;SIGNAL PROFILINGTIMERALARMREF constant ADDRESS;SIGNAL IO ISPOSSIBLEREF constant ADDRESS;

    48-555 FOO ROO F-9

  • type PROCESSID is new INTEGER;subtype AST-NUMBER is INTEGER range 65..128;type AST-PRIORITY is range 0..32767;for ASTPRIORITY'SIZE use 32;

    -- definitions for AST support.

    function TO_C ROUTINE (ADA ROUTINE : ADDRESS) return ADDRESS;-- Converts an address of an Ada routine to an address-- of a C routine that can be used as an AST handler.-- This routine allocates some space on the heap-- and initializes it with code that changes the-- C calling conventions into Ada calling conventions-- so that the caller thinks that a C routine is being-- called.

    type EXCEPTIONID is new INTEGER;

    NOEXCEPTIONID : constant EXCEPTIONID :- 0;

    -- Coding of the predefined exceptions:

    CONSTRAINTERROR ID constant EXCEPTIONID : 16#0002 0000#;NUMERIC ERRORID constant EXCEPTION ID : 16#00020001#;PROGRAM ERRORID constant EXCEPTION ID : 16#0002 0002#;STORAGE ERRORID : constant EXCEPTIONID :-16#00020003#;TASKINGERROR ID : constant EXCEPTIONID : 16#00020004#;

    STATUSERRORID : constant EXCEPTIONID : 16#0002_0006#;MODEERRORID : constant EXCEPTIONID : 16#0002_0007#;NAMEERRORID : constant EXCEPTIONID : 16#00020008#;USE ERROR ID constant EXCEPTIONID :- 16#0002_0009#;DEVICE ERROR ID : constant EXCEPTION ID : 16#0002 000A#;ENDERROR ID : constant EXCEPTIONID : 16#0002_000B#;DATAERRORID : constant EXCEPTIONID : 16#0002 000C#;LAYOUTERRORID : constant EXCEPTIONID : 16#0002000D#;

    TIMEERRORID : constant EXCEPTIONID : 16#0002_OOOE#;

    NOERRORCODE : constant :- 0; "

    type EXCEPTION-INFORMATIONis record

    EXCPID EXCEPTION ID;-- Identification of the exception. The codings of-- the predefined exceptions are given above.

    CODEADDR : ADDRESS;-- Code address where the exception occurred. Depending-- on the kind of the exception, it may be the address of-- the instruction which caused the exception, or it-- may be the address of the instruction which would-- have been executed if the exception had not occurred.

    SIGNAL : SYSTEM. SIGNAL;-- Signal that caused this exception to be raised,-- else SIGNAL-NULL.

    end record;

    procedure GET EXCEPTIONINFORMATION(EXCP INFO : out EXCEPTION INFORMATION);

    - This subprogram must only be called from within an exception-- handler BEFORE ANY OTHER EXCEPTION IS RAISED. It then returns-- the information record about the actually handled exception.-- Otherwise, the result is undefined.

    F-1O 48-555 FOO ROO

  • function INTEGER TO ADDRESS(ADDR ADDRESS RANGE) return ADDRESS;function ADDRESSTOINTEGER(ADDR ADDRESS) return ADDRESSRANGE;

    pragma INLINE(INTEGERTOADDRESS, ADDRESS.T0_INTEGER);-- Conversion between address and intager types.

    type EXIT STATUS is new INTEGER range 0 .. 2"*8-i;NORMAL EXIT constant EXITSTATUS :- 0;

    ERRNO : INTEGER;for ERRNO use at SYMBOLICADDRESS("errno");

    -- Allows access to the ERRNO set by the last system call, C, or-- assembler routine call that was made on behalf of the calling-- task.

    procedure EXIT PROCESS(STATUS : in EXITSTATUS :- NORMALEXIT);-- Terminates the Ada program with the following actions:-- All Ada tasks are aborted, and the main program exits.-- All I/O buffers are flushed, and all open files are closed.

    private

    -- Implementation-defined

    end SYSTEM;

    F.6 TYPE DURATIONDURATION'SMALL is 2'14 seconds. This number is the smallest power of two which canrepresent the number of seconds in a day in longword fixed point number representation.

    SYSTEM.TICK is equal to 1.0 / 60.0 seconds. DURATION'SMALL is significantly smaller thanthe actual computer clock-tick. Therefore, the accuracy with which you can specify a delayis limited by the actual clock-tick and not by DURATION' SMALL. Table F-8 summarizes thecharacteristics of type DURATION:

    TABLE F-8. TYPE DURATION

    ATTRIBUTE VALUE APPROXIMATEVALUE

    DURATION'DELTA 2#1.0#E-14 - 61 psDURATION'SMALL 2# 1.0#E- 14 - 61 psDURATION'FIRST -131072.00 - 36 hrsDURATION'LAST 131071.99993896484375 - 36 hrsDURATION'SIZE 32

    48-555 FOG ROO F-1I

  • F.7 INTERFACE TO OTHER LANGUAGESThe pragma INTERFACE is implemented for two programming languages: C and Assembler.The pragma has the form:

    pragma INTERFACE (C, subprogram-name);

    pragma INTERFACE (ASSEMBLER, subprogram.name);

    Here, subprogram-name is a subprogram declared in the same compilation unit before thepragma.

    The only parameter mode supported for subprograms written in the C language is in. Theonly types allowed for parameters to subprograms written in the C language are INTEGER,LONG-FLOAT, and SYSTEM. ADDRESS. These restrictions are not checked by the compiler.

    Details on intertacing to other languages are given in Chapters 6 and 7.

    F.8 INPUT/OUTPUT PACKAGES

    The following two system-dependent parameters are used for control of external files:

    " the NME parameter

    " the FORM parameter

    The NAME parameter must be a legal RTU pathname conforming to the following syntax:

    pathname ::- [/] [ dirname I/ dirname 1/] filename

    dirname and filename are strings of up to 14 characters length. Any characters exceptASCII. N ",' ' (blank), and '/' (slash) may be used.

    The following is a list of all keywords and possible values for the FORM parameter inalphabetical order.

    APPEND -> FALSE I TRUE Only applicable to sequential and text files. IfTRUE is specified in an OPEN operation, the filepointer is positioned to the end of the file. Thiskeyword Is ignored in a CREATE operation. Thefile mode must be iN3FILE. The default isAPPEND -> FALSE.

    MODE -> numeric-literal This value specifies the access permission for anexternal file. It only takes effect in a CREATEoperation. It is ignored in an OPEN operation.Access rights can be specified for file owner,group members, and all users. ThenumericJliteral has to be a three digit octalnumber. The single bits of this number have thefollowing meaning:

    F-12 48-555 FOO ROO

  • 8#400# read access owner8#200# write access owner8#100# execute access owner8#040# read access group8#020# write access group8#010# execute access group8#004# read access all others8#002# write access all others8#001# execute access all others

    You can specify any sum of the above. Thedefault value is 8#666#.

    Note that the RTU operating system will subtractthe process's file mode creation mask from themode you have specified. You can change the filemode creation mask with the RTU commandumask (see the RTU Programming Manual). Forexample, if your session has a file mode creationmask of 8#022# and you create a file with mode8#666#, the file will actually be created with theprivileges 8#644#.

    RECORD-FORMAT -> VARIABLE IFIXED This parameter is only allowed for sequential

    files. The default value is VARIABLE.

    RECORD-SIZE -> numeric-literal Only applicable to sequential and direct files. Itspecifies the number of bytes in one record.This parameter is only allowed for files with afixed record length. When specified in an OPENoperation, it must agree with the correspondingvalue of the external file. If ELD4ENT_TYPE is aconstrained type, the maximum size ofELEMENT TYPE rounded up to the next byteboundary is selected by default. IfELEMENT TYPE is an unconstrained array typeand you want a fixed record length file, thisparameter must be specified.

    TRUNCATE =>FALSE I

    FIXED Only applicable to sequential files. TheFILEMODE must be OUT FILE. When TRUE iSspecified in an OPEN operation, the file size istruncated to zero. The previous contents of thefile is deleted. If FALSE is specified, the file isnot changed initially. If less records than theinitial file size are written, old records willremain unchanged in the file. This parameter isignored for CREATE operations. The defaultvalue is TRUE.

    F.81 Text Input/OutputThere are two implementation-dependent types for TEXTIO: COUNT and FIE. In C

    3Adathey are implemented as:

    type COUNT is range 0 .. INTEGER'LAST;subtype FIELD is INTEGER range 0 .. 512;

    48-555 FOG ROO F-13

  • The line terminator is implemented by the character ASCII. LF, the page terminator by thesequence ASCII. LF, ASCII. FF, ASCII. LF. There is no character for the file terminator. Endof file is deduced from the file size.

    F.9 UNCHECKED PROGRAMMING

    F.9.1 Unchecked Storage Deallocation

    The generic function UNCHECKEDDEALLOCATION is supported as specified in the ReferenceManual for the Ada Programming Language -ANS)/MIL-STD-1815A-1983, Section 13.10.

    F.9.2 Unchecked Type Conversion

    The generic function UNCHECKED CONVERSION is supported as specified in the ReferenceManual for the Ada Programming Language - ANS)/MIL-S-D-J815A-1983, Section 13.10.However, the following restrictions apply:

    The generic parameter TARGET must not be an unconstrained array type. If TARGET'SIZE >SOURCE' SIZE, the result of the conversion will be unpredictable. On the other hand, ifTARGET' SIZE < SOURCE' SIZE, the left-most bits of the source will be copied to the target.

    F.10 IMPLEMENTATION-DEPENDENT RESTRICTIONS

    The following is a Pst of implementation-dependent restrictions of the compiler.

    * The maximum length of a source line is 255 characters.

    " A program library may contain no more than 16381 compilation units.

    " A single compilation unit may not contain more than 65534 lines of Ada source text.(Depending on the complexity of the code, the actual number of lines acceptable may beconsiderably smaller than the upper limit.)

    * The number of directly imported units for a single compilation unit may not exceed255. Directly imported units are those referenced by with clauses.

    " The maximum number of nested separates is 511.

    * The main program must be a parameterless procedure.

    * The maximum length of an identifier is 255 (maximum line length). All characters of anidentifier are significant.

    " The maximum number of bits of any object is 231 - 1.

    " The maximum length of a pathname is 255 characters.

    " The maximum length of a listing line is 131 characters.

    " The maximum number of errors handled Is 1000.

    " The maximum number of units that may be named in the pragma ELABORATE of acompilation unit Is 255.

    " The maximum total size for text of unique symbols per compilation is 300000 bytes.

    " The maximum parser stack depth Is 10000.

    " The maximum depth of nested packages Is 511.

    " The maximum length of a program library name Is 242 characters.

    F-14 48-555 FOO ROO

  • " The amount of statically allocated, non-initialized data in a compilation unit cannotexceed INTEGER' LAST bytes.

    * The amount of statically allocated, initialized data in a compilation unit cannot exceedINTkEGER' LAST bytes.

    F.11 UNCONSTRAINED RECORD REPRESENTATION

    Objects of an unconstrained record type with array components based on the discriminantare allocated using the discriminant value supplied in the object declaration. However. ifno discriminant is supplied in the object declaration, the compiler will choose themaximum possible size. For example:

    type DYNAMIC-STRING ( LENGTH : NATURAL :- 10 ) isrecord

    STR : STRING ( 1 .. LENGTH );end record;

    DSTR : DYNAMIC-STRING;

    For the record DSTR. the Compiler would attempt to allocate NATURAL'LAST bytes.However, this is more than 2 GBytes. As a consequence. CONSTRAINT ERROR. would beraised. On the other hand, the declaration

    CSTR : DYNAMIC-STRING (80);

    causes no problems. The compiler would allocate 84 bytes for CSTR.

    F.12 TASKING IMPLEMENTATION

    The C3Ada system implements fully pre-emptive and priority-driven tasking. Pre-emptivemeans that task switches may take place even when the currently running task does notvoluntarily give up processor control. This may happen when a task with a high priority iswaiting on an external event (the time period specified in a delay statemen, expires). Whenthis event occurs, processor control is passed to the waiting task immediately if it has thehighest priority of the tasks ready to run.

    The C3Ada run-time system keeps track of all tasks in two categories: tasks which areready to run and those that are suspended because they are waiting for something (e.g., arendezvous to occur or waiting in a delay statement). The tasks ready to run are sorted ina queue by priority (high priorities first). Within one priority, they are sorted in the orderin which they entered the "ready" state (tasks waiting longer are served first). Wheneverthe run-time system needs a task to schedule, the first task in the queue is selected andrun.

    The accuracy of delay statements is governed by the resolution of the operating systemclock which is 1.0/60.0 seconds (SYSTEM.TICK). Although the resolution of the typeDURATION is much higher (2"' seconds), task switches caused by the expiration of a delaycan only take place on a clock tick. A task waiting in a delay enters the "ready" state whenthe next clock tick after its delay period has expired.

    Another implementation-dependent aspect of tasking is the stack size of each task. All taskobjects of a task type with a length clause and all tasks of an anonymous task type have astack space of 10K bytes. For task types, a length clause may be given. The specifiedamount of storage space will be allocated for each task object of that type.

    In addition to stack space, a task control block is allocated for each task object. It occupies250 + 20 * numberof-entries bytes. The task control block is deallocated when the taskpasses out of scope.

    48-555 FOO ROO F-IS

  • A program is erroneous if any of the following operations are performed simultaneously

    by more than one task:

    * The allocator new is evaluated for the same collection.

    " Input-Output operations are performed on the same external file.

    A C3Ada task is not implemented as an independent operating system process; rather, the

    whole Ada program is one operating system process which does not use threads.

    F-16 48-555 FOO ROO