Comilation of a Highly Parallel Actor-Based Language

Hal is a High-level Actor-based Language. Hal supports a number of communication mechanisms, local synchronization constraints, inheritance, and restricted forms of reflection. This paper discusses some issues in compiling Hal. Specifically, we describe three source-level transformations used by the compiler for Hal. Two of the transformations translate RPC-style message sending into asynchronous message sending. The third transformation performs code motion to optimize the implementation of replacement behavior. This optimization results in the reduction of object code size as well as execution time.

[1]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[2]  Dennis G. Kafura,et al.  Garbage collection of actors , 1990, OOPSLA/ECOOP '90.

[3]  Gul A. Agha,et al.  Distributed Execution of Actor Programs , 1991, LCPC.

[4]  Carolyn L. Talcott,et al.  Towards a Theory of Actor Computation , 1992, CONCUR.

[5]  Andrew A Chien,et al.  Concurrent Aggregates (CA): an Object-Orinted Language for Fine- Grained Message-Passing Machines , 1990 .

[6]  Peter de Jong,et al.  Compilation into actors , 1986, OOPWORK.

[7]  Nicholas Carriero,et al.  Linda in context , 1989, CACM.

[8]  Oscar Nierstrasz,et al.  Viewing object as patterns of communicating agents , 1990, OOPSLA/ECOOP '90.

[9]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[10]  Charles L. Seitz,et al.  Cantor User Report: Version 2.0 , 1987 .

[11]  Paul Hudak,et al.  ORBIT: an optimizing compiler for scheme , 1986, SIGPLAN '86.

[12]  Wilf R. LaLonde,et al.  Inside Smalltalk (Volume 1) , 1990 .

[13]  Lutz Priese,et al.  Fairness , 1988, Bull. EATCS.

[14]  Gul A. Agha,et al.  HAL: A High-Level Actor Language and Its Distributed Implementation , 1992, ICPP.

[15]  Vineet Singh,et al.  Inheritance and synchronization with enabled-sets , 1989, OOPSLA '89.

[16]  Ken Kennedy,et al.  Automatic translation of FORTRAN programs to vector form , 1987, TOPL.

[17]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[18]  Ken Kennedy,et al.  Compiling Fortran D for MIMD distributed-memory machines , 1992, CACM.

[19]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[20]  Constantine D. Polychronopoulos,et al.  The structure of parafrase-2: an advanced parallelizing compiler for C and FORTRAN , 1990 .

[21]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[22]  Paul Hudak,et al.  Conception, evolution, and application of functional programming languages , 1989, CSUR.

[23]  Roy H. Campbell,et al.  The Design of a Multiprocessor Operating System , 1987, C++ Workshop.

[24]  Pierre America,et al.  A parallel object-oriented language with inheritance and subtyping , 1990, OOPSLA/ECOOP '90.

[25]  C. Tomlinson,et al.  Rosette: An object-oriented concurrent systems architecture , 1988, OOPSLA/ECOOP '88.

[26]  Svend Frølund,et al.  Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages , 1992, ECOOP.

[27]  Carl Roger Manning,et al.  Acore--the design of a core actor language and its compiler , 1987 .

[28]  C. A. R. Hoare,et al.  A Theory of Communicating Sequential Processes , 1984, JACM.

[29]  David May,et al.  Communicating Process Architecture: Transputers and Occam , 1986, Future Parallel Computers.

[30]  Nalini Venkatasubramanian,et al.  Scalable Distributed Garbage Collection for Systems of Active Objects , 1992, IWMM.

[31]  米沢 明憲 ABCL : an object-oriented concurrent system , 1990 .