Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Programming languages for distributed computing systems

Published: 01 September 1989 Publication History

Abstract

When distributed systems first appeared, they were programmed in traditional sequential languages, usually with the addition of a few library procedures for sending and receiving messages. As distributed applications became more commonplace and more sophisticated, this ad hoc approach became less satisfactory. Researchers all over the world began designing new programming languages specifically for implementing distributed applications. These languages and their history, their underlying principles, their design, and their use are the subject of this paper.
We begin by giving our view of what a distributed system is, illustrating with examples to avoid confusion on this important and controversial point. We then describe the three main characteristics that distinguish distributed programming languages from traditional sequential languages, namely, how they deal with parallelism, communication, and partial failures. Finally, we discuss 15 representative distributed languages to give the flavor of each. These examples include languages based on message passing, rendezvous, remote procedure call, objects, and atomic transactions, as well as functional languages, logic languages, and distributed data structure languages. The paper concludes with a comprehensive bibliography listing over 200 papers on nearly 100 distributed programming languages.

References

[1]
ABRAMSKY, S., AND BORNAT, R. 1983. Pascal-m: A language for loosely coupled distributed systems. In Distributed Computing Systems, Y. Paker and J.-P. Verjus, Eds. Academic Press, London, pp. 163-189.]]
[2]
ACKERMAN, W. B. 1982. Data flow languages. Computer 15, 2 (Feb.), 15-25.]]
[3]
ADAMO, j.-M. 1982. Pascal+CSP, merging Pascal and CSP in a parallel processing oriented language. In Proceedings of the 3rd International Conference on Distributed Computing Systems (Miami/Ft. Lauderdale, Fla., Oct. 18-22). IEEE, New York, pp. 542-547.]]
[4]
AGHA, G. 1986. An overview of actor languages. SIG- PLAN Not. (ACM) 21, 10 (Oct.), 58-67.]]
[5]
AHUJA, S., CARRIERO, N., AND GELERNTER, D. 1986. Linda and friends. Computer 19, 8 (Aug.), 26-34.]]
[6]
AHUJA, S., CARRIERO, N., GELERNTER, D.-, AND KRISHNASWAMY, V. 1988. Matching language and hardware for parallel computation in the Linda machine. IEEE Trans. Comput. C-37, 8 (Aug.), 921-929.]]
[7]
AKSIT, M., AND TRIPATHI, A. 1988. Data abstraction mechanisms in SINA/st. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1988. SIGPLAN Not. (ACM) 23, 11 (Nov.), 267-275.]]
[8]
ALMES, G. T. 1986. The impact of language and system on remote procedure call design, in Proceedings of the 6th International Conference on Distributed Computing Systems (Cambridge, Mass., May 19-23). IEEE, New York, pp. 414-421.]]
[9]
ALMES, G. T., BLACK, A. P., LAZOWSKA, E. D., AND NOE, J. D. 1985. The Eden system: A technical review. IEEE Trans. Softw. Eng. SE-11, i (Jan.), 43-59.]]
[10]
AMBLER, A. L., GOOD, D. I., BROWNE, J. C., BURGER, W. F., COHEN, R. M., HOCH, C. G., AND WELLS, R. E. 1977. GYPSY: A language for specification and implementation of verifiable programs. SIGPLAN Not. (ACM) 12, 3 (Mar.), 1-10.]]
[11]
AMERICA, P. 1987. POOL-T: A parallel objectoriented language. In Object-Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, Eds. MIT Press, Cambridge, Mass., pp. 199-220.]]
[12]
ANDREWS, G. R. 1981. Synchronizing resources. A CM Trans. Program. Lang. Syst. 3, 4 (Oct.), 405-430.]]
[13]
ANDREWS, G. R., 1982. The distributed programming language SR--Mechanisms, design and implementation. Softw. Prac. Exper. 12, 8 (Aug.), 719-753.]]
[14]
ANDREWS, G. R., AND OLSSON, R. A. 1986. The evolution of the SR programming language. Distrib. Comput. 1, 3 (July), 133-149.]]
[15]
ANDREWS, G. R., AND SCHNEIDER, F. B. 1983. Concepts and notations for concurrent programming. ACM Comput. Surv. 15, I (Mar.),3-43.]]
[16]
ANDREWS, G. R., OLSSON, R. A., COFFIN, M., EL- SHOrt, I., NILSEN, $., PURDIN, T., AND TOWN- SEND, G. 1988. An overview of the SR language and implementation. ACM Trans. Program. Lang. Syst. 10, I (Jan.), 51-86.]]
[17]
ATHAS, W. C., AND SEITZ, C. L. 1988. Multicomputers: Message-passing concurrent computers. Computer 21, 8 (Aug.), 9-24.]]
[18]
BAALBERGEN, E. H. 1988. Design and implementation of parallel make. Comput. Syst. 1, 2 (Spring), 135-158.]]
[19]
BACKUS, J. 1978. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs, Commun. ACM 21, 8 (Aug.), 613-641.]]
[20]
BAGRODIA, R., AND CHANDY, K. M. 1985. A microkernel for distributed applications. In Proceedings of the 5th International Conference on Distributed Computing Systems (Denver, Colo., May 13-17). IEEE, New York, pp. 140-149.]]
[21]
BAIARDI, r., RICCI, r., AND VANNESCHI, M. 1984. Static type checking of interprocess communication in ECSP. In Proceedings of the SIGPLAN 84 Symposium on Compiler Construction. SIG- PLAN Not. (ACM) 19, 6 (June), 290-299.]]
[22]
BAL, H. E. 1989. The shared data-object model as a paradigm for programming distributed systems. Ph.D. dissertation, Dept. of Mathematics and Computer Science, Vrije Universiteit, Amsterdam, the Netherlands.]]
[23]
BAL, H. E., AND TANENBAUM, A. S. 1988. Distributed programming with shared data. In Proceedings of the IEEE CS I988 International Conference on Computer Languages (Miami, Fla., Oct. 9-13). IEEE, New York, pp. 82-91.]]
[24]
BAL, H. $., VAN RENESSE, R., AND TANENBAUM, A. S. 1987. Implementing distributed algorithms using remote procedure calls. In Proceedings of the AFIPS National Computer Conference (Chicago, ill., June 15-18). AFIPS Press, Reston, Va., pp. 499-506.]]
[25]
BALL, J. E., WILLIAMS, G. J., AND LOW, J. R. 1979. Preliminary ZENO language description. SIGPLAN Not. (ACM) 14, 9 (Sept.), 17-34.]]
[26]
BENNETT, J. K. 1987. The design and implementation of distributed Smalltalk. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1987. SIGPLAN Not. (ACM) 22, 12 (Dec.), 318-330.]]
[27]
BERNSTEIN, A. J. 1980. Output guards and nondeterminism in "Communicating Sequential Processes''. A CM Trans. Program. Lang. Syst. 2, 2 (Apr.), 234-238.]]
[28]
BIRMAN, K. P., AND JOSEPH, T. A. 1987. Reliable communication in the presence of failures. ACM Trans. Comput. Syst. 5, 1 (Feb.), 47-76.]]
[29]
BmRELL, A. D., AND NELSON, B. J. 1984. Implementing remote procedure calls. A CM Trans. Comput. Syst. 2, i (Feb.), 39-59.]]
[30]
BLACK, A., HUTCHINSON, N., JUL, E., AND LEVY, H. 1986. Object structure in the Emerald system. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1986. SIG- PLAN Not. (ACM) 21, 11 (Nov.), 78-86.]]
[31]
BLACK, A. P., HUTCHINSON, N. C., McCORD, B. C., AND RAJ, R. K. 1984. EPL Programmer's Guide. Univ. of Washington, Seattle, June.]]
[32]
BLACK, A., HUTCHINSON, N., JUL, E., LEVY, H., AND CARTER, L. 1987. Distribution and abstract types in Emerald. IEEE Trans. Softw. Eng. SE- 13, 1 (Jan.), 65-76.]]
[33]
BLOCH, J. J. 1988. The Camelot library. In Guide to the Camelot Distributed Transaction Facility: Release 1, A. Z. Spector and K. R. Swedlow, Eds. Carnegie-Mellon University, Pittsburgh, Pc., pp. 29-62.]]
[34]
BORG, A., BAUMBACK, J., AND GLAZER, S. 1983. A message system supporting fault tolerance. In Proceedings of the 9th Symposium on Operating Systems Principles (Bretton Woods, N.H., Oct. 10-13). ACM-SIGOPS, New York, pp. 90-99.]]
[35]
BRINCH HANSEN, P. 1973. Operating System Principles. Prentice-Hall, Englewood Cliffs, N.J.]]
[36]
BRINCH HANSEN, P. 1975. The programming language concurrent pascal. IEEE Trans. Softw. Eng. SE-1, 2 (June), 199-207.]]
[37]
BRINCH, HANSEN, P. 1978. Distributed processes: A concurrent programming concept. Commun. ACM 21, 11 (Nov.), 934-941.]]
[38]
BRINCH HANSEN, P. 1987. Joyce--A programming language for distributed systems. Softw. Pract. Exper. 17, I (Jan.), 29-50.]]
[39]
BURNS, A. 1988. Programming in Occam 2. Addison- Wesley, Wokingham, England.]]
[40]
BURNS, A., AND DAVIES, G. 1988. Pascal-FC: A language for teaching concurrent programming. SIG- PLAN Not. (ACM) 23, 1 (Jan.), 58-66.]]
[41]
BURNS, A., LISTER, A. M., AND WELLING, A. J. 1987. A review of Ada tasking. Lecture Notes in Computer Science, Vol. 262. Springer-Verlag, Berlin.]]
[42]
BURTON, F. W. 1984. Annotations to control parallelism and reduction order in the distributed evaluation of functional programs. A CM Trans. Program. Lang. Syst. 6, 2 (Apr.), 159-174.]]
[43]
CARPENTER, B. E., AND CAILLIAU, R. 1984. Experience with remote procedure calls in a realtime control system. Softw. Pract. Exper. 14, 9 (Sept.), 901-907.]]
[44]
CARRIERO, N. 1987. The implementation of tuple space machines. Res. Rep. 567, Ph.D. dissertation, Dept. of Computer Science, Yale Univ., New Haven, Conn., Dec.]]
[45]
CARRIERO, N., AND GELERNTER, D. 1986. The S/Net's Linda kernel. ACM Trans. Comput. Syst. 4, 2 (May), 110-129.]]
[46]
CARRIERO, N., GELERNTER, D., AND LEICHTER, J. 1986. Distributed data structures in Linda. In Proceedings of the 13th A CM Symposium on Principles of Programming Languages (St. Petersburg, Fla., Jan. 13-15). ACM, New York, pp. 236-242.]]
[47]
CLARK, K. L. 1988. PARLOG and its applications. IEEE Trans. Softw. Eng. SE-14, 12, (Dec.), 1792- 1804.]]
[48]
CLARK, K. L., AND GREGORY, $. 1981. A relational language for parallel programming. In Proceedings of the 1981 A CM Conference on Functional Programming Languages and Computer A rchitecture (Portsmouth, N.H., Oct.). ACM, New York, pp. 171-178.]]
[49]
CLARK, K. L., AND GREGORY, S. 1985. Notes on the implementation of PARLOG. J. Logic Program. 2, 1 (Apr.), 17-42.]]
[50]
CLARK, K. L., AND GREGORY, $. 1986. PARLOG: Parallel programming in logic. ACM Trans. Program. Lang. Syst. 8, I (Jan.), 1-49.]]
[51]
CLARK, K. L., MCCABE, F. G., AND GREGORY, S. 1982. IC-PROLOG language features. In Logic Programming, S.-A. Tarnlund, Ed. Academic Press, London, pp. 253-266.]]
[52]
CMELIK, R. F., 1986. Concurrent Make: The Design and Implementation of a Distributed Program in Concurrent C. AT&T Bell Laboratories, Murray Hill, N.J.]]
[53]
CMELIK, R. F., GEHANI, N. H., AND ROOME, W. D. 1986. Experience with Distributed Versions of Concurrent C. AT&T Bell Laboratories, Murray Hill, N.J. (Also to appear in IEEE Trans. Softw. Eng.)]]
[54]
CMELiK, R. F., GEHANI, N. H., AND ROOME, W. D. 1987. Fault Tolerant Concurrent C: A Tool for Writing Fault Tolerant Distributed Programs. AT&T Bell Laboratories, Murray Hill, N.J.]]
[55]
CODISH, M., AND SHAPIRO, E. 1986. Compiling OR- parallelism into AND-parallelism. In Proceedings of the 3rd International Conference on Logic Programming (London, July 14-18), Springer- Verlag, Berlin, pp. 283-297.]]
[56]
COOK, R. P. 1980. *MOD--A language for distributed programming. IEEE Trans. Softw. Eng. SE- 6, 6 (Nov.), 563-571.]]
[57]
COOPER, E. C. 1985. Replicated distributed programs. In Proceedings of the l Oth Symposium on Operating Systems Principles (Rosario Resort Orcas Island, Wash., Dec.). New York, ACM- SIGOPS, pp. 63-78.]]
[58]
COOPER, R. C. B., AND HAMILTON, K. G. 1988. Preserving abstraction in concurrent programming. IEEE Trans. Softw. Eng. SE-14, 2 (Feb.), 258-263.]]
[59]
Cox, I. J., AND GEHANI, N. H. 1986. Concurrent programming and robotics. AT&T Bell Laboratories, Murray Hill, N.J.]]
[60]
CROOKES, D., AND ELDER, J. W. G. 1984. An experiment in language design for distributed systems. Softw. Pract. Exper. 14, 10 (Oct.), 957-971.]]
[61]
DANNENBERG, R. B. 1981. AMPL: Design, implementation and evaluation of a multiprocessing language. Carnegie-Mellon University. Pittsburgh, Pc.]]
[62]
DAVIS, A. L., AND ROBISON, S. V. 1985. The architecture of the FAIM-1 symbolic multiprocessing system. In 9th International Joint Conference on Artificial Intelligence (Los Angeles, Calif., Aug. 13-18). pp. 32-38.]]
[63]
DAY, M. S. 1987. Replication and reconfiguration in a distributed mail repository. TR-376, MIT Laboratory for Computer Science, Cambridge, Mass., Apr.]]
[64]
DEPARTMENT OF DEFENSE, U.S. 1983. Reference manual for the Ada programming language. ANSI/MIL-STD-1815A, DoD,Washington, D.C., Jan.]]
[65]
DETLEFS, D. L., HERLIHY, M. P., AND WING, J. M. 1988. Inheritance of synchronization and recovcry properties in Avalon/C++. Computer 21, 12 (Dec.), 57-69.]]
[66]
DIJKSTR^, E. W. 1975. Guarded commands, nondeterminacy, and formal derivation of programs. Commun. ACM 18, 8 (Aug.), 453-457.]]
[67]
EICHHOLZ, S. 1987. Parallel programming with ParMod. In Proceedings of the 1987 International Conference on Parallel Processing (St. Charles, Ill., Aug. 17-21). Penn State University, pp. 377-380.]]
[68]
ELRAD, T., AND MAYMIR-DUCHARME, F. 1986. Distributed languages design: Constructs for controlling preferences, in Proceedings of the 1986 International Conference on Parallel Processing (St. Charles, Ill., Aug. 19-22). Penn State University, pp. 176-183.]]
[69]
ERICSON, L. W. 1982. DPL-82: A language for distributed processing. In Proceedings of the 3rd International Conference on Distributed Computing Systems (Miami/Ft. Lauderdale, Fla., Oct.). pp. 526-531.]]
[70]
FELDMAN, J. A. 1979. High level programming for distributed computing. Commun. A CM 22, 6 (June), 353-368.]]
[71]
FINKEL, R., AND MANBER, U. 1987. DIB--A distributed implementation of backtracking. A CM Trans. Program. Lang. Syst. 9, 2 (Apr.), 235-256.]]
[72]
FISHER, A. J. 1986. A multi-processor implementation of Occam. Softw. Pract. Exper. 16, 10 (Oct.), 875-892.]]
[73]
FORMAN, I. R. 1986. On the design of large distributed systems. In Proceedings of the IEEE CS 1986 International Conference on Computer Languages (Miami, Fla., Oct. 27-30). IEEE, New York, pp. 84-95.]]
[74]
FOSTER, I. 1988. Parallel implementation of PAR- LOG. In Proceedings of the International Conference on Parallel Processing ( Vol. II) (St. Charles, Ill., Aug. 15-19). Penn State University, pp. 9-16.]]
[75]
FOSTER, I., GREGORY, $., RINGWOOD, G., AND SATOH, K. 1986. A sequential implementation of PAR- LOG. In Proceedings of the 3rd International Conference on Logic Programming (London, July 14-18). Springer-Verlag, Berlin, pp. 149-156.]]
[76]
GABRIEL, R. P., AND MCCARTHY, J. 1984. Queuebased multi-processing Lisp. In Proceedings of the 1984 A CM Symposium on Lisp and Functional Programming (Austin, Tex., Aug. 6-8). ACM, New York, pp. 25-43.]]
[77]
GABRIEL, R. P., AND MCCARTHY, J. 1988. QLISP. In Parallel Computation and Computers for Artificial Intelligence, J. Kowalik, Ed. Kluwer Academic Publishers, Deventer, The Netherlands, pp. 63-89.]]
[78]
GAMMAGE, N. D., KAMEL, R. F., AND CASEY, L. M. 1987. Remote rendezvous. Softw. Pract. Exper. 17, 10 (Oct.), 741-755.]]
[79]
GEHANI, $. H. 1984a. Ada: Concurrent Programming. Prentice-Hall, Englewood Cliffs, N.J.]]
[80]
GEHANI, N. H. 1984b. Broadcasting sequential processes (BSP). IEEE Trans. Softw. Eng. SE-IO, 4 (July), 343-351.]]
[81]
GEHANI, N. H. 1987. Message Passing: Synchronous versus Asynchronous. AT&T Bell Laboratories, Murray Hill, N.J.]]
[82]
GEHANi, N. H., AND CARGILL, T. A. 1984. Concurrent programming in the Ada language: The polling bias. Softw. Pract. Exper. 14, 5 (May), 413-427.]]
[83]
GEHANI, N. H., AND ROOME, W. D. 1986a. Concurrent C. Softw. Pract. Exper. 16, 9 (Sept.), 821-844.]]
[84]
Gr. HANI, N. H., AND ROOME, W. D. 1986b. Concurrent C++ : Concurrent Programming with Class(es). AT&T Bell Laboratories, Murray Hill, N.J.]]
[85]
GEH^NI, N. H., AND ROOME, W. D. 1988. Rendezvous facilities: Concurrent C and the Ada language. IEEE Trans. Softw. Eng. SE-14, 11 (Nov.), 1546-1553.]]
[86]
GEH^NI, N. H., AND ROOME, W. D. 1989. The Concurrent C Programming Language. Silicon Press, Summit, N.J.]]
[87]
GELERNTER, D. 1984. A note on systems programming in Concurrent Prolog. In Proceedings of the International Symposium on Logic Programming (Atlantic City, N.J., Feb. 6-9). IEEE, New York, pp. 76-82.]]
[88]
GELERNTER, n. 1985. Generative communication in Linda. A CM Trans. Program. Lang. Syst. 7, 1 (Jan.), 80-112.]]
[89]
GELERNTER, D., AND CARRiERO, N. 1986. Linda on hypercube multicomputers. In Proceedings of the 1985 SIAM Conference (Knoxville, Tenn.). Society for Industrial and Applied Mathematics, Philadelphia, Pa., pp. 45-55.]]
[90]
GELERNTER, D., AND CARRIERO, N. 1988. Applications experience with Linda. In Proceedings of PPEALS 1988. SIGPLAN Not. (ACM) 23, 9 (Sept.), 173-187.]]
[91]
GELERNTER, D., JAGANNATHAN, S., AND LONDON, W. 1987a. Environments as first class objects. In Proceedings of the 14th A CM Symposium on Principles of Programming Languages (Munich, West Germany, Jan. 21-23). ACM, New York.]]
[92]
GELERNTER, D., JAGANNATHAN, S., AND LONDON, T. 1987b. Parallelism, persistence andmeta-cleanliness in the symmetric Lisp interpreter. In Proceedings of the Symposium on Interpreters and Interpretive Techniques. SIGPLAN Not. (ACM) 22, 7 (July), 274-282.]]
[93]
GESCHKE, C. M., JR., MORRIS, J. H., AND SATTER- THWAITE, r. $. 1977. Early experience with Mesa. Commun. ACM 20, 8 (Aug.), 540-553.]]
[94]
GOLDBERG, A., AND ROBSON, D. 1983. Smalltalk-80: The Language and Its Implementation. Addison- Wesley, Reading, Mass.]]
[95]
GOLDBERG, B., AND HUDAK, P. 1986. Alfalfa: Distributed graph reduction on a hypercube multiprocessor. Lecture Notes in Computer Science, vol. 279 (Proceedings of the Santa Fe Graph Reduction Workshop). Springer-Verlag, New York, pp. 94-113.]]
[96]
GRAHAM, P. C. J. 1985. Using BINS for interprocess communication. SIGPLAN Not. (ACM) 20, 2 (Feb.), 32-41.]]
[97]
GREOORY, S. 1987. Parallel Logic Programming in PARLOG. Addison-Wesley, Wokingham, England.]]
[98]
GREIF, I., SELIGER, R., AND WEIHL, W. 1986. Atomic data abstractions in a distributed collaborative editing system, in Proceedings of the 13th A CM Symposium on Principles of Programming Languages (St. Petersburg, Fla., Jan.). ACM, New York, pp. 160-172.]]
[99]
GRIMSHAW, A. S., AND LIU, J. W. S. 1987. Mentat: An object-oriented macro data flow system. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1987. SIG- PLAN Not. (ACM) 22, 12 (Dec.), 35-47.]]
[100]
HALSTEAD, R. H., JR. 1985. Multilisp: A language for concurrent symbolic computation. A CM Trans. Program. Lang. Syst. 7, 4 (Oct.), 501-538.]]
[101]
HAMILTON, K. G. 1984. A remote procedure call system. Tech. Rep. 70, Ph.D. dissertation, Computer Laboratory, Univ. of Cambridge, Cambridge, U.K., Dec.]]
[102]
HERLIHY, M., AND LISKOV, B. 1982. A value transmission method for abstract data types. A CM Trans. Program. Lang. Syst. 4, 4 (Oct.), 527-551.]]
[103]
HEWITT, C. 1977. Viewing control structures as patterns of passing messages. Artif. Inte!l. 8, 3 (June), 323-364.]]
[104]
HOARE, C. A. R. 1978. Communicating sequential processes. Commun. ACM 21, 8 (Aug.), 666-677.]]
[105]
HOARE, C. A. R. 1981. The emperor's old clothes. Commun. ACM 24, 2 (Feb.), 75-83.]]
[106]
HOARE, C. A. R. 1985. Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs, N.J.]]
[107]
HOLT, R. C. 1982. A short introduction to Concurrent Euclid. SIGPLAN Not. (ACM) 17, 5 (May), 60-79.]]
[108]
HOURI, A., AND SHAPIRO, E. 1986. A sequential abstract machine for Flat Concurrent Prolog. Rep. CS86-20, Dept. of Computer Science, The Weizmann Institute of Science, Rehovot, Israel, July.]]
[109]
HUDAK, P. 1986. Para-functional programming. Computer 19, 8 (Aug.), 60-70.]]
[110]
HUDAK, P. 1988. Exploringparafunctional programming: Separating the what from the how. IEEE Softw. 5, 1 (Jan.), 54-61.]]
[111]
HUDAK, P., AND SMITH, L. 1986. Para-functional programming: A paradigm for programming multiprocessor systems. In Proceedings of the 13th A CM Symposium on Principles of Programming Languages (St. Petersburg, Fla., Jan. 13-15). ACM, New York, pp. 243-254.]]
[112]
HULL, M. E. C., AND DONNAN, G. 1986. Contextually communicating sequential processes--a software engineering approach. Softw. Pract. Exper. 16, 9 (Sept.), 845-864.]]
[113]
HUNT, J. G., 1979. Messages in typed languages. SIGPLAN Not. (ACM) I4, 1 (Jan.), 27-45.]]
[114]
HUR, J. H., AND CHON, K. 1987. Overview of a parallel object-oriented language CLIX. Lecture Notes in Computer Science, Vol. 276 (Proceedings of the European Conference on Object-Oriented Programming). Springer-Verlag, Berlin, pp. 265-273.]]
[115]
HUTCHINSON, N. C. 1987. Emerald: An object-based language for distributed programming. Tech. Rep. 87-01-01, Ph.D. dissertation, Dept. of Computer Science, Univ. of Washington, Seattle, Jan.]]
[116]
INMOS LTD. 1984. Occam Programming Manual. Prentice-Hall, Englewood Cliffs, N.J.]]
[117]
ISHIKAWA, Y., AND TOKORO, M. 1987. Orient84/K: An object-oriented concurrent programming language for knowledge representation. In Object- Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, Eds. MIT Press, Cambridge, Mass., pp. 159-198.]]
[118]
JAZAYERI, M., GHEZZI, C., HOFFMAN, D., MIDDLE- TON, D., AND SMOTHERMAN, M. 1980. CSP/80: A language for communicating sequential processes. In Proceedings of IEEE COMPCON Fall 1980 (New York, Sept.). IEEE, New York, pp. 736-740.]]
[119]
JONES, A. K., AND SCHWARZ, P. 1980. Experience using multiprocessor systems--A status report. ACM Comput. Surv. 12, 2 (June), 121-165.]]
[120]
JOSEPH, T. A., AND BIRMAN, K. P. 1986. Low cost management of replicated data in fault-tolerant distributed systems. ACM Trans. Comput. Syst. 4, 1 (Feb.), 54-70.]]
[121]
JOUVELOT, P., AND GIFFORD, D. K. 1988. The FX- 87 interpreter. In Proceedings of the IEEE CS 1988 International Conference on Computer Languages (Miami, Fla., Oct. 9-13). IEEE, New York, pp. 65-72.]]
[122]
JUL, E. 1988. Object mobility in a distributed objectoriented system. Tech. Rep. 88-12-06, Ph.D. dissertation, Univ. of Washington, Seattle, Dec.]]
[123]
JUL, E., LEVY, H., HUTCHINSON, N., AND BLACK, A. 1988. Fine-grained mobility in the Emerald system. ACM Trans. Comput. Syst. 6, 1 (Feb.), 109-133.]]
[124]
KAASHOEK, M. F., AND BAL, H. E. 1988. An evaluation of the distributed data structure paradigm in Linda. IR- 173, Dept. of Mathematics and Computer Science, Vrije Universiteit, Amsterdam, Dec.]]
[125]
KAHN, K., TRIBBLE, E. D., MILLER, M. S., AND BOBROW, D. G. 1986. Objects in concurrent logic programming languages. Proceedings of Object-Oriented Programming Systems, Languages and Applications 1986. SIGPLAN Not. (ACM) 21, 11 (Nov.), 242-257.]]
[126]
VAN KATWIJK, J. VAN 1987. The Ada compiler. Ph.D. dissertation, Dept. of Mathematics and Computer Science, Delft Univ. of Technology, Delft, The Netherlands, Sept.]]
[127]
KERNiGHAN, B. W., AND RITCHIE, D. M. 1978. The C Programming Language. Prentice-Hall, Englewood Cliffs, N.J.]]
[128]
KERRtDGE, J., AND SIMPSON, D. 1986. Communicating parallel processes. Softw. Pract. Exper. 16, I (Jan.), 63-86.]]
[129]
KiEBURTZ, R. A., AND SiLBERSCHATZ, A. 1979. Comments on "Communicating Sequential Processes.'' A CM Trans. Program. Lang. Syst. 1, 2 (Oct.), 218-225.]]
[130]
KOCH, A., ANO MAIB^UM, T. S. E. 1982. A message oriented language for system applications. In Proceedings of the 3rd International Conference on Distributed Computing Systems (Fort Lauderdale, Fla., Oct. 18-22). IEEE, New York, pp. 824-832.]]
[131]
KRAMER, J., AND MAGEE, J. 1985. Dynamic configuration for distributed systems. IEEE Trans. Softw. Eng. SE-I1, 4 (Apr.), 424-436.]]
[132]
KRUATRACHUE, B., AND LEWIS, T. 1988. Grain size determination for parallel processing. IEEE Softw. 5, i (Jan.), 23-32.]]
[133]
KUNG, H. T. 1982. Why systolic architectures? Computer 15, 1 (Jan.), 37-46.]]
[134]
LAMPSON, B. W. 1981. Atomic transactions. In DIS- tributed Systems--Architecture and Implementation, B. W. Lampson, Ed. Springer-Verlag, New York, pp. 246-265,]]
[135]
LEBLANC, R. J., AND MACCABE, A. B. 1982. The design of a programming language based on connectivity networks. In Proceedings of the 3rd international Conference on Distributed Computing Systems (Fort Lauderdale, Fla., Oct. 18-22). IEEE, New York, pp. 532-541.]]
[136]
LEBLANC, R. J., ^NO WILKES, T. 1985. Systems programming with objects and actions. In Proceedings of the 5th International Conference on Distributed Computing Systems (Denver, Colo., May 13-17). IEEE, New York, pp. 132-139.]]
[137]
LEBL^NC, T. J., ^NO COOK, P. An analysis of language models for high-performance communication in local-area networks. SiGPLAN Not. (ACM) 18, 6 (June), 65-72.]]
[138]
LESSER, V., SERRAIN, D., AND BONAR, J. 1979. PCL--A process oriented job control language. In Proceedings of the 1st International Conference on Distributed Computing Systems (Huntsville, Ala., Oct. 1-5). IEEE, New York, pp. 315-329.]]
[139]
LI, C. 1988. Concurrent programminglanguage Lisptalk. SIGPLAN Not. (ACM) 23, 4 (Apr.), 71-80.]]
[140]
LI, C.-M., ^NO LIU, M. T. 1981. Dislang: A distributed programming language/system. In Proceedings of the 2nd International Conference on Distributed Computing Systems (Paris, France, Apr. 8-10). IEEE, New York, pp. 162-172.]]
[141]
LI, $., AND HUDAK, P. 1986. Memory coherence in shared virtual memory systems. In Proceedings of the 5th Annual A CM Symposium on Principles of Distributed Computing (Calgary, Canada, Aug. 13-18). ACM, New York, pp. 229-239.]]
[142]
LIEBERMAN, H. 1987. Concurrent object-oriented programming in Act 1. In Object-Oriented Concurrent Programming. A. Yonezawa and M. Tokoro, Eds. MIT Press, Cambridge, Mass., pp. 9-36.]]
[143]
LISKOV, B. 1979. Primitives for distributed computing. In Proceedings of the 7th Symposium on Operating Systems Principles (Pacific Grove, Calif., Dec. 10-12). ACM-SiGOPS, New York, pp. 33-42.]]
[144]
LISKOV, B. 1982. On linguistic support for distributed programs. IEEE Trans. Softw. Eng. SE-8, 3 (May), 203-210.]]
[145]
LISKOV, B. 1984. Overview of the Argus language and system. Programming Methodology Group Memo 40, MIT Laboratory for Computer Science, Cambridge, Mass., Feb.]]
[146]
LISKOV, B. 1988. Distributed programming in Argus. Commun. ACM 31, 3 (Mar.), 300-312.]]
[147]
LISKOV, B., ^NO SCHEIrLER, R. 1983. Guardians and actions: Linguistic support for robust, distributed programs. A CM Trans. Program. Lang. Syst. 5, 3 (July), 381-404.]]
[148]
LISKOV, B., CURTIS, D., JOHNSON, P., AND SCHEIFLER, R. 1987. Implementation of Argus. In Proceedings of the 11th Symposium on Operating Systems Principles (Austin, Tex., Nov. 8-11). ACM-SIGOPS, New York, pp. 111-122.]]
[149]
LISKOV, B., SNYDER, A., ATKINSON, R., AND SCHAF- FERT, C. 1977. Abstraction mechanisms in CLU. Commun. ACM 20, 8 (Aug.), 564-576.]]
[150]
Lucco, S. E., 1987. Parallel programming in a virtual object space. In Proceedings of Object- Oriented Programming Systems, Languages and Applications 1987. SiGPLAN Not. (ACM) 22, 12 (Dec.), 26-34.]]
[151]
LUJUN, S., AND ZHON(;XIU, S. 1987. An objectoriented programming language for developing distributed software. SIGPLAN Not. (ACM) 22, 8 (Aug.), 51-56.]]
[152]
MARSLAND, T. A., OLAFSSON, M., AND SCHAEFFER, J. 1986. Multiprocessor tree-search experiments. In Advances in Computer Chess 4, D. F. Beal, Ed. Pergamon Press, Oxford, pp. 37-51.]]
[153]
MATSUOKA, S., AND KAWAI, S. 1988. Using tuple space communication in distributed objectoriented languages, in Proceedings of Object- Oriented Programming Systems, Languages and Applications 1988. SIGPLAN Not. (ACM) 23, 11 (Nov.), 276-284.]]
[154]
MAY, D. 1983. Occam. SIGPLAN Not. (ACM) 18, 4 (Apr.), 69-79.]]
[155]
MAY, D., ^NO SHEPHERD, R. 1984. The transputer implementation of Occam. In Proceedings of the International Conference on Fifth Generation Computer Systems 1984 (Tokyo, Japan, Nov. 6-9), pp. 533-541.]]
[156]
MEHROTRA, P., AND ROSENDALE, J. VAN. 1985. The Blaze language: A parallel language for scientific programming. Parallel Comput. 5, 3 (Nov.), 339-361.]]
[157]
MIEROWSKY, C., TAYLOR, S., SHAPIRO, E., LEVY, J., ^NO SAFRA, M. 1985. The design and implementation of Flat Concurrent Prolog. Rep. CS85- 09, Dept. of Computer Science, The Weizmann Institute of Science, Rehovot, Israel, July.]]
[158]
MILEWSKI, J. 1984. Loglan implementation of the AMPL message-passing system. SIGPLAN Not. (ACM) 19, 9 (Sept.), 21-29.]]
[159]
MOSS, J. E. B. 1981. Nested transactions: An approach to reliable distributed computing. Tech. Rep. MIT/LCS/TR-260, Ph.D. dissertation, MiT Laboratory for Computer Science, Cambridge, Mass.]]
[160]
MUNDIE, D. A., AND FISHER, D. A. 1986. Parallel processing in Ada. Computer 19, 8 (Aug.), 20-25.]]
[161]
MYERS, W. 1987. Ada: First users--Pleased; Prospective users--Still hesitant. Computer 20, 3 (Mar.), 68-73.]]
[162]
NEHMER, J., HABAN, D., MATTERN, F., WYBRANIETZ, D., AND ROMBACH, H. D. 1987. Key concepts in the INCAS multicomputer project. IEEE Trans. Softw. Eng. SE-13, 8 (Aug.), 913-923.]]
[163]
NELSON, B. J. 1981. Remote procedure call. Rep. CMU-CS-81-119, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., May.]]
[164]
NG, K.-W., AND LI, W. 1984. GDPL--A generalized distributed programming language. In Proceedings of the 4th International Conference on Distributed Computing Systems (San Francisco, Calif., May 14-18). IEEE, New York, pp. 69-78.]]
[165]
NIERSTRASZ, O. M. 1987. Active objects in hybrid. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1987. SIG- PLAN Not. (ACM) 22, 12 (Dec.), 243-253.]]
[166]
OGmARA, T., KAJmARA, Y., NACANO, S., AND ARI- SAWA, M. 1986. Concurrency introduction to an object-oriented language system ondine, in 3rd National Conference Record A-5-1. Japan Society for Software Science and Technology, Japan.]]
[167]
OHKI, M., TAKEUCHI, A., AND FURUKAWA, $. 1987. An object-oriented programming language based on the parallel logic programming language KL1. In Proceedings of the 4th International Conference on Logic Programming (Melbourne, Australia (May 25-29). MIT Press, Cambridge, Mass., pp. 894-909.]]
[168]
PAPERT, S. 1981. Mindstorms: Children, Computers and Powerful Ideas. Basic Books, New York.]]
[169]
PATNIAK, L. M., AND BADRINATH, B. R. 1984. Implementation of CSP-S for description of distributed algorithms. Comput. Lang. 9, 3, 193-202.]]
[170]
PEREIRA, L. M., MONTEIRO, L., CUNHA, J., AND APARICIO, J. $. 1986. Delta Prolog: A distributed backtracking extension with events. In Proceedings of the 3rd International Conference on Logic Programming (London, July 14-19). Springer-Verlag, Berlin, pp. 69-83.]]
[171]
POWELL, M. L., AND PRESOTTO, D. L. 1983. Publishing: A reliable broadcast communication mechanism. In Proceedings of the 9th Symposium on Operating Systems Principles (Bretton Woods, N.H., Oct.). ACM-SIGOPS, New York, pp. 100-109.]]
[172]
RANKA, S., WON, Y., AND SAHNI, S. 1988. Programming a hypercube multicomputer. IEEE Softw. 5, 5 (Sept.), 69-77.]]
[173]
REPPY, J. H. 1988. Synchronous operations as firstclass values. In Proceedings of the SIGPLAN 88 Conference on Programming Language Design and Implementation (Atlanta, Ga., June 22-24). ACM, New York, pp. 250-259.]]
[174]
REYNOLDS, T. J., BEAUMONT, A. J., CHENG, A. S. K., DELGADO-RANNAURO, $. A., AND SPACES, L. A. 1988. BRAVE--A parallel logic language for artificial intelligence. Future Generations Cornput. Syst. 4, I (Aug.), 69-75.]]
[175]
RINGWOOD, G. A. 1988. PARLOG86 and the dining logicians. Commun. ACM 31, 1 (Jan.), 10-25.]]
[176]
RIZK, A., AND HALSALL, F. 1987. Design and implementation of a C-based language for distributed real-time systems. SIGPLAN Not. (ACM) 22, 6 (June), 83-96.]]
[177]
ROBINSON, J. A. 1965. A machine-oriented logic based on the resolution principle. J. ACM 12, 1 (Jan.), 23-41.]]
[178]
ROMAN, G.-C., CUNNINGHAM, H. C., AND EHLERS, M. E. 1988. A shared dataspace language supporting large-scale concurrency. In Proceedings of the 8th International Conference on Distributed Computing Systems (San Jose, Calif., June 13-17). iEEE, New York, pp. 265-272.]]
[179]
ROMAN, G.-C., EHLERS, M. E., CUNNINGHAM, H. C., AND LYKINS, R. H. 1987. Toward comprehensive specification of distributed systems. In Proceedings of the 7th International Conference on Distributed Computing Systems (Berlin, Sept. 21-25). IEEE, New York, pp. 282-289.]]
[180]
ROOMS, W. D. 1986. Discrete event simulation in Concurrent C. AT&T Bell Laboratories, Murray Hill, N.J.]]
[181]
ROPER, T. J., AND BARTER, J. 1981. A communicating sequential process language and implementation. Softw. Pract. Exper. 11, 11 (Nov.), 1215-1234.]]
[182]
RUSSELL, R. M. 1978. The CRAY-1 computer system. Commun. ACM 21, I (Jan.), 63-72.]]
[183]
SAFRA, S., AND SHAPIRO, E. 1986. Meta interpreters for real. In Proceedings of IFIP Congress '86 (Dublin, Ireland, Sept.). IFIP, pp. 271-278.]]
[184]
SATO, M. 1987. Quty: A concurrent language based on logic and function. In Proceedings of the 4th International Conference on Logic Programming (Melbourne, Australia, May 25-29). MIT Press, Cambridge, Mass., pp. 1034-1056.]]
[185]
SCOTT, M. L. 1985. Design and implementation of a distributed systems language. Tech. Rep. 596, Ph.D. dissertation, Computer Science Dept., Univ. of Wisconsin at Madison, May.]]
[186]
SCOTT, M. L. 1986. The interface between distributed operating system and high-level programming language. In Proceedings of the 1,986 International Conference on Parallel Processing (St. Charles, Ill., Aug. 19-22). Penn State University, pp. 242-249.]]
[187]
SCOTT, M. L. 1987. Language support for looselycoupled distributed programs. IEEE Trans. Softw. Eng. SE-13, i (Jan. 1987), 88-103.]]
[188]
ScoTT, M. L., AND COX, A. L. 1987. An empirical study of message-passing overhead, in Proceedings of the 7th International Conference on Distributed Computing Systems (Berlin, Sept. 21-25). IEEE, New York, pp. 536-543.]]
[189]
SEITZ, C. L. 1985. The cosmic cube. Commun. ACM 28, 1 (Jan.), 22-33.]]
[190]
SHAPIRO, E. 1983. A subset of Concurrent Prolog and its interpreter. ICOT TR-003, Institute for New Generation Computer Technology, Tokyo, Japan, Feb.]]
[191]
SHAPIRO, E. 1984. Systolic programming: A paradigm of parallel processing. In Proceedings of International Conference on Fifth Generation Computer Systems 1984 (Tokyo, Japan, Nov. 6-9). pp. 458-471.]]
[192]
SHAPIRO, E. 1986. Concurrent Prolog: A progress report. Computer 19, 8 (Aug.), 44-58.]]
[193]
SHAPIRO, E. 1987. Concurrent Prolog: Collected Papers. MIT Press, Cambridge, Mass.]]
[194]
SHAPmO, E., AND MIr. ROWSI(~, C. 1984. Fair, biased, and self-balancing merge operators: Their specifications and implementation in Concurrent Prolog. J. New Generation Comput. 2, 3, 221-240.]]
[195]
SHArmO, E., AND SAFRA, S. 1986. Multiway merge with constant delay in Concurrent Prolog. J. New Generation Comput. 4, 3, 211-216.]]
[196]
SHAPIRO, E., AND TAKEUCHI, A. 1983. Object-oriented programming in Concurrent Prolog. J. New Generation Comput. 1, 1, 25-48.]]
[197]
SILBERSCHATZ, A. 1984. Cell: A distributed computing modularization concept. IEEE Trans. Softw. Eng. SE-iO, 2 (Mar.), 178-185.]]
[198]
SILVERMAN, W., HIRSCH, M., HOURI, A., AND SHAP- IRO, E. 1986. The Logix system user manual. Rep. CS86-21, Dept. of Computer Science, The Weizmann Institute of Science, Rehovot, Israel.]]
[199]
SLOMAN, U., AND KRAMER, J. 1987. Distributed Systems and Computer Networks. Prentice-Hall, Englewood Cliffs, N.J.]]
[200]
SMITH-THOMAS, B. 1986. Managing I/O in concurrent programming: The Concurrent C window manager. AT&T Bell Laboratories, Murray Hill, N.J.]]
[201]
SPECTOR, A. Z., BLOCH, J. J., DANIELS, D. S., DRAVES, R. P., DUCHAMP, D., EPPINGER, J. L., MENEES, S. G., AND THOMPSON, D. S. 1986. The Camelot project. Rep. CMU-CS-86- 166, Dept. of Computer Science, Carnegie-Mellon Univ., Pittsburgh, Pa., Nov.]]
[202]
STAUNSTRUP, J. 1982. Message passing communication versus procedure call communication. Softw. Pract. Exper. 12, 3, (March) 223-234.]]
[203]
STROM, R. r. 1986. A comparison of the objectoriented and process paradigms. SIGPLAN Not. (ACM) 21, 10 (Oct.), 88-97.]]
[204]
STROM, R. E., AND YEMINI, $. 1983. NIL: An integrated language and system for distributed programming. SIGPLAN Not. (ACM) 18, 6 (June), 73-82.]]
[205]
STROM, R. E., AND YEMINI, $. 1984. The NIL distributed systems programming language: A status report. In Proceedings of the NSF/SRC Seminar Semantics of Concurrency (Pittsburgh, Pa., July 9-11). Springer-Verlag, New York, pp. 512-523.]]
[206]
STROM, R. E., AND YEMINI, S. 1985a. Synthesizing distributed and parallel programs through optimistic transformations. In Proceedings of the 1985 International Conference on Parallel Processing (St. Charles, Ill. Aug. 20-23). Penn State University, pp. 632-641.]]
[207]
STROM, R. E., AND YEMINI, $. 1985b. Optimistic recovery in distributed systems. A CM Trans. Comput. Syst. 3, 3 (Aug.), 204-226.]]
[208]
STROM, R. E., AND YEMiNI, S. 1986. Typestate: A programming language concept for enhancing software reliability. IEEE Trans. Softw. Eng. SE- 12, I (Jan.), 157-171.]]
[209]
STROM, R. r., YEMINI, S., AND WEGNER, P. 1985. Viewing Ada from a process model perspective. In Proceedings of the Conference on Ada in Use (Paris, France, May 14-18). ACM, New York.]]
[210]
STROUSTRUP, B. 1986. The C++ Programming Language. Addison-Wesley, Reading, Mass.]]
[211]
SUGIMOTO, $., AGUSA, K., TABATA, K., AND OHNO, Y. 1983. A multi-processor system for Concurrent Lisp. In Proceedings of the 1983 International Conference On Parallel Processing (Bellaire, Mich.). pp. 135-143.]]
[212]
SWINEHART, D. C., ZELLWEGER, P. T., AND HAG- MANN, R. B. 1985. The structure of Cedar. In Proceedings of ACM SIGPLAN 85 Symposium on Language Issues in Programming Environments. SIGPLAN Not. (ACM) 20, 7 (July), 230-244.]]
[213]
TAKEUCHI, A., AND FURUKAWA, K. 1985. Bounded buffer communication in Concurrent Prolog. J. New Generation Comput. 3, 2, 145-155.]]
[214]
TAKEUCHI, A., AND FURUKAWA, K. 1986. Parallel logic programming languages. In Proceedings of the 3rd international Conference on Logic Programming (London, July 14-18). Springer- Verlag, Berlin, pp. 242-254.]]
[215]
TANENBAUM, A. S. 1987. Operating Systems: Design and Implementation. Prentice-Hall, Englewood Cliffs, N.J.]]
[216]
TANENBAUM, A. S., AND VAN RENESSE, R. 1985. Distributed operating systems. A CM Comput. Surv. 17, 4 (Dec.), 419-470.]]
[217]
TANENBAUM, A. $., AND VAN RENESSE, R. 1988. A critique of the remote procedure call paradigm. In Proceedings of the E UTECO 88 Conference (Vienna, Austria, Apr. 20-22). North-Holland, Amsterdam, pp. 775-783.]]
[218]
TANENBAUM, A. S., VAN STAVEREN, H., KEIZER, $. C., AND STEVENSON, J. W. 1983. A practical toolkit for making portable compilers. Commun. ACM 26, 9 (Sept.), 654-660.]]
[219]
TAYLOR, S., AV-RON, E., AND SHAPIRO, E. 1987a. A layered method for process and code mapping. J. New Generation Comput. 5, 2, 185-205.]]
[220]
TAYLOR, S., SAFRA, S., AND SHAPmO, E. 1987b. A parallel implementation of Flat Concurrent Prolog. Int. J. Parallel Program. I5, 3, 245-275.]]
[221]
TRELEAVEN, P. C., BROWNBRiDGE, D. R., AND HOP- KINS, R. P. 1982. Data-driven and demanddriven computer architectures. A CM Comput. Surv. 14, 1 (Mar.), 93-143.]]
[222]
TSUJINO, Y., ANDO, M., ARAKI, Z., AND TOKURA, N. 1984. Concurrent C: A programming language for distributed systems. Softw. Pract. Exper. 14, 11 (Nov.), 1061-1078.]]
[223]
UEDA, K. 1985. Guarded Horn clauses. ICOT TR- 103, Institute for New Generation Computer Technology, Tokyo, Japan, June.]]
[224]
VISHNUBHOTIA, P. 1988. Synchronization and scheduling in ALPS objects. In Proceedings of the 8th International Conference on Distributed Computing Systems (San Jose, Calif., June 13-19). IEEE, New York, pp. 256-264.]]
[225]
WEIHL, W., AND LiSKOV, B. 1985. Implementation of resilient, atomic data types. A CM Trans. Program. Lang. Syst. 7, 2 (Apr.), 244-269.]]
[226]
VAN WIJNGAARDEN, A., MAILLOUX, B. J., PECK, J. E. L., NOSTER, C. H. A., SINTZOFF, M., LINDSEY, C. H., MEERTENS, L. G. L. T., AND FISKER, R. G. 1975. Revised report on the algorithmic language Algol 68. Acta Inf. 5, 1-236.]]
[227]
WILKES, C. W., AND LEBLANC, R. J. 1986. Rationale for the design of Aeolus: A systems programming language for an action/object system. In Proceedings of the IEEE CS 1986 International Conference on Computer Languages (Miami, Fla., Oct.). IEEE, New York, pp. 107-122.]]
[228]
WILKES, C. T., AND LEBLANC, R. J. 1988. Distributed locking: A mechanism for constructing highly available objects. In Proceedings of the 7th Symposium on Reliable Distributed Systems (Columbus, Ohio, Oct. 10-12). IEEE, New York.]]
[229]
WIRTH, N. 1971. The programming language Pascal. Acta inf. 1, 35-63.]]
[230]
Xu, A. S. 1988. A fault4olerant network kernel for Linda. Tech. Rep. 424, MIT Laboratory for Computer Science, Cambridge, Mass., Aug.]]
[231]
YANG, R. 1988. P-Prolog: A Parallel Logic Programming Language. World Scientific Publishing Co., Singapore.]]
[232]
YANG, R., AND AISO, H. 1986. P-Prolog: A parallel logic language based on exclusive relation. In Proceedings of the 3rd International Conference on Logic Programming (London, July 14-18). Springer-Verlag, Berlin, pp. 255-269.]]
[233]
YEMINI, S. 1982. On the suitability of Ada multitasking for expressing parallel algorithms. In Proceedings of the AdaTec Conference on Ada (Arlington, Va., Oct. 6-8). ACM, New York, pp. 91-97.]]
[234]
YOKOTE, Y., AND TOKORO, M. 1986. The design and implementation of ConcurrentSmalltalk. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1986. SIG- PLAN Not. (ACM) 21, 11 (Nov.), 331-340.]]
[235]
YOKOTE, Y., AND TOKORO, M. 1987a. Concurrent programming in ConcurrentSmalltalk. In Object- Oriented Concurrent Programming, A. Yonezawa and M. Tokoro, Eds. MIT Press, Cambridge, Mass., pp. 129-158.]]
[236]
YOKOTE, Y., AND TOKORO, M. 1987b. Experience and evolution of ConcurrentSmalltalk. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1987. SIG- PLAN Not. (ACM) 22, 12 (Dec.), 406-415.]]
[237]
YONEZAWA, A., BRIOT, J.-P., AND SHIBAYAMA, E. 1986. Object-oriented concurrent programming in ABCL/1. In Proceedings of Object-Oriented Programming Systems, Languages and Applications 1986. SIGPLAN Not. (ACM) 21, 11 (Nov.), 258-268.]]
[238]
ZHONGXlU, S., AND XINING, L. 1987. CSM: A distributed programming language. IEEE Trans. Softw. Eng. SE-13, 4 (Apr.), 497-500.]]

