Skip to main content

A declarative approach to concurrent programming

  • Language Constructs
  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1292))

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.

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.

    Google Scholar 

  • Andrews, G.R. 1991. Concurrent Programming: Principles and Practice. Benjamin/Cummings.

    Google Scholar 

  • Carriero, N. and Gelernter, D. 1989. How to write parallel programs: a guide to the perplexed. ACM Computing Surveys 21, 3, pp. 323–357.

    Google Scholar 

  • Chandy, K.M. and Misra, J. 1988. Parallel Program Design. Addison-Wesley.

    Google Scholar 

  • Cleary, J.G. and Smith, D.A. 1996. Declarative I/O, assignment and concurrency. Technical report. Dept. of Computer Science, Univ. of Waikato.

    Google Scholar 

  • 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.

    Google Scholar 

  • Fisher, M. 1993. Concurrent Metatem: a language for modelling reactive systems. Proc. of Parallel Architectures and Languages Europe.

    Google Scholar 

  • Gregory, S. 1987. Parallel Logic Programming in PARLOG. Addison-Wesley.

    Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Google Scholar 

  • Hoare, C.A.R. 1985. Communicating Sequential Processes. Prentice Hall.

    Google Scholar 

  • Kowalski, R.A. and Sergot, M.J. 1986. A logic-based calculus of events. New Generation Computing 4, pp. 67–95.

    Google Scholar 

  • Lamport, L.1994. The temporal logic of actions. ACM Trans. on Programming Languages and Systems 16, 3, pp. 872–923.

    Google Scholar 

  • Milner, R. 1989. Communication and Concurrency. Prentice Hall.

    Google Scholar 

  • Misra, J. 1995. A logic for concurrent programming. J. of Computer and Software Engineering 3, 2, pp. 239–300.

    Google Scholar 

  • Moszkowski, B. 1986. Executing Temporal Logic Programs. Cambridge Univ. Press.

    Google Scholar 

  • Pratt, V.1986.Modeling concurrency with partial orders.Intl. J. of Parallel Programming 15, 1, pp. 33–71.

    Google Scholar 

  • Ramirez, R. 1996. A Logic-Based Concurrent Object-Oriented Programming Language. PhD thesis.Univ. of Bristol.

    Google Scholar 

  • Saraswat, V.A. 1993. Concurrent Constraint Programming. MIT Press.

    Google Scholar 

  • 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.

    Google Scholar 

  • Ueda, K. and Chikayama, T. 1990. Design of the kernel language for the Parallel Inference Machine. Computer J. 33, 6, pp. 494–500.

    Google Scholar 

  • Van Hentenryck, P. 1989. Constraint Satisfaction in Logic Programming. MIT Press.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hugh Glaser Pieter Hartel Herbert Kuchen

Rights and permissions

Reprints 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

Publish with us

Policies and ethics