Acta Informatica

, Volume 49, Issue 3, pp 139–172 | Cite as

Instruction sequence processing operators

  • J. A. Bergstra
  • C. A. MiddelburgEmail author
Open Access
Original Article


Instruction sequence is a key concept in practice, but it has as yet not come prominently into the picture in theoretical circles. This paper concerns instruction sequences, the behaviours produced by them under execution, the interaction between these behaviours and components of the execution environment, and two issues relating to computability theory. Positioning Turing’s result regarding the undecidability of the halting problem as a result about programs rather than machines, and taking instruction sequences as programs, we analyse the autosolvability requirement that a program of a certain kind must solve the halting problem for all programs of that kind. We present novel results concerning this autosolvability requirement. The analysis is streamlined by using the notion of a functional unit, which is an abstract state-based model of a machine. In the case where the behaviours exhibited by a component of an execution environment can be viewed as the behaviours of a machine in its different states, the behaviours concerned are completely determined by a functional unit. The above-mentioned analysis involves functional units whose possible states represent the possible contents of the tapes of Turing machines with a particular tape alphabet. We also investigate functional units whose possible states are the natural numbers. This investigation yields a novel computability result, viz. the existence of a universal computable functional unit for natural numbers.


Functional Unit Turing Machine Execution Environment Instruction Sequence Method Operation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.



We thank two anonymous referees for carefully reading preliminary versions of this paper and for suggesting improvements of the presentation of the paper.

Open Access

