Theory of Computing Systems

, Volume 50, Issue 2, pp 313–328 | Cite as

On the Expressiveness of Single-Pass Instruction Sequences

  • J. A. BergstraEmail author
  • C. A. Middelburg
Open Access


We perceive programs as single-pass instruction sequences. A single-pass instruction sequence under execution is considered to produce a behaviour to be controlled by some execution environment. Threads as considered in basic thread algebra model such behaviours. We show that all regular threads, i.e. threads that can only be in a finite number of states, can be produced by single-pass instruction sequences without jump instructions if use can be made of Boolean registers. We also show that, in the case where goto instructions are used instead of jump instructions, a bound to the number of labels restricts the expressiveness.


Single-pass instruction sequence Regular thread Expressiveness Jump-free instruction sequence 


  1. 1.
    Baker, H.G.: Precise instruction scheduling without a precise machine model. SIGARCH Comput. Archit. News 19(6), 4–8 (1991) CrossRefGoogle Scholar
  2. 2.
    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, Berlin (2003) Google Scholar
  3. 3.
    Bergstra, J.A., Loots, M.E.: Program algebra for sequential code. J. Log. Algebr. Program. 51(2), 125–156 (2002) CrossRefMathSciNetzbMATHGoogle Scholar
  4. 4.
    Bergstra, J.A., Middelburg, C.A.: Instruction sequences with indirect jumps. Sci. Ann. Comput. Sci. 17, 19–46 (2007) MathSciNetGoogle Scholar
  5. 5.
    Bergstra, J.A., Middelburg, C.A.: Synchronous cooperation for explicit multi-threading. Acta Inf. 44(7–8), 525–569 (2007) CrossRefMathSciNetzbMATHGoogle Scholar
  6. 6.
    Bergstra, J.A., Middelburg, C.A.: Distributed strategic interleaving with load balancing. Future Gener. Comput. Syst. 24(6), 530–548 (2008) CrossRefGoogle Scholar
  7. 7.
    Bergstra, J.A., Middelburg, C.A.: Instruction sequences and non-uniform complexity theory. arXiv:0809.0352v3 [cs.CC] (2008)
  8. 8.
    Bergstra, J.A., Middelburg, C.A.: Maurer computers for pipelined instruction processing. Math. Struct. Comput. Sci. 18(2), 373–409 (2008) CrossRefMathSciNetzbMATHGoogle Scholar
  9. 9.
    Bergstra, J.A., Middelburg, C.A.: Program algebra with a jump-shift instruction. J. Appl. Log. 6(4), 553–563 (2008) CrossRefMathSciNetzbMATHGoogle Scholar
  10. 10.
    Bergstra, J.A., Middelburg, C.A.: Autosolvability of halting problem instances for instruction sequences. arXiv:0911.5018v2 [cs.LO] (2009)
  11. 11.
    Bergstra, J.A., Middelburg, C.A.: Indirect jumps improve instruction sequence performance. arXiv:0909.2089v1 [cs.PL] (2009)
  12. 12.
    Bergstra, J.A., Middelburg, C.A.: Instruction sequences with dynamically instantiated instructions. Fundam. Inform. 96(1–2), 27–48 (2009) MathSciNetzbMATHGoogle Scholar
  13. 13.
    Bergstra, J.A., Ponse, A.: Execution architectures for program algebra. J. Appl. Log. 5(1), 170–192 (2007) CrossRefMathSciNetzbMATHGoogle Scholar
  14. 14.
    Cooper, D.C.: Böhm and Jacopini’s reduction of flow charts. Commun. ACM 10(8), 463, 473 (1967) CrossRefGoogle Scholar
  15. 15.
    Fernandes, T., Desharnais, J.: Describing data flow analysis techniques with Kleene algebra. Sci. Comput. Program. 65, 173–194 (2007) CrossRefMathSciNetzbMATHGoogle Scholar
  16. 16.
    Kozen, D.: A completeness theorem for Kleene algebras and the algebra of regular events. Inf. Comput. 110(2), 366–390 (1994) CrossRefMathSciNetzbMATHGoogle Scholar
  17. 17.
    Kozen, D.: Kleene algebra with tests. ACM Trans. Program. Lang. Syst. 19(3), 427–443 (1997) CrossRefGoogle Scholar
  18. 18.
    Kozen, D.: On Hoare logic and Kleene algebra with tests. ACM Trans. Comput. Log. 1(1), 60–76 (2000) CrossRefMathSciNetGoogle Scholar
  19. 19.
    Lunde, A.: Empirical evaluation of some features of instruction set processor architectures. Commun. ACM 20(3), 143–153 (1977) CrossRefGoogle Scholar
  20. 20.
    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
  21. 21.
    Ofelt, D., Hennessy, J.L.: Efficient performance prediction for modern microprocessors. In: SIGMETRICS ’00, pp. 229–239 (2000) CrossRefGoogle Scholar
  22. 22.
    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
  23. 23.
    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, Berlin (2006) Google Scholar
  24. 24.
    Salomaa, A.: Two complete axiom systems for the algebra of regular events. J. ACM 13(1), 158–169 (1966) MathSciNetzbMATHGoogle Scholar

Copyright information

© The Author(s) 2010

Authors and Affiliations

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

Personalised recommendations