Cited By

View all
  • (2024)A Survey of Distributed Graph Algorithms on Massive GraphsACM Computing Surveys10.1145/369496657:2(1-39)Online publication date: 10-Oct-2024
  • (2024)Emerging technologies in the event industryWorldwide Hospitality and Tourism Themes10.1108/WHATT-06-2024-012416:4(498-518)Online publication date: 20-Aug-2024
  • (2024)Real-time performance evaluation and optimization of electrical substation equipment inspection algorithm based on distributed computingInternational Journal of Low-Carbon Technologies10.1093/ijlct/ctae13619(1878-1887)Online publication date: 10-Aug-2024
  • Show More Cited By

Recommendations

Reviews

Kathleen H. V. Booth

In general, a distributed computing system is one in which more than one computer collaborates in the implementation of a calculation. In this excellent paper, the authors first suggest a more precise definition of such systems, since no consensus exists on this point. They then discuss the practical reasons that have led to their development, such as the need for decreased turnaround time and increased reliability, and give examples of some applications. The authors then discuss distributed programming—that is, the special programming techniques needed to handle such applications. Traditional sequential programming is often inadequate in situations where multiple processors are working in parallel and cooperating among themselves. The authors define the general requirements of languages for distributed programming and survey several representative examples. They draw a distinction between languages designed for systems in which the participating computers have their individual memories plus a communication network and those for systems that share a common memory. Some selection was surely needed here as the authors remark that at least 100 such languages are known to them, and more probably exist by now. The paper concludes that no obvious leaders have yet emerged among distributed programming languages. Given the state of flux in the field of hardware, this will probably be true for some time. This well-written and most valuable survey of the subject lists more than 200 references for those who wish to dig more deeply.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 September 1989
Published in CSUR Volume 21, Issue 3

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)900
  • Downloads (Last 6 weeks)121