This article is distributed under the terms of the Creative Commons Attribution License which permits any use, distribution, and reproduction in any medium, provided the original author(s) and the source are credited.


  1. Arora S., Barak B.: Computational Complexity: A Modern Approach. Cambridge University Press, Cambridge (2009)zbMATHGoogle Scholar
  2. Baker H.G.: Precise instruction scheduling without a precise machine model. SIGARCH Comput. Archit. News 19(6), 4–8 (1991)CrossRefGoogle Scholar
  3. 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.) Proceedings 30th ICALP, Lecture Notes in Computer Science, vol. 2719, pp. 1–21. Springer, New York (2003)Google Scholar
  4. Bergstra J.A., Loots M.E.: Program algebra for component code. Formal Aspects Comput. 12(1), 1–17 (2000)zbMATHCrossRefGoogle Scholar
  5. Bergstra J.A., Loots M.E.: Program algebra for sequential code. J. Logic Algebraic Programm. 51(2), 125–156 (2002)MathSciNetzbMATHCrossRefGoogle Scholar
  6. Bergstra J.A., Middelburg C.A.: A thread algebra with multi-level strategic interleaving. Theory Comput. Syst. 41(1), 3–32 (2007)MathSciNetzbMATHCrossRefGoogle Scholar
  7. Bergstra, J.A., Middelburg, C.A.: Instruction sequences and non-uniform complexity theory. arXiv:0809.0352v3 [cs.CC] (2008)Google Scholar
  8. Bergstra J.A., Middelburg C.A.: Program algebra with a jump-shift instruction. J. Appl. Logic 6(4), 553–563 (2008)MathSciNetzbMATHCrossRefGoogle Scholar
  9. Bergstra, J.A., Middelburg, C.A.: Autosolvability of halting problem instances for instruction sequences. arXiv:0911.5018v3 [cs.LO] (2009)Google Scholar
  10. Bergstra, J.A., Middelburg, C.A.: Functional units for natural numbers. arXiv:0911.1851v3 [cs.PL] (2009)Google Scholar
  11. Bergstra, J.A., Middelburg, C.A.: Indirect jumps improve instruction sequence performance. arXiv:0909.2089v2 [cs.PL] (2009)Google Scholar
  12. Bergstra, J.A., Middelburg, C.A.: Instruction sequence processing operators. arXiv:0910.5564v4 [cs.LO] (2009)Google Scholar
  13. Bergstra J.A., Middelburg C.A.: On the operating unit size of load/store architectures. Math. Struct. Comput. Sci. 20(3), 395–417 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  14. Bergstra J.A., Middelburg C.A.: A thread calculus with molecular dynamics. Inform. Comput. 208(7), 817–844 (2010)MathSciNetzbMATHCrossRefGoogle Scholar
  15. Bergstra J.A., Middelburg C.A.: Inversive meadows and divisive meadows. J. Appl. Logic 9(3), 203–220 (2011)MathSciNetCrossRefGoogle Scholar
  16. Bergstra, J.A., Middelburg, C.A.: On the behaviours produced by instruction sequences under execution. arXiv:1106.6196v1[cs.PL] (2011)Google Scholar
  17. Bergstra J.A., Middelburg C.A.: Thread extraction for polyadic instruction sequences. Sci. Ann. Comput. Sci. 21(2), 283–310 (2011)MathSciNetGoogle Scholar
  18. Bergstra J.A., Middelburg C.A.: On the expressiveness of single-pass instruction sequences. Theory Comput. Syst. 50(2), 313–328 (2012)CrossRefGoogle Scholar
  19. Bergstra J.A., Ponse A.: Combining programs and state machines. J. Logic Algebr. Programm. 51(2), 175–192 (2002)MathSciNetzbMATHCrossRefGoogle Scholar
  20. Bergstra J.A., Ponse A.: Execution architectures for program algebra. J. Appl. Logic 5(1), 170–192 (2007)MathSciNetzbMATHCrossRefGoogle Scholar
  21. Bergstra J.A., Ponse A.: An instruction sequence semigroup with involutive anti-automorphisms. Sci. Ann. Comput. Sci. 19, 57–92 (2009)MathSciNetGoogle Scholar
  22. Bergstra, J.A., Tucker, J.V.: The rational numbers as an abstract data type. J. ACM 54(2), Article 7 (2007)Google Scholar
  23. Brock, C., Hunt, W.A.: Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP. In: ICCD ’97, pp. 31–36 (1997)Google Scholar
  24. Hennessy, J., Jouppi, N., Przybylski, S., Rowen, C., Gross, T., Baskett, F., Gill, J.: MIPS: A microprocessor architecture. In: MICRO ’82, pp. 17–22 (1982)Google Scholar
  25. Hermes H.: Enumerability, Decidability, Computability. Springer, Berlin (1965)zbMATHGoogle Scholar
  26. Kleene S.C.: General recursive functions of natural numbers. Math. Ann. 112, 727–742 (1936)MathSciNetCrossRefGoogle Scholar
  27. Lunde A.: Empirical evaluation of some features of instruction set processor architectures. Commun. ACM 20(3), 143–153 (1977)CrossRefGoogle Scholar
  28. Lynch N.A., Blum E.K.: Relative complexity of algebras. Math. Syst. Theory 14(1), 193–214 (1981)MathSciNetzbMATHCrossRefGoogle Scholar
  29. Margenstern M.: Decidability and undecidability of the halting problem on Turing machines, a survey. In: Adian, S., Nerode, A. (eds.) LFCS’97, Lecture Notes in Computer Science, vol. 1234, pp. 226–236. Springer, New York (1997)Google Scholar
  30. Minsky M.L.: Recursive unsolvability of Post’s problem of “tag” and other topics in theory of Turing machines. Ann. Math. 74(3), 437–455 (1961)MathSciNetzbMATHCrossRefGoogle Scholar
  31. Mosses, P.D.: The mathematical semantics of ALGOL 60. Tech. Rep. PRG-12, Programming Research Group, Oxford University (1974)Google Scholar
  32. Mosses P.D.: Formal semantics of programming languages—an overview. Electron. Notes Theor. Comput. Sci. 148, 41–73 (2006)CrossRefGoogle Scholar
  33. Nair R., Hopkins M.E.: Exploiting instruction level parallelism in processors by caching scheduled groups. SIGARCH Comput. Archit. News 25(2), 13–25 (1997)CrossRefGoogle Scholar
  34. Ofelt, D., Hennessy, J.L.: Efficient performance prediction for modern microprocessors. In: SIGMETRICS ’00, pp. 229–239 (2000)Google Scholar
  35. Patterson D.A., Ditzel D.R.: The case for the reduced instruction set computer. SIGARCH Comput. Archit. News 8(6), 25–33 (1980)CrossRefGoogle Scholar
  36. Pavlotskaya L.M.: Solvability of the halting problem for certain classes of Turing machines. Math. Notes 13(6), 537–541 (1973)zbMATHGoogle Scholar
  37. Ponse A., van der Zwaag M.B.: An introduction to program and thread algebra. In: Beckmann, A. et al. (eds.) CiE 2006 Lecture Notes in Computer Science vol 3988., pp. 445–458. Springer, New York (2006)Google Scholar
  38. Sannella D., Tarlecki A.: Algebraic preliminaries. In: Astesiano, E., Kreowski, H.J., Krieg-Brückner, B. (eds.) Algebraic Foundations of Systems Specification, pp. 13–30. Springer, Berlin (1999)CrossRefGoogle Scholar
  39. Shepherdson J.C., Sturgis H.E.: Computability of recursive functions. J. ACM 10(2), 217–255 (1963)MathSciNetzbMATHCrossRefGoogle Scholar
  40. Sipser M.: Introduction to the Theory of Computation, 2nd edn. Thomson, Boston (2006)zbMATHGoogle Scholar
  41. Stoy J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, Series in Computer Science. MIT Press, Cambridge (1977)Google Scholar
  42. Tennenhouse D.L., Wetherall D.J.: Towards an active network architecture. SIGCOMM Comput. Commun. Rev. 37(5), 81–94 (2007)CrossRefGoogle Scholar
  43. Tennent, R.D.: A denotational definition of the programming language Pascal. Tech. Rep. TR77-47, Department of Computing and Information Sciences, Queen’s University, Kingston, Ontario, Canada (1977)Google Scholar
  44. Turing, A.M.: On computable numbers, with an application to the Entscheidungs problem. Proc. Lond. Math. Soc. Ser. 2 42, 230–265 (1937). Correction: ibid, 43, 544–546 (1937)Google Scholar
  45. Wirsing M.: Algebraic specification. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol B, pp. 675–788. Elsevier, Amsterdam (1990)Google Scholar
  46. Xia, C., Torrellas, J.: Instruction prefetching of systems codes with layout optimized for reduced cache misses. In: ISCA ’96, pp. 271–282 (1996)Google Scholar

Copyright information

© The Author(s) 2012

Authors and Affiliations

  1. 1.Informatics Institute, Faculty of ScienceUniversity of AmsterdamAmsterdamThe Netherlands

Personalised recommendations