Compiler Construction for Digital Computers
Compiler Construction for Digital Computers
A model for implementing Euclid modules and type templates
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
An Ada code generator for VAX 11/780 with Unix
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
Rationale for the design of the Ada programming language
ACM SIGPLAN Notices - Rationale for the deisgn of the Ada programming language
Report on the programming language Euclid
ACM SIGPLAN Notices
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
An Ada code generator for VAX 11/780 with Unix
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on Ada programming language
An Ada code generator for VAX 11/780 with Unix
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on Ada programming language
Hi-index | 0.00 |
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.