The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Theory of Objects
A Calculus for Link-Time Compilation
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Mixin Modules in a Call-by-Value Setting
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
An Abstract Model of Java Dynamic Linking and Loading
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Equational Reasoning for Linking with First-Class Primitive Modules
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
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
Flexible models for dynamic linking
ESOP'03 Proceedings of the 12th European conference on Programming
A Calculus of Components with Dynamic Type-Checking
Electronic Notes in Theoretical Computer Science (ENTCS)
A calculus of open modules: call-by-need strategy and confluence
Mathematical Structures in Computer Science
A Calculus for Dynamic Reconfiguration with Low Priority Linking
Electronic Notes in Theoretical Computer Science (ENTCS)
A Calculus for Reconfiguration
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Dynamic rebinding is the ability of changing the definitions of names at execution time. While dynamic rebinding is clearly useful in practice, and increasingly needed in modern systems, most programming languages provide only limited and ad-hoc mechanisms, and no adequate semantic understanding currently exists. Here, we provide a simple and powerful mechanism for dynamic rebinding by means of a calculus CMSl,v of mixin modules (mutually recursive modules allowing redefinition of components) where, differently from the traditional approach, module operations can be performed after selecting and executing a module component: in this way, execution can refer to virtual components, which can be rebound when module operators are executed. In particular, in our calculus module operations are performed on demand, when execution would otherwise get stuck. We provide a sound type system, which ensures that execution never tries to access module components which cannot become available, and show how the calculus can be used to encode a variety of real-world dynamic rebinding mechanisms.