Instruction sequence processing operators

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.

[1]  Jan A. Bergstra,et al.  Program algebra with a jump-shift instruction , 2007, J. Appl. Log..

[2]  Jan A. Bergstra,et al.  A Thread Algebra with Multi-level Strategic Interleaving , 2005, CiE.

[3]  Åmund Lunde Empirical evaluation of some features of instruction set processor architectures , 1977, CACM.

[4]  Robert D. Tennent A denotational definition of the programming language pascal , 1977 .

[5]  John L. Hennessy,et al.  Efficient performance prediction for modern microprocessors , 2000, SIGMETRICS '00.

[6]  Jan A. Bergstra,et al.  Functional units for natural numbers , 2009, ArXiv.

[7]  Jan A. Bergstra,et al.  The rational numbers as an abstract data type , 2007, JACM.

[8]  Jan A. Bergstra,et al.  Indirect Jumps Improve Instruction Sequence Performance , 2012, Sci. Ann. Comput. Sci..

[9]  Bishop Brock,et al.  Formally specifying and mechanically verifying programs for the Motorola complex arithmetic processor DSP , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[10]  Maurice Margenstern,et al.  Decidability and Undecidability of the Halting Problem on Turing Machines, a Survey , 1997, LFCS.

[11]  Donald Sannella,et al.  Algebraic Preliminaries , 1999, Algebraic Foundations of Systems Specification.

[12]  Jan A. Bergstra,et al.  Polarized Process Algebra and Program Equivalence , 2003, ICALP.

[13]  David Wetherall,et al.  Towards an active network architecture , 1996, CCRV.

[14]  Henry G. Baker,et al.  Precise instruction scheduling without a precise machine model , 1991, CARN.

[15]  L. M. Pavlotskaya,et al.  Solvability of the halting problem for certain classes of Turing machines , 1973 .

[16]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[17]  Jan A. Bergstra,et al.  Autosolvability of halting problem instances for instruction sequences , 2009, ArXiv.

[18]  John C. Shepherdson,et al.  Computability of Recursive Functions , 1963, JACM.

[19]  M. Minsky Recursive Unsolvability of Post's Problem of "Tag" and other Topics in Theory of Turing Machines , 1961 .

[20]  S. Kleene General recursive functions of natural numbers , 1936 .

[21]  Jan A. Bergstra,et al.  On the Expressiveness of Single-Pass Instruction Sequences , 2010, Theory of Computing Systems.

[22]  Alban Ponse,et al.  An Introduction to Program and Thread Algebra , 2006, CiE.

[23]  Michael Sipser,et al.  Introduction to the Theory of Computation , 1996, SIGA.

[24]  Sanjeev Arora,et al.  Computational Complexity: A Modern Approach , 2009 .

[25]  Nancy A. Lynch,et al.  Relative complexity of algebras , 1981, Mathematical systems theory.

[26]  Peter D. Mosses Formal Semantics of Programming Languages: - An Overview - , 2006, Electron. Notes Theor. Comput. Sci..

[27]  Josep Torrellas,et al.  Instruction Prefetching of Systems Codes with Layout Optimized for Reduced Cache Misses , 1996, ISCA.

[28]  Jan A. Bergstra,et al.  Program algebra for sequential code , 2002, J. Log. Algebraic Methods Program..

[29]  Jan A. Bergstra,et al.  A thread calculus with molecular dynamics , 2007, Inf. Comput..

[30]  R. Nair,et al.  Exploiting Instruction Level Parallelism In Processors By Caching Scheduled Groups , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[31]  Jan A. Bergstra,et al.  An Instruction Sequence Semigroup with Involutive Anti-Automorphisms , 2009, Sci. Ann. Comput. Sci..

[32]  Jan A. Bergstra,et al.  Instruction sequences and non-uniform complexity theory , 2008, ArXiv.

[33]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[34]  Norman P. Jouppi,et al.  MIPS: A microprocessor architecture , 1982, MICRO 15.

[35]  Jan A. Bergstra,et al.  Execution architectures for program algebra , 2004, J. Appl. Log..

[36]  D MossesPeter Formal Semantics of Programming Languages , 2006 .

[37]  Jan A. Bergstra,et al.  Thread Extraction for Polyadic Instruction Sequences , 2008, Sci. Ann. Comput. Sci..

[38]  Jan A. Bergstra,et al.  Combining programs and state machines , 2002, J. Log. Algebraic Methods Program..

[39]  Jan A. Bergstra,et al.  On the Behaviours Produced by Instruction Sequences under Execution , 2011, Fundam. Informaticae.

[40]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[41]  Jan A. Bergstra,et al.  Partial Komori fields and imperative Komori fields , 2009, ArXiv.

[42]  Jan A. Bergstra,et al.  On the operating unit size of load/store architectures† , 2007, Mathematical Structures in Computer Science.

[43]  TorrellasJosep,et al.  Instruction prefetching of systems codes with layout optimized for reduced cache misses , 1996 .

[44]  Jan A. Bergstra,et al.  Inversive meadows and divisive meadows , 2009, J. Appl. Log..

[45]  Jan A. Bergstra,et al.  Program Algebra for Component Code , 2000, Formal Aspects of Computing.

[46]  David A. Patterson,et al.  The case for the reduced instruction set computer , 1980, CARN.