On the time required for retention

  • Authors:
  • D. M. Berry;L. Chirica;J. B. Johnston;D. F. Martin;A. Sorkin

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • HLLCA '73 Proceedings of the ACM-IEEE symposium on High-level-language computer architecture
  • Year:
  • 1973

Quantified Score

Hi-index 0.00

Visualization

Abstract

In block structured languages, upon entry to a block or procedure, storage is allocated for the identifiers declared in the block or procedure. There are two choices as to when to deallocate this storage: 1) upon exit from the block or procedure, 2) when the storage becomes inaccessible. In the deletion strategy, storage for blocks and procedures is allocated and deallocated in a last-in-first-out order. Therefore, storage for blocks and procedures can be managed efficiently on a pushdown stack. However, deletion gives rise to dangling references in the use of pointer, label, and procedure values. Retention is both more secure and more general in that it eliminates all possibility of dangling references, and it therefore removes all restrictions on the use of pointer, label, and procedure values. This paper develops an implementation of generalized (single task) block structured languages with compile time type determinability, which is capable of handling full retention but which keeps the run time cost of many well-stacked programs near that of the same program on a typical ALGOL 68 style implementation.