ERC32 Ada

Ada 95 Reference Manual Supplement

Edited by

Chris Nettleton

License

ERC32 Ada is commercial non-proprietary software distributed under the terms of the GNU Public license. Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this document under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this document into another language, under the above conditions for modified versions.

Acknowledgements

ERC32 Ada is based on technology originally developed by the GNAT team at New York University and now maintained by Ada Core Technologies, Inc., and includes software from the GNU C compiler, debugger and binary utilities developed by and on behalf of the Free Software Foundation, Inc., Cambridge, Massachusetts.

The chapters on advice, attributes, characteristics, compatibility, and pragmas are based on text from the GNAT Reference Manual, Version 3.11.


Table of Contents
About This Manual
Audience
Organization
Related Documents
Reader's Comments
Documentation Conventions
1. Language-Related Issues
1.1. Overview
1.2. Section 2: Lexical Elements
1.3. Section 3: Declarations and Types
1.3.1. Uninitialized Variables
1.3.2. Enumeration Types
1.3.3. Integer Types
1.3.4. Floating Point Types
1.3.5. Fixed Point Types
1.4. Section 4: Names and Expressions
1.4.1. Section 4.8: Allocators
1.4.2. Section 4.5: Operators
1.5. Section 5: Statements
1.6. Section 6: Subprograms
1.7. Section 7: Packages
1.8. Section 8: Visibility Rules
1.9. Section 9: Tasks and Synchronization
1.9.1. type Duration
1.9.2. Shared Variables
1.10. Section 10: Program Structure and Compilation Issues
1.11. Section 11: Exceptions
1.12. Section 12: Generic Units
1.13. Section 13: Representation Issues
1.13.1. Definitions from the predefined package System
1.13.2. The type Address
1.14. Input-Output
1.15. Annex A: Predefined Language Environment
1.16. Annex B: Interface to Other Languages
1.17. Annex C: Systems Programming
1.18. Annex D: Real-Time Systems
1.19. Annex E: Distributed Systems
1.20. Annex F: Information Systems
1.21. Annex G: Numerics
1.22. Annex H: Safety and Security
1.23. Annex J: Obsolescent Features
1.24. Annex K: Language-Defined Attributes
1.25. Annex L: Language-Defined Pragmas
2. Implementation-Defined Characteristics
2.1. Section 1: General
2.2. Section 2: Lexical Elements
2.3. Section 3: Declarations and Types
2.4. Section 4: Expressions
2.5. Section 9: Tasking
2.6. Section 10: Program Structure and Compilation Issues
2.7. Section 11: Exceptions
2.8. Section 13: Representation Issues
2.9. Appendix A: Predefined Language Environment
2.10. Appendix B: Interface to Other Languages
2.11. Appendix C: Systems Programming
2.12. Appendix D: Real-Time Systems
2.13. Appendix E: Distributed Systems
2.14. Appendix F: Information Systems
2.15. Annex G: Numerics
2.16. Appendix H: Safety and Security
3. Implementation-Defined Pragmas
3.1. pragma Ada_83
3.2. pragma Ada_95
3.3. pragma Annotate
3.4. pragma Assert
3.5. pragma C_Pass_By_Copy
3.6. pragma Common_Object
3.7. pragma Complex_Representation
3.8. pragma Component_Alignment
3.9. pragma Debug
3.10. pragma Export_Function ...
3.11. pragma Export_Object ...
3.12. pragma Export_Procedure ...
3.13. pragma Export_Valued_Procedure
3.14. pragma Ident
3.15. Import_Function ...
3.16. pragma Import_Object
3.17. pragma Import_Procedure
3.18. pragma Import_Valued_Procedure ...
3.19. pragma Interface_Name
3.20. pragma Linker_Alias
3.21. pragma Linker_Section
3.22. pragma Normalize_Scalars
3.23. pragma Machine_Attribute ...
3.24. pragma No_Return
3.25. pragma Psect_Object
3.26. Pragma Pure_Function
3.27. pragma Share_Generic
3.28. pragma Source_File_Name
3.29. pragma Source_Reference
3.30. pragma Subtitle
3.31. pragma Suppress_All
3.32. pragma Title
3.33. pragma Unchecked_Union
3.34. pragma Unimplemented_Unit
3.35. pragma Unsuppress
3.36. pragma Warnings
3.37. pragma Weak_External
4. Implementation-Defined Attributes
5. Implementation Advice
5.1. Section 1: General
5.2. Section 2: Lexical Elements
5.3. Section 3: Declarations and Types
5.4. Section 9: Tasking
5.5. Section 10: Program Structure and Compilation Issues
5.6. Section 11: Exceptions
5.7. Section 13: Representation Issues
5.8. Annex A: Predefined Language Environment
5.9. Annex B: Interface to Other Languages
5.10. Annex C: Systems Programming
5.11. Annex D: Real-Time Systems
5.12. Annex E: Distributed Systems
5.13. Annex F: Information Systems
5.14. Annex G: Numerics
6. Metrics
6.1. Section D.5: Dynamic Priorities
6.2. Section D.6: Preemptive Abort
6.3. Section D.8: Monotonic Time
6.4. Section D.9: Delay Accuracy
6.5. Section D.12: Other Optimizations and Determinism Rules
7. Implementation-Defined Library Packages
7.1. The Package XGC
7.2. The Package Ada.Interrupts.Names
7.3. The Package Text_IO
8. Machine Code Insertions
8.1. Constraints for Operands
8.1.1. Simple Constraints
8.1.2. Multiple Alternative Constraints
8.1.3. Constraint Modifier Characters
8.1.4. ERC32 Constraints
9. Compatibility Guide
9.1. Compatibility with Ada 83
9.2. Compatibility with Other Ada 95 Systems
9.3. Representation Clauses
A. Restrictions and Profiles
B. The Predefined Library
Index