[5461] in java-interest
Understanding Concurrecy
daemon@ATHENA.MIT.EDU (Charles W. Kann)
Sat Feb 10 11:53:58 1996
From: "Charles W. Kann" <ckann@seas.gwu.edu>
To: java-interest@java.sun.com
Date: Sat, 10 Feb 1996 10:45:30 -0500 (EST)
I am interested in trying to find some literature references relating to
a question about concurrency, and also to see what others think about this
idea. I am posting to the Java group because Java is one of the few languages
which deals specifically with concurrency, and so I hope to find some people
with some thoughts about this. I hope this is appropriate.
I am interested in how people understand concurrency. Of particular interest
to me is whether or not procedural programming can be thought of as a special
case of concurrency.
For example, it has been suggested that programming languages consist of
two parts, a computation part and a coordinational part [1]. Here
the computational part is "a program, process, thread, or any agent capable
in principle of simulating a Turning Machine" [2]. Coordinations allow
the computational parts of the program to be created, to synchronize and to
communicate.
This leads me to my question. Procedural programs need to create
computations, and to communicate and synchronize those computations, just
as do concurrent programs. This is more obvious in purely object
oriented languages such as Smalltalk, but I think is generally true.
The question then becomes, are the procedural coordinations simply more
specific instances of more general concurrent coordinations. If so, is it
possible to understand them as such.
I know most traditional languages such as Ada, Occam, CSP, Concurrent C, etc,
have created special constructs to handle concurrency. Are they really
needed, or could procedural coordinations be implemented as special cases
of concurrent coordinations? For example, in Ada could the idea of packages,
procedures, and functions all be expressed as Tasks and Protected Types?
I know that Java already uses this idea, but I am interested in references
as to why the concurrency model was choosen, and why concurrency was
implemented as it was.
[1] - Gelernter, D. and Carriero, N., "Coordination Languages and their
Significance", Comm. of the ACM., Feb. 1992 (vol. 35, No. 2) pp. 97-107.
[2] - ibid, page 98.
-
This message was sent to the java-interest mailing list
Info: send 'help' to java-interest-request@java.sun.com