Reflects downloads up to 06 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A Survey of Distributed Graph Algorithms on Massive GraphsACM Computing Surveys10.1145/369496657:2(1-39)Online publication date: 10-Oct-2024
  • (2024)Emerging technologies in the event industryWorldwide Hospitality and Tourism Themes10.1108/WHATT-06-2024-012416:4(498-518)Online publication date: 20-Aug-2024
  • (2024)Real-time performance evaluation and optimization of electrical substation equipment inspection algorithm based on distributed computingInternational Journal of Low-Carbon Technologies10.1093/ijlct/ctae13619(1878-1887)Online publication date: 10-Aug-2024
  • (2023)Estimating the overhead and coupling of scientific computing clustersSimulation10.1177/0037549721106419899:3(245-261)Online publication date: 1-Mar-2023
  • (2023)The Analysis of Distributed Computing Systems with Machine Learning2023 International Conference on Networking, Informatics and Computing (ICNETIC)10.1109/ICNETIC59568.2023.00020(67-70)Online publication date: May-2023
  • (2022)Detecting Missing-Permission-Check Vulnerabilities in Distributed Cloud SystemsProceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security10.1145/3548606.3560589(2145-2158)Online publication date: 7-Nov-2022
  • (2022)Emerging TechnologiesEmerging Technologies10.1007/978-3-031-07127-0_2(41-190)Online publication date: 12-Jul-2022
  • (2022)Big Data Analytics With Cloud, Fog, and Edge ComputingAdvanced Analytics and Deep Learning Models10.1002/9781119792437.ch14(325-349)Online publication date: 6-May-2022
  • (2021)Deadlock-Guided TestingIEEE Access10.1109/ACCESS.2021.30654219(46033-46048)Online publication date: 2021
  • (2018)Parallel Cost AnalysisACM Transactions on Computational Logic10.1145/327427819:4(1-37)Online publication date: 20-Nov-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media