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.

Open PDF

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

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Air Force
  • Compilers
  • Computer Programming
  • Computer Programs
  • Computers
  • Debugging
  • Engineering
  • High Level Languages
  • Inclusions
  • Language
  • Law
  • Machine Languages
  • Object Code
  • Operating Systems
  • Software Development
  • Standards
  • Universities

Fields of Study

  • Computer science

Readers

  • Government and Public Administration Law.
  • Software Verification and Validation.
  • Systems Analysis and Design