Abstract
It is a fact of life that sequential programs are often fragmented. Consequently, fragmented program behaviours are frequently found. We consider this phenomenon in the setting of thread algebra. We extend basic thread algebra with poly-threading, the barest mechanism for sequencing of threads that are taken for program fragment behaviours. This mechanism is the counterpart of program overlaying at the level of program behaviours. We relate the resulting theory to the process theory known as ACP and use it to describe analytic execution architectures suited for fragmented programs. We also consider the case where the steps of fragmented program behaviours are interleaved in the ways of non-distributed and distributed multi-threading.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Bergstra JA, Bethke I (2003) Polarized process algebra and program equivalence. In: Baeten JCM, Lenstra JK, Parrow J, Woeginger GJ (eds), Proceedings 30th ICALP, volume 2719 of Lecture Notes in Computer Science. Springer, Berlin pp. 1–21
Bergstra JA, Bethke I, Ponse A (2007) Decision problems for pushdown threads. Acta Informatica 44(2): 75–90
Bergstra JA, Klop JW (1984) Process algebra for synchronous communication. Inf Control 60(1–3) :109–137
Bergstra JA, Loots ME (2002) Program algebra for sequential code. J Logic Algebraic Program 51(2): 125–156
Bergstra JA, Middelburg CA (2007) Instruction sequences with indirect jumps. Sci Annal Comput Sci 17: 19–46
Bergstra JA, Middelburg CA (2007) Thread algebra for strategic interleaving. Formal Aspects Comput 19(4): 445–474
Bergstra JA, Middelburg CA (2008) Distributed strategic interleaving with load balancing. Future Gener Comput Syst 24(6): 530–548
Bergstra JA, Middelburg CA. Thread algebra for sequential poly-threading. Electronic Report PRG0804, Programming Research Group, University of Amsterdam, March 2008. Available at http://www.science.uva.nl/research/prog/publications.html. Also available at http://arxiv.org/: \({\tt arXiv:0803.0378v1\,\,[cs.LO]}\)
Bergstra JA, Middelburg CA Thread extraction for polyadic instruction sequences. Electronic Report PRG0803, Programming Research Group, University of Amsterdam. Available at http://www.science.uva.nl/research/prog/publications.html. Also available at http://arxiv.org/: \({\tt arXiv:0802.1578v2\,\,[cs.PL]}\)
Bergstra JA, Ponse A (2007) Execution architectures for program algebra. J Appl Logic 5(1): 170–192
Baeten JCM, Weijland WP (1990) Process Algebra, volume 18 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge
Carlow GD (1984) Architecture of the space shuttle primary avionics software system. Commun ACM 27(9): 926–936
Che W, Panda A, Chatha KS (2010) Compilation of stream programs for multicore processors that incorporate scratchpad memories. In DATE ’10, pp 1118–1123. IEEE Computer Society Press, Alamitos
Fokkink WJ (2000) Introduction to Process Algebra. Texts in Theoretical Computer Science, An EATCS Series. Springer, Berlin
Gosling J, Joy B, Steele G, and Bracha G (2000) The Java Language Specification. Addison-Wesley, Reading, MA, second edn
Hoare CAR (1985) Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs
Hejlsberg A, Wiltamuth S, Golde P (2003) C# Language Specification. Addison-Wesley, Reading, MA
Maeda S et al (2005) A real-time software platform for the cell processor. IEEE Micro 25(5): 20–29
Milner R (1989) Communication and Concurrency. Prentice-Hall, Englewood Cliffs
Pankhurst RJ (1968) Program overlay techniques. Communications of the ACM 11(2): 119–125
Ponse A, van der Zwaag MB (2006) An introduction to program and thread algebra. In: Beckmann A et al (eds) CiE 2006, volume 3988 of Lecture Notes in Computer Science. Springer, Berlin, pp. 445–458
Sannella D, Tarlecki A (1999) Algebraic preliminaries. In: Astesiano E, Kreowski H-J, Krieg-Brückner B (eds) Algebraic Foundations of Systems Specification. Springer, Berlin, pp. 13–30
Stubblefield FW (1978) A main program and overlay manager subsystem within a distributed function laboratory computer system. IEEE Trans Nuclear Sci 25(1): 217–225
Wirsing M (1990) Algebraic specification. In: van Leeuwen J (ed) Handbook of Theoretical Computer Science, volume B, pp. 675–788. Elsevier, Amsterdam
Acknowledgements
This research was partly carried out in the framework of the Jacquard-project Symbiosis, which is funded by the Netherlands Organisation for Scientific Research (NWO). We thank an anonymous referee for his/her valuable suggestions concerning the presentation of the paper.
Open Access
This article is distributed under the terms of the Creative Commons Attribution Noncommercial License which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
Author information
Authors and Affiliations
Corresponding author
Additional information
C.B. Jones and J.C.P. Woodcock
Rights and permissions
Open Access This is an open access article distributed under the terms of the Creative Commons Attribution Noncommercial License (https://creativecommons.org/licenses/by-nc/2.0), which permits any noncommercial use, distribution, and reproduction in any medium, provided the original author(s) and source are credited.
About this article
Cite this article
Bergstra, J.A., Middelburg, C.A. Thread algebra for poly-threading. Form Asp Comp 23, 567–583 (2011). https://doi.org/10.1007/s00165-011-0178-3
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-011-0178-3