Acta Informatica

, Volume 46, Issue 5, pp 375–401 | Cite as

Machine structure oriented control code logic

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


Control code is a concept that is closely related to a frequently occurring practitioner’s view on what is a program: code that is capable of controlling the behaviour of some machine. We present a logical approach to explain issues concerning control codes that are independent of the details of the behaviours that are controlled. Using this approach, such issues can be explained at a very abstract level. We illustrate this among other things by means of an example about the production of a new compiler from an existing one. The approach is based on abstract machine models, called machine structures. We introduce a model of systems that provide execution environments for the executable codes of machine structures and use it to go into portability of control codes.


Control Code Assembly Code Executable Code Assembly Form Machine Structure 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Aho A.V., Ullman J.D.: Principles of Compiler Design. Addison-Wesley, Reading (1977)Google Scholar
  2. 2.
    Aycock J.: A brief history of just-in-time. ACM Comput. Surv. 35(2), 97–113 (2003)CrossRefGoogle Scholar
  3. 3.
    Bergstra, J.A.: Machine function based control code algebras. In: de Boer, F.S., Bonsangue, M.M., Graf, S., de Roever, W.P. (eds.) FMCO 2003, Lecture Notes in Computer Science, vol. 3188, pp. 17–41. Springer-Verlag (2004)Google Scholar
  4. 4.
    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-Verlag (2003)Google Scholar
  5. 5.
    Bergstra J.A., Klint P.: About “trivial” software patents: the IsNot case. Sci. Comput. Program. 64(3), 264–285 (2006)CrossRefMathSciNetGoogle Scholar
  6. 6.
    Bergstra J.A., Loots M.E.: Program algebra for sequential code. J. Log. Algebraic Program. 51(2), 125–156 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Bergstra J.A., Middelburg C.A.: Thread algebra with multi-level strategies. Fundam. Inform. 71(2–3), 153–182 (2006)zbMATHMathSciNetGoogle Scholar
  8. 8.
    Bergstra, J.A., Middelburg, C.A.: Machine structure oriented control code logic. Computer Science Report 07-10, Department of Mathematics and Computer Science, Eindhoven University of Technology (2007)Google Scholar
  9. 9.
    Bergstra J.A., Ponse A.: Combining programs and state machines. J. Log. Algebraic Program. 51(2), 175–192 (2002)zbMATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    Bergstra J.A., Ponse A.: Execution architectures for program algebra. J. Appl. Log. 5(1), 170–192 (2007)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Bratman H.: An alternate form of the UNCOL diagram. Commun. ACM 4(3), 142 (1961)CrossRefGoogle Scholar
  12. 12.
    Delen G.: Decision and control factors for IT-sourcing. In: Bergstra, J.A., Burgess, M. (eds) Handbook of Network and Systems Administration, pp. 929–946. Elsevier, Amsterdam (2007)Google Scholar
  13. 13.
    Earley J., Sturgis H.: A formalism for translator interactions. Commun. ACM 13(10), 607–617 (1970)zbMATHCrossRefGoogle Scholar
  14. 14.
    Fokkink W.J.: Introduction to Process Algebra. Texts in Theoretical Computer Science, An EATCS Series. Springer-Verlag, Berlin (2000)Google Scholar
  15. 15.
    Gosling J., Joy B., Steele G., Bracha G.: The Java Language Specification. 2nd edn. Addison-Wesley, Reading (2000)Google Scholar
  16. 16.
    Hejlsberg A., Wiltamuth S., Golde P.: C# Language Specification. Addison-Wesley, Reading (2003)Google Scholar
  17. 17.
    Hoare C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  18. 18.
    Janlert L.E.: Dark programming and the case for the rationality of programs. J. Appl. Log. 6(4), 545–552 (2008)CrossRefGoogle Scholar
  19. 19.
    Lindholm T., Yellin F.: The Java Virtual Machine Specification. Addison-Wesley, Reading (1996)Google Scholar
  20. 20.
    Loh L., Venkatraman N.: Diffusion of information technology outsourcing, influence sources and the Kodak effect. Inform. Syst. Res. 3(4), 334–358 (1992)CrossRefGoogle Scholar
  21. 21.
    Milner R.: Communication and Concurrency. Prentice-Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  22. 22.
    Poole, P.C., Waite, W.M.: Portability and adaptability. In: Bauer, F.L. (ed.) Software Engineering, An Advanced Course. Lecture Notes in Computer Science, vol. 30, pp. 183–277. Springer-Verlag (1975)Google Scholar
  23. 23.
    Tanenbaum A.S., Klint P., Bohm W.: Guidelines for software portability. Softw. Pract. Exp. 8, 681–698 (1978)zbMATHCrossRefGoogle Scholar
  24. 24.
    Verhoef C.: Quantitative aspects of outsourcing deals. Sci. Comput. Program. 56(3), 275–313 (2005)CrossRefMathSciNetGoogle Scholar
  25. 25.
    Watkins D., Hammond M., Abrams B.: Programming in the .NET Environment. Addison-Wesley, Reading (2003)Google Scholar
  26. 26.
    Wirth N.: Theory and Techniques of Compiler Construction. Addison-Wesley, Reading (1996)Google Scholar

Copyright information

© Springer-Verlag 2009

Authors and Affiliations

  1. 1.Programming Research GroupUniversity of AmsterdamAmsterdamThe Netherlands

Personalised recommendations