Ada 9X Project Report, A Study of Implementation-Dependent Pragmas and Attributes in Ada
Abstract
The Ada Standard describes an assortment of pragmas and attributes that a compiler must support. A compiler may add other pragmas and attributes as long as the legality of the program is not affected. This study examines implementation-dependent pragmas in existing compilers with the goal of identifying candidates for inclusion in a revised version of the language. Compiler support for language-defined pragmas is first characterized and we show that the level of support varies surprisingly between implementations. A change in the Standard's Appendix F is recommended to help remedy this problem. More than one-quarter of the implementation-defined pragmas (27%) serve to extend the functionality of pragma INTERFACE. Overall compiler uniformity would be improved by standardizing some of these extensions. A variety of implementation-defined pragmas are provided to improve program performance. Some of these pragmas yield well-defined results only if programs obey certain restrictions. The Standard should provide greater control over the use of these pragmas. In contrast to pragmas, we found very few implementation-dependent attributes, and none that seemed of sufficiently wide interest to merit inclusion in a revised version of the language.
Document Details
- Document Type
- Technical Report
- Publication Date
- Nov 01, 1989
- Accession Number
- ADA221518
Entities
People
- John B. Goodenough
- Kenneth J. Fowler
Organizations
- Carnegie Mellon University