Abstract
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.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
Arora S., Barak B.: Computational Complexity: A Modern Approach. Cambridge University Press, Cambridge (2009)
Baker H.G.: Precise instruction scheduling without a precise machine model. SIGARCH Comput. Archit. News 19(6), 4–8 (1991)
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)
Bergstra J.A., Loots M.E.: Program algebra for component code. Formal Aspects Comput. 12(1), 1–17 (2000)
Bergstra J.A., Loots M.E.: Program algebra for sequential code. J. Logic Algebraic Programm. 51(2), 125–156 (2002)
Bergstra J.A., Middelburg C.A.: A thread algebra with multi-level strategic interleaving. Theory Comput. Syst. 41(1), 3–32 (2007)
Bergstra, J.A., Middelburg, C.A.: Instruction sequences and non-uniform complexity theory. arXiv:0809.0352v3 [cs.CC] (2008)
Bergstra J.A., Middelburg C.A.: Program algebra with a jump-shift instruction. J. Appl. Logic 6(4), 553–563 (2008)
Bergstra, J.A., Middelburg, C.A.: Autosolvability of halting problem instances for instruction sequences. arXiv:0911.5018v3 [cs.LO] (2009)
Bergstra, J.A., Middelburg, C.A.: Functional units for natural numbers. arXiv:0911.1851v3 [cs.PL] (2009)
Bergstra, J.A., Middelburg, C.A.: Indirect jumps improve instruction sequence performance. arXiv:0909.2089v2 [cs.PL] (2009)
Bergstra, J.A., Middelburg, C.A.: Instruction sequence processing operators. arXiv:0910.5564v4 [cs.LO] (2009)
Bergstra J.A., Middelburg C.A.: On the operating unit size of load/store architectures. Math. Struct. Comput. Sci. 20(3), 395–417 (2010)
Bergstra J.A., Middelburg C.A.: A thread calculus with molecular dynamics. Inform. Comput. 208(7), 817–844 (2010)
Bergstra J.A., Middelburg C.A.: Inversive meadows and divisive meadows. J. Appl. Logic 9(3), 203–220 (2011)
Bergstra, J.A., Middelburg, C.A.: On the behaviours produced by instruction sequences under execution. arXiv:1106.6196v1[cs.PL] (2011)
Bergstra J.A., Middelburg C.A.: Thread extraction for polyadic instruction sequences. Sci. Ann. Comput. Sci. 21(2), 283–310 (2011)
Bergstra J.A., Middelburg C.A.: On the expressiveness of single-pass instruction sequences. Theory Comput. Syst. 50(2), 313–328 (2012)
Bergstra J.A., Ponse A.: Combining programs and state machines. J. Logic Algebr. Programm. 51(2), 175–192 (2002)
Bergstra J.A., Ponse A.: Execution architectures for program algebra. J. Appl. Logic 5(1), 170–192 (2007)
Bergstra J.A., Ponse A.: An instruction sequence semigroup with involutive anti-automorphisms. Sci. Ann. Comput. Sci. 19, 57–92 (2009)
Bergstra, J.A., Tucker, J.V.: The rational numbers as an abstract data type. J. ACM 54(2), Article 7 (2007)
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)
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)
Hermes H.: Enumerability, Decidability, Computability. Springer, Berlin (1965)
Kleene S.C.: General recursive functions of natural numbers. Math. Ann. 112, 727–742 (1936)
Lunde A.: Empirical evaluation of some features of instruction set processor architectures. Commun. ACM 20(3), 143–153 (1977)
Lynch N.A., Blum E.K.: Relative complexity of algebras. Math. Syst. Theory 14(1), 193–214 (1981)
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)
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)
Mosses, P.D.: The mathematical semantics of ALGOL 60. Tech. Rep. PRG-12, Programming Research Group, Oxford University (1974)
Mosses P.D.: Formal semantics of programming languages—an overview. Electron. Notes Theor. Comput. Sci. 148, 41–73 (2006)
Nair R., Hopkins M.E.: Exploiting instruction level parallelism in processors by caching scheduled groups. SIGARCH Comput. Archit. News 25(2), 13–25 (1997)
Ofelt, D., Hennessy, J.L.: Efficient performance prediction for modern microprocessors. In: SIGMETRICS ’00, pp. 229–239 (2000)
Patterson D.A., Ditzel D.R.: The case for the reduced instruction set computer. SIGARCH Comput. Archit. News 8(6), 25–33 (1980)
Pavlotskaya L.M.: Solvability of the halting problem for certain classes of Turing machines. Math. Notes 13(6), 537–541 (1973)
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)
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)
Shepherdson J.C., Sturgis H.E.: Computability of recursive functions. J. ACM 10(2), 217–255 (1963)
Sipser M.: Introduction to the Theory of Computation, 2nd edn. Thomson, Boston (2006)
Stoy J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, Series in Computer Science. MIT Press, Cambridge (1977)
Tennenhouse D.L., Wetherall D.J.: Towards an active network architecture. SIGCOMM Comput. Commun. Rev. 37(5), 81–94 (2007)
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)
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)
Wirsing M.: Algebraic specification. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, vol B, pp. 675–788. Elsevier, Amsterdam (1990)
Xia, C., Torrellas, J.: Instruction prefetching of systems codes with layout optimized for reduced cache misses. In: ISCA ’96, pp. 271–282 (1996)
Acknowledgments
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.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 2.0 International License (https://creativecommons.org/licenses/by/2.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
About this article
Cite this article
Bergstra, J.A., Middelburg, C.A. Instruction sequence processing operators. Acta Informatica 49, 139–172 (2012). https://doi.org/10.1007/s00236-012-0154-2
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00236-012-0154-2