Table of Contents
1.0INTRODUCTION
1.1Purposeofthisdocument
1.2Intendedaudience
1.3Scope
1.4Documentorganization
1.5Background
1.6References
2.0PURPOSEOFTHEADALANGUAGE
2.1Introduction
2.2Adalanguagedomainforcommercialavionics
equipment
3.0DESIGNRECOMMENDATIONS
3.1Introduction
3.2Designprinciples
3.2.1Abstraction
3.2.2Informationhiding
3.2.3Modularity
3.3Dataabstractionusingtypes
3.3.1Userdefineddatatypes
3.3.2Subtypes
3.3.3Derivedtypes
3.3.4Enumerationtypes
3.3.5Typeswithrangeconstraints
3.3.6Typeswithaccuracyconstraints
3.3.7Accesstypes
3.4Activityabstraction
3.4.1Overloading
3.4.2Genericunits
3.4.3Subprogramunits
3.4.4Controlflow
3.4.5Objectcreationandrelease
3.5Encapsulation
3.5.1Packages
3.5.2Tasks
3.5.3Privatetypes
3.6Portabilityissues
3.7Efficiencyissues
4.0FORMATRECOMMENDATIONS
4.1Introduction
4.2Standardstyle
4.3Declarations
4.4Lexicalorderingofprogramunits
4.4.1Lexicalorderingofsubprogramcomponents
4.4.2Lexicalorderingofnestedpackagecomponents
4.4.3Taskdeclarations
4.5Adasourcefilenaming
4.6ApplicationofWITHandUSE
4.7Namedassociation
5.0CODERECOMMENDATIONS
5.1Introduction
5.2Controlflow
5.2.1Selection
5.2.2Iteration
5.3Numericalprecision
5.4Storagemanagement
5.5Resourceallocation
5.6Adaprogrammingsupportenvironment
5.6.1Texteditor
5.6.2Adacompiler
5.6.3Linker/loader
5.6.4Librarymanager
5.6.5Symbolicdebugger
6.0TESTRECOMMENDATIONS
6.1Introduction
6.2Analyticalactivities
6.3Testingactivities
6.4Verificationoftherun-timelibrary
6.5Testingtools
7.0PRAGMAS
7.1Introduction
7.2PragmaCONTROLLED
7.3PragmaINLINE
7.4PragmaINTERFACE
7.5PragmaOPTIMIZE
7.6PragmaPACK
7.7PragmaPRIORITY
7.8PragmaSUPPRESS
7.9PragmaSYSTEM_NAME,STORAGE_UNITandMEMORY_SIZE
7.10Interruptoptimizationpragmas
8.0ATTRIBUTES
8.1Introduction
8.2AttributeP'ADDRESS
8.3AttributeP'COUNT
9.0COMPILETIMEPROCESSING
9.1Staticexpressions
9.2Generics
10.0TASKS
10.1Introduction
10.2Adalanguageversusassemblyfortaskmanagement
10.3Dynamictaskallocation
10.4Taskschedulingandpriorities
10.5DELAYstatement
10.6SELECTstatement
11.0EXCEPTIONSANDERRORHANDLING
11.1Useofexceptionsanderrorhandling
12.0REPRESENTATIONS
12.1Introduction
12.2Lengthclauses
12.3Enumerationrepresentationclauses
12.4Recordrepresentationclauses
12.5Addressclauses
12.6Exampleuseofrecordrepresentationandlength
clauses
13.0PREDEFINEDUNITS
13.1ThepackageSYSTEM
13.2ProcedureUNCHECKED_DEALLOCATION
13.3FunctionUNCHECKED_CONVERSION
14.0USEOFOTHERLANGUAGES
14.1Introduction
14.2Waivers
14.3Useofassemblycode
14.4Useofotherhigh-orderlanguages
15.0COMPILERISSUES
15.1Introduction
15.2Compilationorder
15.3Compilervalidation
15.3.1Derivedcompilers
15.3.2UnvalidatedAdalanguagecompilers
15.4Qualityandperformance
16.0RUNTIMEISSUES
APPENDICES
AGlossary
BNeedforanavionicslanguagestandard
CAdalanguage
DRecommendedAdafeaturesforavionics
ESampledatatypedeclarations
FStylisticrecommendations
GUseoftheAdaprogramminglanguageinflight
simulators Abstract
Gives guidance on how Ada programming language is used in commercial avionics applications. Meant to give guidelines to the airframe manufacturers, airlines, flight simulator manufacturers, compiler vendors and avionics suppliers.