a calculus for assignments in higher-order languages
Imperative assignments are abstractions of recurring programming patterns in purely functional programming languages. When added to higher-order functional languages, they provide a higher-level of modularity and security but invalidate the simple substitution semantics. We show that, given an operational interpretation of a denotational semantics for such a language, it is possible to design a two-level extension of the &lgr; u -calculus. This calculus provides a location-free rewriting semantics of the language and offers new possibilities for reasoning with assignments. The upper level of the calculus factors out all the steps in a reduction sequence which must be in a linear order; the lower level allows a partial ordering of reduction steps.
assignment language abstraction program pattern functional programming functional languages modular secure semantic interpretation denotational semantics design extensibility rewrite reasoning factor reduction sequence order partial ordering locatability