This Article 
 Bibliographic References 
 Add to: 
Mixed Programming Metaphors in a Shared Dataspace Model of Concurrency
December 1990 (vol. 16 no. 12)
pp. 1361-1373

A simple language called Swarm is used as a vehicle for the investigation of the shared dataspace approach to concurrent computation. An important feature of Swarm is its ability to bring a variety of programming paradigms under a single, unified model. In a series of related examples Swarm's capacity to express shared-variable, message-passing, and rule-based computations; to specify synchronous and asynchronous processing modes; and to accommodate highly dynamic program and data structure is explored. Several illustrations make use of a programming construct unique to Swarm, the synchrony relation and explain how this feature can be used to construct dynamically structured, partially synchronous computations. An overview of the Swarm programming notation, an examination of Swarm programming strategies via a series of related example programs, and a discussion of the distinctive features of the shared dataspace model are given. A formal operational model for Swarm is presented.

[1] G. Agha,Actors: A Model of Concurrent Computation in Distributed Systems. Cambridge, MA: MIT Press, 1986.
[2] S. Ahuja, N. Carriero, and D. Gelernter, "Linda and friends,"IEEE Computer, vol. 19, no. 8, pp. 26-34, Aug. 1986.
[3] ANSI, Inc.,Reference Manual for the Ada Programming Language. Amer. Nat. Standards Inst., Inc., Washington, DC, ANSI/MIL-STD-1815A-1983, Jan. 1983.
[4] H. E. Bal and A. S. Tanenbaum, "Distributed programming with shared data," inProc. IEEE CS 1988 Int. Conf. on Computer Languages(Miami, FL), Oct. 1988, pp. 82-91.
[5] P. Brinch Hansen, "The programming language Concurrent Pascal,"IEEE Trans. Software Eng., vol. 1, no. 2, pp. 199-206, June 1975.
[6] L. Brownston et al.,Programming Expert Systems in OPS5, An Introduction to Rule-Based Programming, Addison Wesley, Reading, Mass., 1985, Chapter 4, pp. 161- 164.
[7] N. Carriero and D. Gelernter, "Linda in context,"Commun. ACM, vol. 32, pp. 444-458, Apr. 1989.
[8] K. M. Chandy and L. Lamport, "Distributed snapshots: Determining global states of distributed systems,"ACM Trans. Comput. Syst., vol. 3, no. 1, pp. 63-75, Feb. 1985.
[9] K.M. Chandy and J. Misra, "An Example of Stepwise Refinement of Distributed Programs: Quiescence Detection,"ACM Trans. Programming Languages and Systems, Vol. 8, No. 3, July 1986, pp. 326-343.
[10] K. M. Chandy and J. Misra,Parallel Program Design: A Foundation. Reading, MA: Addison-Wesley, 1988.
[11] E. Chang and R. Roberts, "An improved algorithm for decentralized extrema-finding in circular configurations of processes,"Commun. ACM, vol. 22, no. 5, pp. 281-283, 1979.
[12] H. C. Cunningham, "The shared dataspace approach to concurrent computation: The Swarm programming model, notation, and logic," Ph.D. dissertation, Washington Univ., Dep. of Comput. Sci., St. Louis, MO, Aug. 1989.
[13] H. C. Cunningham and G.-C. Roman, "A UNITY-style programming logic for a shared dataspace language,"IEEE Trans. Parallel Distributed Syst., vol. 1, no. 3, pp. 365-376, July 1990.
[14] E. W. Dijkstra,A Discipline of Programming. Englewood Cliffs, NJ: Prentice-Hall, 1976.
[15] E. W. Dijkstra and C. S. Scholten, "Termination detection for diffusing "computations,"Inform. Processing Lett., vol. 11, no. 1, pp. 1-4, Aug. 1980.
[16] N. Francez,Fairness. New York: Springer-Verlag, 1986.
[17] W. D. Hillis and G. L. Steele, Jr., "Data parallel algorithms,"Commun. ACM, vol. 29, no. 12, pp. 1170-1183, Dec. 1986.
[18] C. A. R. Hoare, "Communicating sequential processes,"Commun. ACM, vol. 21, pp. 666-677, 1978.
[19] T.D. Kimura, "Visual Programming by Transaction Networks,"Proc. 21st Annual Hawaii Conf. Systems Science, IEEE CS Press, Los Alamitos, Calif., 1988, pp. 648- 658.
[20] L. Lamport, "On interprocess communication,"Distributed Comput., vol. 1, pp. 97-111, 1986.
[21] D. Lehmann, A. Pnueli, and J. Stavi, "Impartiality, justice and fairness: The ethics of concurrent computation," inICALP '81: Automata, Languages, and Programming(Lecture Notes in Computer Science, vol. 115), S. Even and O. Kariv, Eds. New York: Springer-Verlag, 1981, pp. 264-277.
[22] G. LeLann, "Distributed systems, towards a formal approach," inInformation Processing 77. New York: North-Holland, 1977, pp. 155-160.
[23] B. Liskov, "Distributed programming in Argus,"Commun. ACM, vol. 31, no. 3, pp. 300-312, Mar. 1988.
[24] S. Matsuoka and S. Kawai, "Using tuple space communication in distributed object-oriented languages," inProc. 1988 Object-Oriented Programming Systems, Languages and Applications Conf. (OOPSLA), ACM, Sept. 1988, pp. 276-284; also inSIGPLAN Notices, vol. 23, no. 11, Nov. 1988.
[25] M. Rem, "Associons: A program notation with tuples instead of variables,"ACM Trans. Programming Languages Syst., vol. 3, no. 3, pp. 251-262, July 1981.
[26] M. Rem, "The closure statement: A programming language construct allowing ultraconcurrent execution,"J. ACM, vol. 28, no. 2, pp. 393-410, Apr. 1981.
[27] G.-C. Roman, "Language and visualization support for large-scale concurrency," inProc. 10th Int. Conf. Software Eng., IEEE, Apr. 1988, pp. 296-308.
[28] G.-C. Roman and K. C. Cox, "A declarative approach to visualizing concurrent computations,"Computer, vol. 22, no. 10, pp. 25-36, Oct. 1989.
[29] G.-C. Roman and H. C. Cunningham, "A shared dataspace model of concurrency--Language and programming implications," inProc. 9th Int. Conf. Distributed Comput. Syst., IEEE, June 1989, pp. 270-279.
[30] P. Saint-Marc and G. Medioni, "B-spline contour representation and symmetry detection," inProc. Euro. Conf. Comput. Vision(Antibes, France), 1990, pp. 604-606.
[31] G.-C. Roman, H. C. Cunningham, and M. E. Ehlers, "A shared dataspace language supporting large-scale concurrency," inProc. 8th Int. Conf. Distributed Computing Systems, IEEE, June 1988, pp. 265-272.

Index Terms:
mixed programming metaphors; concurrency; simple language; Swarm; shared dataspace approach; concurrent computation; programming paradigms; unified model; shared-variable; message-passing; rule-based computations; asynchronous processing modes; highly dynamic program; data structure; programming construct; synchrony relation; partially synchronous computations; programming notation; programming strategies; example programs; shared dataspace model; formal operational model; data structures; parallel languages; parallel programming
G.-C. Roman, H.C. Cunningham, "Mixed Programming Metaphors in a Shared Dataspace Model of Concurrency," IEEE Transactions on Software Engineering, vol. 16, no. 12, pp. 1361-1373, Dec. 1990, doi:10.1109/32.62445
Usage of this product signifies your acceptance of the Terms of Use.