Abstract
This article investigates the automatic distribution and parallelization of object-oriented programs. We formally define a set of properties that allow to turn standard objects into active objects to be distributed on a network (local or wide area).
We first explain a principle of seamless sequential, multi-threaded and distributed programming using Java, that enhances code reuse and code distribution. We exhibit conditions on the graph of objects to detect activable objects and transform a sequential program into a distributed or parallel program using active objects. Finally, we explain how these properties were implemented in order to check them statically on a given Java program.
Chapter PDF
Similar content being viewed by others
References
Gul A. Agha. ACTORS: A Model of Concurrent Computation in Distributed Systems. MIT Press, 1986.
P. S. Almeida. Balloon types: controlling sharing of states in data types. In Proc. ECOOP), LNCS 1241, pages 32–59. Springer Verlag, 1997.
P. America. Inheritance and subtyping in a parallel object-oriented language. In Proc. ECOOP ‘87, LNCS 276, pages 234–242, Paris, France, June 1987.
I. Attali, D. Caromel, and S. O. Ehmety. About the automatic continuations in the Eiffel// Model. In Proc. of the 1998 Int. Conf. on Parallel and Distributed Processing Techniques and Applications (PDPTA’98), July 1998.
I. Attali, D. Caromel, and S. O. Ehmety. Formal Properties of the Eiffel// Model. In Parallel and Distributed Objects. Hermes Science Publications, 1999.
I. Attali, D. Caromel, and R. Guider. Static analysis of Java for distributed and parallel programming rapport de recherche 3634, INRIA, March 1999.
I. Attali, D. Caromel, and S. Lippi. From a specification to an equivalence proof in object-oriented parallelism. In FMPPTA’99: Modeling and Proving, volume 1586. Springer, LNCS, 1999.
Utpal Banerjee. Dependence analysis for supercomputing. Kluwer Academic Publishers, Boston, MA, USA, 1988.
J. K. Bennett. The design and implementation of Distributed Smalltalk. In Proc. OOPSLA ‘87, ACM SIGPLAN Notices 22 (12), pages 318–330, December 1987.
A. J. Bernstein. Analysis of programs for parallel processing. IEEE Transactions on Electronic Computers, 15: 757–762, October 1966.
D. Caromel. Concurrency and reusability: From sequential to parallel. Journal of Object-Oriented Programming, 3(3), 1990.
D. Caromel. Towards a Method of Object-Oriented Concurrent Programming. Communications of the ACM, 36 (9): 90–102, September 1993.
D. Caromel, F. Belloncle, and Y. Roudier. The C++// Language. In Parallel Programming using C++, pages 257–296. MIT Press, 1996.
D. Caromel, W. Klauser, and J. Vayssiere. Towards Seamless Computing and Metacomputing in Java. Concurrency Practice and Experience, 10 (11–13): 1043–1061, November 1998.
D. R. Chase, M. Wegman, and F. K. Zadeck. Analysis of pointer and structures. In Proc. PLDI90, volume 25(6), pages 296–310. ACM, june 1990.
P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs. In Proc. POPL77, pages 238–252. ACM press, 1977.
M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive inter-procedural points-to analysis in the presence of function pointers. In Proc. PLDI94, pages 242–256, 1994.
P. Feautrier. Dataflow analysis of scalar and array references. International Journal of Parallel Programming, 20 (1): 23–52, February 1991.
P. Feautrier. Toward automatic partitioning of arrays for distributed memory computers. In Proceedings of the 1993 ACM International Conference on Supercomputing, Tokyo, Japan, July 1993.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison Wesley, Reading, MA, 1995.
R. Ghiya and L. J. Hendren. Connection analysis: A practical inter-procedural heap analysis for C. Lecture Notes in Computer Science, 1033, 1996.
Rakesh Ghiya and Laurie J. Hendren. Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C. In Proc. POPL’96, pages 1–15, jan. 1996.
J. Gosling, B. Joy, and G. Steele. The Java Language Specification. Addison-Wesley, 1996.
V. A. Guarna. A technique for analysing pointer and structure references in parallel restructuring compilers. In Proceedings of the International Conference on Parallel Processing, volume II, pages 212–220, 1988.
L. Hendren, C. Donawa, M. Emami, G. Gao, Justiani, and B. Sridharan. Designing the McCAT compiler based on a family of structured intermediate representations. In Proc. of the 5th International Workshop on Languages and Compilers for Parallel Computing, LNCS 757, 1993.
L. J. Hendren and A. Nicolau. Parallelizing programs with recursive data structures. IEEE Transactions on Parallel and Distributed Systems, 1 (1): 35–47, 1990.
S. Hodges and C. B. Jones. Non-interference properties of a concurrent object-based language: Proofs based on an operational semantics. In Object Orientation with Parallelism and Persistance. Kluwer Academic Publishers, 1996.
J.R. Larus and P. N. Hilfinger. Detecting conflicts between structure accesses. In Proc. PLDI88, pages 21–34, june 1988.
X. Liu and D. Walker. Confluence of processes and systems of objects. In Proc. TAPSOFT95 6th International Joint Conference CAAP/FASE, 1995.
O. Nierstrasz. Active objects in hybrid. In Proc. OOPSLA ‘87, ACM SIGPLAN Notices 22 (12), pages 243–253, 1987.
M. C. Rinard and P. C. Diniz. Commutativity analysis: a new analysis technique for parallelizing compilers. TOPLAS, 19 (6): 942–991, 1997.
M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In Proc. POPL99, pages pp. 105–118, San Antonio, TX, Jan. 1999.
Mooly Sagiv, Thomas Reps, and Reinhard Wilhelm. Solving shape-analysis problems in languages with destructive updating. ACM TOPLAS, 20 (1): 1–50, January 1998.
M. Tokoro and K. Takashio Toward languages and formal systems for distributed computing. In Proc. of the ECOOP ‘83 Workshop on Object-Based Distributed Programming, LNCS 791, pages 93–110, 1994.
Y. Yokote and M. Tokoro. The design and implementation of Concurrent Smalltalk. In Proc. OOPSLA ‘86, ACM SIGPLAN Notices, 21 (11), pages 331–340, November 1986.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 IFIP International Federation for Information Processing
About this paper
Cite this paper
Attali, I., Caromel, D., Guider, R. (2000). A Step Toward Automatic Distribution of Java Programs. In: Smith, S.F., Talcott, C.L. (eds) Formal Methods for Open Object-Based Distributed Systems IV. FMOODS 2000. IFIP Advances in Information and Communication Technology, vol 49. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35520-7_7
Download citation
DOI: https://doi.org/10.1007/978-0-387-35520-7_7
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4757-1018-2
Online ISBN: 978-0-387-35520-7
eBook Packages: Springer Book Archive