Abstract
Tempo is a language based on classical first-order logic, which can be used for both specifying and implementing concurrent systems. As a declarative programming language, it is unique in that a program explicitly specifies the safety properties that it satisfies. Unlike most specification languages, a Tempo specification of a concurrent system can be executed, also concurrently.
An earlier paper presented a subset of Tempo, in which simple synchronization problems could be expressed by precedence relations between events. In this paper we describe a major extension to the language which greatly increases its expressive power. In particular, the language now includes facilities to perform computation — data values, operations on them, and control features — as well as synchronization.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M. and Manna, Z. 1987. Temporal logic programming. Proc. of the Symp. on Logic Programming, S. Haridi (Ed.). IEEE Computer Society Press, pp. 4–16.
Andrews, G.R. 1991. Concurrent Programming: Principles and Practice. Benjamin/Cummings.
Carriero, N. and Gelernter, D. 1989. How to write parallel programs: a guide to the perplexed. ACM Computing Surveys 21, 3, pp. 323–357.
Chandy, K.M. and Misra, J. 1988. Parallel Program Design. Addison-Wesley.
Cleary, J.G. and Smith, D.A. 1996. Declarative I/O, assignment and concurrency. Technical report. Dept. of Computer Science, Univ. of Waikato.
De Boer, F.S. and Gabbrielli, M. 1995. Modelling real-time in concurrent constraint programming. In Proc. of the Intl. Logic Programming Symp., J.W. Lloyd (Ed.). MIT Press, pp. 528–542.
Fisher, M. 1993. Concurrent Metatem: a language for modelling reactive systems. Proc. of Parallel Architectures and Languages Europe.
Gregory, S. 1987. Parallel Logic Programming in PARLOG. Addison-Wesley.
Gregory, S.1996. Derivation of concurrent algorithms in Tempo. In Proc. of the 5th Intl. Workshop on Logic Program Synthesis and Transformation, M. Proietti (Ed.). Springer-Verlag, pp. 46–60.
Gregory, S. and Ramirez, R. 1995. Tempo: a declarative concurrent programming language. In Proc. of the 12th Intl. Logic Programming Conf., L. Sterling (Ed.). MIT Press, pp. 515–529.
Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice Hall.
Kowalski, R.A. and Sergot, M.J. 1986. A logic-based calculus of events. New Generation Computing 4, pp. 67–95.
Lamport, L.1994. The temporal logic of actions. ACM Trans. on Programming Languages and Systems 16, 3, pp. 872–923.
Milner, R. 1989. Communication and Concurrency. Prentice Hall.
Misra, J. 1995. A logic for concurrent programming. J. of Computer and Software Engineering 3, 2, pp. 239–300.
Moszkowski, B. 1986. Executing Temporal Logic Programs. Cambridge Univ. Press.
Pratt, V.1986.Modeling concurrency with partial orders.Intl. J. of Parallel Programming 15, 1, pp. 33–71.
Ramirez, R. 1996. A Logic-Based Concurrent Object-Oriented Programming Language. PhD thesis.Univ. of Bristol.
Saraswat, V.A. 1993. Concurrent Constraint Programming. MIT Press.
Saraswat, V.A., Jagadeesan, R., and Gupta, V. 1994. Foundations of timed concurrent constraint programming. In Proc. of the 9th IEEE Symp. on Logic in Computer Science, S. Abramsky (Ed.). IEEE Computer Society Press.
Ueda, K. and Chikayama, T. 1990. Design of the kernel language for the Parallel Inference Machine. Computer J. 33, 6, pp. 494–500.
Van Hentenryck, P. 1989. Constraint Satisfaction in Logic Programming. MIT Press.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gregory, S. (1997). A declarative approach to concurrent programming. In: Glaser, H., Hartel, P., Kuchen, H. (eds) Programming Languages: Implementations, Logics, and Programs. PLILP 1997. Lecture Notes in Computer Science, vol 1292. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0033838
Download citation
DOI: https://doi.org/10.1007/BFb0033838
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63398-3
Online ISBN: 978-3-540-69537-0
eBook Packages: Springer Book Archive