Programming Languages for Distributed Computing Systems

H.E. Bal, J.G. Steiner, A.S. Tanenbaum

Research output: Contribution to JournalArticleAcademicpeer-review

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. © 1989, ACM. All rights reserved.
Original languageEnglish
Pages (from-to)261-322
Number of pages62
JournalACM Computing Surveys
Volume21
Issue number3
DOIs
Publication statusPublished - 1 Sep 1989

Fingerprint

Distributed computer systems
Distributed Computing
Computer programming languages
Programming Languages
Flavors
Subroutines
Bibliographies
Message passing
Distributed Programming
Data structures
Computer program listings
Distributed Applications
Distributed Systems
Communication
Rendezvous
Language
Message Passing
Parallelism
Transactions
Data Structures

Keywords

  • Distributed data structures
  • distributed languages
  • distributed programming
  • functional programming
  • languages for distributed programming
  • languages for parallel programming
  • logic programming
  • object-oriented programming
  • parallel programming

Cite this

@article{e4642faac3964d6d895707929869719a,
title = "Programming Languages for Distributed Computing Systems",
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. {\circledC} 1989, ACM. All rights reserved.",
keywords = "Distributed data structures, distributed languages, distributed programming, functional programming, languages for distributed programming, languages for parallel programming, logic programming, object-oriented programming, parallel programming",
author = "H.E. Bal and J.G. Steiner and A.S. Tanenbaum",
year = "1989",
month = "9",
day = "1",
doi = "10.1145/72551.72552",
language = "English",
volume = "21",
pages = "261--322",
journal = "ACM Computing Surveys",
issn = "0360-0300",
publisher = "Association for Computing Machinery (ACM)",
number = "3",

}

Programming Languages for Distributed Computing Systems. / Bal, H.E.; Steiner, J.G.; Tanenbaum, A.S.

In: ACM Computing Surveys, Vol. 21, No. 3, 01.09.1989, p. 261-322.

Research output: Contribution to JournalArticleAcademicpeer-review

TY - JOUR

T1 - Programming Languages for Distributed Computing Systems

AU - Bal, H.E.

AU - Steiner, J.G.

AU - Tanenbaum, A.S.

PY - 1989/9/1

Y1 - 1989/9/1

N2 - 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. © 1989, ACM. All rights reserved.

AB - 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. © 1989, ACM. All rights reserved.

KW - Distributed data structures

KW - distributed languages

KW - distributed programming

KW - functional programming

KW - languages for distributed programming

KW - languages for parallel programming

KW - logic programming

KW - object-oriented programming

KW - parallel programming

UR - http://www.scopus.com/inward/record.url?scp=0024736238&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0024736238&partnerID=8YFLogxK

U2 - 10.1145/72551.72552

DO - 10.1145/72551.72552

M3 - Article

VL - 21

SP - 261

EP - 322

JO - ACM Computing Surveys

JF - ACM Computing Surveys

SN - 0360-0300

IS - 3

ER -