Implementing Remote Evaluation
IEEE Transactions on Software Engineering
An efficiency preorder for processes
Acta Informatica
Semantics for communication primitives in a polymorphic language
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A calculus of mobile processes, I
Information and Computation
Reducing cross domain call overhead using batched futures
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
On reduction-based process semantics
Selected papers of the thirteenth conference on Foundations of software technology and theoretical computer science
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Extensible security architectures for Java
Proceedings of the sixteenth ACM symposium on Operating systems principles
Dynamic class loading in the Java virtual machine
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Reducing transfer delay using Java class file splitting and prefetching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A formal specification of Java class loading
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Typing a multi-language intermediate code
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Types and programming languages
Types and programming languages
Syntactic control of interference
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A Theory of Objects
Java Examples in a Nutshell
Mobile objects as mobile processes
Information and Computation - IFIP TCS2000
Language Primitives and Type Discipline for Structured Communication-Based Programming
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
An Object Calculus for Asynchronous Communication
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
ICALP '92 Proceedings of the 19th International Colloquium on Automata, Languages and Programming
Constraining Inference in an Object-Based Design Model
TAPSOFT '93 Proceedings of the International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Graph Types for Monadic Mobile Processes
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Mobile objects "must" move safely
FMOODS '02 Proceedings of the IFIP TC6/WG6.1 Fifth International Conference on Formal Methods for Open Object-Based Distributed Systems V
Jumbo: run-time code generation for Java and its applications
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Formalization of generics for the .NET common language runtime
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Channel dependent types for higher-order mobile processes
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scoped Types for Real-Time Java
RTSS '04 Proceedings of the 25th IEEE International Real-Time Systems Symposium
Formalising Java RMI with explicit code mobility
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Optimising Java RMI programs by communication restructuring
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
Flexible models for dynamic linking
ESOP'03 Proceedings of the 12th European conference on Programming
A comparison of object-oriented languages in software engineering
ACM SIGSOFT Software Engineering Notes
A theory of distributed aspects
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Compositional reasoning about shared futures
SEFM'12 Proceedings of the 10th international conference on Software Engineering and Formal Methods
Hi-index | 5.24 |
This paper presents an object-oriented, Java-like core language with primitives for distributed programming and explicit code mobility. We apply our formulation to prove the correctness of several optimisations for distributed programs. Our language captures crucial but often hidden aspects of distributed object-oriented programming, including object serialisation, dynamic class downloading and remote method invocation. It is defined in terms of an operational semantics that concisely models the behaviour of distributed programs using machinery from calculi of mobile processes. Type safety is established using invariant properties for distributed runtime configurations. We argue that primitives for explicit code mobility offer a programmer fine-grained control of type-safe code distribution, which is crucial for improving the performance and safety of distributed object-oriented applications.