On Algorithmic Equivalence of Instruction Sequences for Computing Bit String Functions

Every partial function from bit strings of a given length to bit strings of a possibly different given length can be computed by a finite instruction sequence that contains only instructions to set and get the content of Boolean registers, forward jump instructions, and a termination instruction. We look for an equivalence relation on instruction sequences of this kind that captures to a reasonable degree the intuitive notion that two instruction sequences express the same algorithm.

[1]  Pamela Samuelson,et al.  Self-plagiarism or fair use , 1994, CACM.

[2]  Noson S. Yanofsky,et al.  Towards a Definition of an Algorithm , 2006, J. Log. Comput..

[3]  Nachum Dershowitz,et al.  When are Two Algorithms the Same? , 2008, The Bulletin of Symbolic Logic.

[4]  Jan A. Bergstra,et al.  Instruction Sequences for Computer Science , 2012, Atlantis Studies in Computing.

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

[6]  Vladimir A. Uspensky,et al.  What are the gains of the theory of algorithms: Basis developments connected with the concept of algorithm and with its application in mathematics , 1979, Algorithms in Modern Mathematics and Computer Science.

[7]  Yuri Gurevich,et al.  Sequential abstract-state machines capture sequential algorithms , 2000, TOCL.

[8]  Kate E Decleene,et al.  Publication Manual of the American Psychological Association , 2011 .

[9]  Moshe Y. Vardi What is an algorithm? , 2012, Commun. ACM.

[10]  Jan A. Bergstra,et al.  Instruction sequence processing operators , 2009, Acta Informatica.

[11]  Zhaofang Wen,et al.  Automatic Algorithm Recognition and Replacement: A New Approach to Program Optimization , 2000 .

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

[13]  Pierre-Louis Curien,et al.  Sequential Algorithms on Concrete Data Structures , 1982, Theor. Comput. Sci..

[14]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[15]  Jan A. Bergstra,et al.  Instruction Sequence Based Non-uniform Complexity Classes , 2014, Sci. Ann. Comput. Sci..

[16]  Mercer Jennifer Ann,et al.  PUBLICATION manual of the American Psychological Association. , 1952, Psychological bulletin.

[17]  Jan A. Bergstra,et al.  Instruction sequence expressions for the Karatsuba multiplication algorithm , 2013, Scientific Annals of Computer Science.

[18]  Jan A. Bergstra,et al.  Instruction sequence expressions for the secure hash algorithm SHA-256 , 2013, ArXiv.

[19]  Donald E. Knuth,et al.  Algorithms in Modern Mathematics and Computer Science , 1979, Lecture Notes in Computer Science.

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

[21]  Walter H. Dean,et al.  What algorithms could not be , 2007 .

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

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

[24]  Jan A. Bergstra,et al.  Predictable and Reliable Program Code: Virtual Machine-Based Projection Semantics , 2006 .

[25]  Jan A. Bergstra,et al.  Long multiplication by instruction sequences with backward jump instructions , 2013, ArXiv.

[26]  Rob J. van Glabbeek,et al.  The Linear Time - Branching Time Spectrum I , 2001, Handbook of Process Algebra.

[27]  V. A. Uspenski,et al.  On the Definition of an Algorithm , 1963 .