Skip to main content

An Introduction to Program and Thread Algebra

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 3988)

Abstract

We provide an introduction to Program Algebra (PGA, an algebraic approach to the modeling of sequential programming) and to Thread Algebra (TA). PGA is used as a basis for several low- and higher-level programming languages. As an example we consider a simple language with goto’s. Threads in TA model the execution of programs. Threads may be composed with services which model (part of) the execution environment, such as a stack. Finally, we discuss briefly the expressiveness of PGA and allude to current work on multithreading and security hazard risk assessment.

Keywords

  • PGA
  • Program Algebra
  • Thread Algebra

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (Canada)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. de Bakker, J.W., Zucker, J.I.: Processes and the denotational semantics of concurrency. Information and Control 54(1-2), 70–120 (1982)

    CrossRef  MathSciNet  MATH  Google Scholar 

  2. Bergstra, J.A.: (February 2006), www.science.uva.nl/~janb/ta/

  3. Bergstra, J.A.: (February 2006), www.science.uva.nl/~janb/pga/

  4. Bergstra, J.A., Bethke, I.: Polarized process algebra and program equivalence. In: Baeten, J.C.M., Lenstra, J.K., Parrow, J., Woeginger, G.J. (eds.) ICALP 2003. LNCS, vol. 2719, pp. 1–21. Springer, Heidelberg (2003)

    CrossRef  Google Scholar 

  5. Bergstra, J.A., Bethke, I., Ponse, A.: Decision problems for pushdown threads. Report PRG0502, Programming Research Group, University of Amsterdam (June 2005), Available at: http://www.science.uva.nl/research/prog/publications.html

  6. Bergstra, J.A., Klop, J.W.: Process algebra for synchronous communication. Information and Control 60(1-3), 109–137 (1984)

    CrossRef  MathSciNet  MATH  Google Scholar 

  7. Bergstra, J.A., Loots, M.E.: Program algebra for sequential code. Journal of Logic and Algebraic Programming 51(2), 125–156 (2002)

    CrossRef  MathSciNet  MATH  Google Scholar 

  8. Bergstra, J.A., Middelburg, C.A.: A Thread Algebra with Multi-Level Strategic Interleaving. Report 200441, Computing Science Department, Eindhoven University of Technology (2004)

    Google Scholar 

  9. Bergstra, J.A., Middelburg, C.A.: Thread Algebra for Strategic Interleaving. Report PRG0404, Programming Research Group, University of Amsterdam (2004), www.science.uva.nl/research/prog/publications.html

  10. Bergstra, J.A., Middelburg, C.A.: Simulating Turing Machines on Maurer Machines. Report 200528, Computing Science Department, Eindhoven University of Technology (2005)

    Google Scholar 

  11. Bergstra, J.A., Middelburg, C.A.: Maurer Computers with Single-Thread Control. Report 200517, Computing Science Department, Eindhoven University of Technology (2005)

    Google Scholar 

  12. Bergstra, J.A., Ponse, A.: Execution architectures for program algebra. Journal of Applied Logic (to appear, 2006) An earlier version appeared as Logic Group Preprint Series 230, Department of Philosophy, Utrecht University (2004)

    Google Scholar 

  13. Bergstra, J.A., Ponse, A.: A bypass of Cohen’s impossibility result. In: Sloot, P.M.A., Hoekstra, A.G., Priol, T., Reinefeld, A., Bubak, M. (eds.) EGC 2005. LNCS, vol. 3470, pp. 1097–1106. Springer, Heidelberg (2005)

    CrossRef  Google Scholar 

  14. Cohen, F.: Computer viruses — theory and experiments. Computers & Security 6(1), 22–35 (1984) Available as: http://vx.netlux.org/lib/afc01.html

    CrossRef  Google Scholar 

  15. Jančar, P.: Decidability questions for bisimilarity of Petri nets and some related problems. In: Enjalbert, P., Mayr, E.W., Wagner, K.W. (eds.) STACS 1994. LNCS, vol. 775, pp. 581–592. Springer, Heidelberg (1994)

    CrossRef  Google Scholar 

  16. Jančar, P., Moller, F., Sawa, Z.: Simulation problems for one-counter machines. In: Bartosek, M., Tel, G., Pavelka, J. (eds.) SOFSEM 1999. LNCS, vol. 1725, pp. 404–407. Springer, Heidelberg (1999)

    Google Scholar 

  17. Jesshope, C.: Implementing an efficient vector instruction set in a chip multi-processor using micro-threaded pipelines. Australian Computer Science Communications 23(4), 80–88 (2001)

    Google Scholar 

  18. Maurer, W.D.: A theory of computer instructions. Journal of the ACM 13(2), 226–235 (1966)

    CrossRef  MATH  Google Scholar 

  19. Vu, T.D.: Metric denotational semantics for BPPA. Report PRG0503, Programming Research Group, University of Amsterdam (July 2005), Available at: http://www.science.uva.nl/research/prog/publications.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ponse, A., van der Zwaag, M.B. (2006). An Introduction to Program and Thread Algebra. In: Beckmann, A., Berger, U., Löwe, B., Tucker, J.V. (eds) Logical Approaches to Computational Barriers. CiE 2006. Lecture Notes in Computer Science, vol 3988. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11780342_46

Download citation

  • DOI: https://doi.org/10.1007/11780342_46

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35466-6

  • Online ISBN: 978-3-540-35468-0

  • eBook Packages: Computer ScienceComputer Science (R0)