This Article 
 Bibliographic References 
 Add to: 
Description for a Tool Specifying and Prototyping Concurrent Programs
November 1988 (vol. 14 no. 11)
pp. 1554-1564

A specification language is introduced, able to define the behavior of concurrent programs. The language is particularly devoted to describing distributed applications, mainly with respect to scheduling problems. For this purpose, the language allows visibility of the past history of a computation and such history may be explicitly used to derive the choices on the future behavior of the computation itself and to define the values exchanged at each communication. A behavior is a partial order on events (communications) accomplished by processes, while the values of the communications are specified by a functional language. The most noticeable characteristic of specifications written in this language is the capability to be easily translated into executable concurrent programs (written into a CSP-like concurrent language), so obtaining an early prototype for these programs. An algorithm is described to accomplish the translation. An environment is provided to support static semantics checks on specifications, while dynamic testing and debugging are accomplished using interactive tools of the concurrent language environment.

[1] U.S. Dep. Defense,Reference Manual for the Ada Programming Language, ANSI/MIL-STD 1815A, Jan. 1983.
[2] C. A. R. Hoare, "Communicating sequential processes,"Commun. ACM, vol. 21, pp. 666-677, 1978.
[3] R. N. Taylor, "Complexity of analyzing the synchronization structure of concurrent programs,"Acta Inform., vol. 19, no. 1, pp. 57- 84, 1983.
[4] W. E. Howden, "Symbolic tasting and the DISSECT symbolic evaluation system,"IEEE Trans. Software Eng., vol. SE-3, no. 4, pp. 266-278, 1977.
[5] R. Balzer, T. E. Cheatam, and C. Green, "Software technology in the 1990's: Using a new Paradigm,"Computer, vol. 16, no. 11, pp. 39-45, 1983.
[6] R. Balzer, "A 15 year perspective on automatic programming,"IEEE Trans. Software Eng., vol. SE-11, no. 11, pp. 1257-1268, Nov. 1985.
[7] F. Baiardi, A. Fantechi, A. Tomasi, and M. Vanneschi, "Mechanism for a robust multiprocessing environment in the MuTEAM kernel," inProc. 11th Fault Tolerant Computing Symp., Portland, OR, 1981, pp. 20-24.
[8] F. Baiardi, N. De Francesco, L. Ricci, A. Tomasi, G. Vaglini, and M. Vanneschi, "Concurrent programming tools for the MuTEAM microprocessor system,"Int. J. Mini and Microcomputers, vol. 8, no. 3, 1986.
[9] L. Lamport, "What good is temporal logic?" inProc. IFIP Congress '83. Amsterdam, The Netherlands: North-Holland, 1983, pp. 657- 668.
[10] C. A. R. Hoare, "A calculus of total correctness for communicating processes,"Sci. Comput. Programming, vol. 1, pp. 49-72, 1981.
[11] R. Milner,A Calculus of Communicating Systems (Lecture Notes in Computer Science 92). New York: Springer-Verlag, 1980.
[12] P. Degano and U. Montanari, "Specification languages for distributed systems," inProc. Joint Conf. Theory and Practice of Software Development, Berlin, 1985.
[13] "Information processing system-open system interconnection-LOTOS-A formal description technique based on the temporal ordering of observational behavior," ISO DP8807, 1975.
[14] N. Goodman and D. Wile, "Gist language description," Draft, 1980.
[15] N. Francez, B. Hailpern, and G. Taubenfeld, "Script: A communication abstraction mechanism and its verification,"Sci. Comput. Programming, vol. 6, pp. 35-88, 1986.
[16] N. De Francesco and G. Vaglini, "A language to specify and synthesize concurrent processes," Dep. Informatica, Univ. Pisa, Rep. S- 22-84, 1984.
[17] G. D. Plotkin, "An operational semantics for CSP," inProc. IFIP TC 2 Working Conf. Formal Description of Programming Concepts II, D. Bjorner, Ed. Amsterdam, The Netherlands: North-Holland, 1983, pp. 199-223.
[18] P. Degano and U. Montanari, "Concurrent histories: A basis for observing distributed systems,"J. Comput. Syst. Sci., to be published.
[19] N. Francez, C. A. R. Hoare, D. J. Lehemann, and W. P. De Roever, "Semantics of nondeterminism, concurrency and communication,"J. Comput. Syst. Sci., vol. 19, pp. 290-308, 1979.
[20] R. De Nicola, "Models and operators for nondeterministic processes," inProc. MFCS '84(LNCS 176) 1984, pp. 433-442.
[21] R. Milner, "A theory of type polimorphism in programming,"J. Comput. Syst. Sci., vol. 17, pp. 348-375, 1978.
[22] F. Baiardi, L. Ricci, A. Tomasi, and M. Vanneschi, "Static checking of interprocess communication in ECSP," inProc. ACM SIGPLAN Symp. Compiler Construction, Montreal, P.Q., Canada, 1984.
[23] F. Biairdi, N. D. Francesco, and G. Vaglini, "Development of a debugger for a concurrent language,"IEEE Trans. Software Eng., vol. SE-12, pp. 547-553, Apr. 1986.
[24] N. De Francesco, D. Latella, and G. Vaglini, "An interactive debugger for a concurrent language," inProc. 8th Int. Conf. Software Engineering, Londra, 1985, pp. 302-325.
[25] R.B. Kieburtz and A. Silberschatz, "Comments on 'Communicating sequential processes',"ACM Trans. Program. Lang. Syst., vol. 1, no. 4, pp. 218-225, Oct. 1979.

Index Terms:
automatic programming; programming environments; parallel programming; prototyping; specification language; distributed applications; scheduling; functional language; executable concurrent programs; concurrent language; translation; static semantics checks; dynamic testing; debugging; interactive tools; automatic programming; parallel programming; program interpreters; programming environments; software tools; specification languages
N. De Francesco, G. Vaglini, "Description for a Tool Specifying and Prototyping Concurrent Programs," IEEE Transactions on Software Engineering, vol. 14, no. 11, pp. 1554-1564, Nov. 1988, doi:10.1109/32.9044
Usage of this product signifies your acceptance of the Terms of Use.