A runtime representation for Ada variables and types

  • Authors:
  • Andy Hisgen;David Alex Lamb;Jonathan Rosenberg;Mark Sherman

  • Affiliations:
  • Carnegie-Mellon University, Pittsburgh, Pa.;Carnegie-Mellon University, Pittsburgh, Pa.;Carnegie-Mellon University, Pittsburgh, Pa.;Carnegie-Mellon University, Pittsburgh, Pa.

  • Venue:
  • SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on Ada programming language
  • Year:
  • 1980

Quantified Score

Hi-index 0.00

Visualization

Abstract

The type and subtype facilities of the Ada programming language permit some subtype information to be determined dynamically. This subtype information requires a runtime representation, and its dynamic nature influences the representation of variables. In this paper, we first review Ada's types and subtypes to identify some of those aspects which affect runtime representation. We then present the particular representation scheme which is used in the CHARRETTE Ada implementation. The scheme is straightforward and consistent in that a variable is represented the same way independently of where it appears, whether it is on the stack, on the heap, or a component of another variable. The design treats Ada's discriminants and discriminant constraints as a form of parameterized types, where the parameterization permits different instances of a type to have different variants and different sizes for array fields. Composition of such parameterized types is supported. We explain how several Ada operations are handled by our particular representation. We briefly discuss some alternative approaches to Ada representation, comparing them to our design.