Lambda calculus with explicit recursion
Information and Computation
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Dynamic rebinding for marshalling and update, with destruct-time ?
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
The call-by-need lambda calculus
Journal of Functional Programming
A Calculus for Dynamic Reconfiguration with Low Priority Linking
Electronic Notes in Theoretical Computer Science (ENTCS)
Mixin modules for dynamic rebinding
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
A Calculus of Components with Dynamic Type-Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
Computational Soundness of a Call by Name Calculus of Recursively-scoped Records
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
We present a simple calculus, called R-calculus (for ''reconfiguration''), intended to provide a kernel model for a computational paradigm in which standard execution (that is, execution of a single computation described by a fragment of code) can be interleaved with operations at the meta-level which can manipulate in various ways the context in which this computation takes place. Formally, this is achieved by introducing as basic terms of the calculus configurations, which are, roughly speaking, pairs consisting of an (open, mutually recursive) collection of named components and a term representing a program running in the context of these components. The R-calculus has been originally developed as a formal model for programming-in-the large, where computations correspond to applications running in some context of software components, and operations at the meta-level correspond to the possibility of dynamically loading, updating or in general manipulat- ing these software components without stopping the application. However, the calculus can also encode programming-in-the-small issues, because configurations combine the features of lambda- abstractions (first-class functions), records, environments with mutually recursive definitions, and modules. We state confluence of the calculus and define a call-by-need strategy which leads to a generalization, including reconfiguration features, of call-by-need lambda-calculi.