In-place updates in the presence of control operators

  • Authors:
  • Sandip K. Biswas

  • Affiliations:
  • Department of CIS, University of Pennsylvania, Philadelphia, PA

  • Venue:
  • LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents a formal account of the concept of in-place updates in purely functional languages. In purely functional languages, updates of abstract objects involve creating duplicates of these objects. This paper reviews static conditions, which, if satisfied by &lgr;-terms, guarantee that, even if updates are performed in-place, the purely functional semantics is retained. These static conditions, however, fail to guarantee the requisite safety in the presence of control operators like callcc and throw. The conditions are hence augmented by another condition which is defined on the operational semantics. Here we statically verify the satisfiability of a conservative approximation of this condition by data-flow analysis on CPS-terms. Also a significant class of programs is identified for which the condition holds even without data-flow analysis.