Concert/C: supporting distributed programming with language extensions and a portable multiprotocol runtime

We describe the design and implementation of the Concert/C compiler and runtime. We describe solutions to the problems of (1) how to extend a language without compromising the use of legacy source and object code and tools, (2) how to extract language-neutral interface information from native language type declarations, (3) how to make function pointers into first-class values transmissable over a network while retaining runtime compatibility with plain C, and (4) how to interoperate with multiple RPC and messaging protocols, selecting protocols at runtime, with little sacrifice of efficiency.<<ETX>>

[1]  Robert A. Hummel,et al.  Distributed Bayesian object recognition , 1993, Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.

[2]  Joshua S. Auerbach,et al.  Concert/C: A Language for Distributed Programming , 1994, USENIX Winter.

[3]  S. A. Yemini,et al.  High-Level Language Support for Programming Distributed Systems J. S. Auerbach D. F. Bacon A. P. Goldberg G. S. Goldszmidt A. S. Gopal M. T. Kennedy A. R. Lowry J. R. Russell W. Silverman R. E. Strom , 1992 .

[4]  Joshua S. Auerbach,et al.  The Concert Signature Representation: IDL as Intermediate Language , 1994, Workshop on Interface Definition Languages.

[5]  R. Strom,et al.  NIL: An integrated language and system for distributed programming , 1983, SIGPLAN '83.

[6]  Michael B. Jones,et al.  Mach and Matchmaker: kernel and language support for object-oriented distributed systems , 1986, OOPLSA '86.

[7]  Daniel M. Yellin,et al.  High-level language support for programming distributed systems , 1991, Proceedings of the 1992 International Conference on Computer Languages.

[8]  Ian Parsons Evaluation of distributed communication systems , 1993, CASCON.

[9]  Yi-Hsiu Wei,et al.  CONCERT: a high-level-language approach to heterogeneous distributed systems , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[10]  Gregory R. Andrews,et al.  Synchronizing Resources , 1981, TOPL.

[11]  Daniel M. Yellin,et al.  Hermes - a language for distributed computing , 1991, Prentice Hall series in innovative technology.

[12]  Henri E. Bal,et al.  Programming languages for distributed computing systems , 1989, CSUR.

[13]  Brian N. Bershad,et al.  A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems , 1987, IEEE Transactions on Software Engineering.

[14]  Nicholas Carriero,et al.  Applications experience with Linda , 1988, PPoPP 1988.

[15]  Richard F. Rashid,et al.  Mach and Matchmaker: kernel and language support for object-oriented distributed systems , 1986, OOPSLA 1986.

[16]  K. Mani Chandy The composition of concurrent programs , 1989, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[17]  Vaidy S. Sunderam,et al.  PVM: A Framework for Parallel Distributed Computing , 1990, Concurr. Pract. Exp..

[18]  Nicholas Carriero,et al.  Applications experience with Linda , 1988, PPEALS '88.

[19]  Barbara Liskov,et al.  Distributed programming in Argus , 1988, CACM.

[20]  Isidore Rigoutsos,et al.  FLASH: a fast look-up algorithm for string homology , 1993, Proceedings of IEEE Conference on Computer Vision and Pattern Recognition.

[21]  T. Bloom,et al.  Communications in the Mercury system , 1988, [1988] Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences. Volume II: Software track.

[22]  Paul J. Leach,et al.  Network Computing System Reference Manual , 1990 .

[23]  Phillip B. Gibbons A Stub Generator for Multilanguage RPC in Heterogeneous Environments , 1987, IEEE Transactions on Software Engineering.

[24]  Robert E. Strom,et al.  NIL: An integrated language and system for distributed programming , 1983, ACM SIGPLAN Notices.

[25]  Gail E. Kaiser,et al.  An Information Retrieval Approach For Automatically Constructing Software Libraries , 1991, IEEE Trans. Software Eng..

[26]  Larry Carter,et al.  Distrbution and Abstract Types in Emerald , 1987, IEEE Transactions on Software Engineering.