eugene@orville.nas.nasa.gov (Eugene Miya) (01/05/90)
%A Henri E. Bal %A Jennifer G. Steiner %A Andrew S. Tanenbaum %T Programming Languages for Distributed Computing Systems %J ACM Computing Surveys %V 21 %N 3 %D September 1989 %P 261-322 %K special issue on programming language paradigms, %K Categories and Subject Descriptors: C.2.4 [Computer-Communications Networks]: Distributed Systems - distributed applications; D.1.3 [Programming Techniques]: Concurrent Programming; D.3.3 [Programming Languages]: Language constructs - concurrent programming structures; D.4.7 [Operating Systems]: Organization and Design - distributed systems General Terms: Languages, Design Additional Key Words and Phrases: Distributed data structures, distributed languages, distributed programming, functional programming, languages for distributed programming, languages for parallel programming, logic programming, object-oriented programming, parallel programming, %X Not a great survey, but a good one. It does not mention issues closer to what people think as operating system issues. But, it represents a good reference point with all these languages [a few of which I've never heard]: ABCL/1, Act 1, Ada, Aeolus, ALPS, AMPL, Argus, Avalon, Blaze, BNR Pascal, BRAVE, Camelot Library, Cantor, [Concurrent CSP] CCSP, [Xerox] Cedar, CLIX, Cluster 86, CMAY, Concurrent C [2], Concurrent CLU, Concurrent LISP, Concurrent PROLOG, Concurrent Smalltalk, CONIC, CSM, CSP-S, CSP/80, CSP, CSPS, CSSA, Delta PROLOG, Dislang, Distributed Smalltalk, DP, DPL-82, ECSP, Emerald, EPL, FRANK, FX-87, GDPL, GHC, GYPSY, Hybrid, Joyce, LADY, LIMP, Linda, Lisptalk, LYNX, MC, Mandala, Mentat, MENYMA/S, Multilisp, NIL, Oc, Occam, OIL, Ondine, Orca, Orient84/K, P*, P-PROLOG, ParAlfl, PARLOG, ParMod, Pascal+CSP, Pascal-FC, Pascal-m, PCL, Planet, Platon, PLITS, PML, POOL, Port Language, Pronet, Quty, QLISP, Raddle, RBCSP, Relational Language, SDL, SINA, Sloop, SR, StarMod, Symmetric LISP, Vulcan, ZENO. It still lacks, but it depends on the definition of a distributed language. No mention of atomicity. %A Nicholas Carriero %A David Gelernter %T How to Write Parallel Programs: A Guide to the Perplexed %J ACM Computing Surveys %V 21 %N 3 %D September 1989 %P 323-357 %K special issue on programming language paradigms, %K Categories and Subject Descriptors: D.1.3 [Programming Techniques]: Concurrent Programming; D.3.2 [Programming Languages]: Language classifications - parallel languages; D.3.3 [Programming Languages]: Language constructs - concurrent programming structures; E.1.m [Data Structures]: Miscellaneous - distributed data structures; live data structures; General Terms: Algorithms, Program Design, Languages, Additional Key Words and Phrases: Linda, parallel programming methodology, parallelism, %X From page: 326: It is nonetheless a subtle but essential point that these approaches represent thre clearly separate ways of thinking about the problem: Result parallelism focuses on the shape of the finished product; specialist parallelism focuses on the makeup of the work crew; and agenda parallelism focuses on the list of tasks to be performed. Also the terms: message-passing, distributed data structures or live data structures. Notes that it does not deal with data parallelism (ala CM) nor speculative parallelism (OR-parallelism). Tries to be practical, but it does admit distributed programs are harder and more complex. %A Paul Hudak %Z Yale %T Conception, Evolution, and Application of Functional Programming Languages %J ACM Computing Surveys %V 21 %N 3 %D September 1989 %P 359-411 %K special issue on programming language paradigms, %K Categories and Subject Descriptors: D.1.1 [Programming Techniques]: Applicative (Functional) Programming; D.3.2 [Programming Languages]: Language classifications - applicative languages; data-flow languages; non-procedural languages; very-high-level languages; F.4.1 [Mathematical Logic and Formal Languages]: Mathematical Logic - lambda calculus and related systems; K.2 [History of Computing]: software General Terms: Languages, Additional Key Words and Phrases: Data abstraction, higher-order functions, lazy evaluation, referential transparency, types, Lambda Calculus, Lisp, Iswim, APL, FP, FL, ML, SASL, KRC, Miranda, Haskell, Hope, denotative [declarative] language, %X This is the second paper in the special issue which has a section on non-determinism [along with Bal, et al] which begins with a statement which would sound bizarre to non-programmers or those not familiar with the issues of determinacy. %A Ehud Shapiro %Z Weizmann Inst. %T The Family of Concurrent Logic Programming Languages %J ACM Computing Surveys %V 21 %N 3 %D September 1989 %P 413-510 %K special issue on programming language paradigms, %K Categories and Subject Descriptors: D.1.3 [Programming Techniques]: Concurrent Programming; D.3.3 [Programming Languages]: Language classification - ALPS, Concurrent Prolog, Doc, FCP, guarded Horn Clauses, P-prolog, PARLOG; D.3.3 [Programming Languages]: Language Constructs - concurrent programming structures; D.4.1 [Operating Systems]: Process management - concurrency, mutual exclusion, synchronization; F.1.2 [Computation by Abstract Devices]: Modes of Computation - parallelism; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages - operational semantics; F.4.1 [Mathematical Logic and Formal Languages]: Mathematical Logic - logic programming; General Terms: Languages, Additional Key Words and Phrases: Atomic unification, computational replay, distributed detection, incomplete messages, indeterminism, input matching, language embedding, logic variable, metainterpretation, process structures, short-circuit, snapshots, streams, transformational vs. reactive languages, don't-know and don't-care [latter called indeterminism] non-determinism, %X One of the best subsections and a reference [paper] is entitled "X = X Considered Harmful" from a Japanese paper not likely to be seen by many in the West [for the Doc, distributed Oc, language]. Almost as good as Backus' von Neumann liberation Turing lecture (1978). Programming language types will understand the title.