[comp.parallel] new references

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.