High Level System Design and Analysis Using Abstract State Machines

  • Egon Börger
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1641)

Abstract

We provide an introduction to a practical method for rigorous system development which has been used successfully, under industrial constraints, for design and analysis of complex hardware/software systems. The method allows one to start system development with a trustworthy high level system specification and to link such a “ground model” in a well documented and inspectable way through intermediate design steps to its implementation. The method enhances traditional operational modelling and analysis techniques by incorporating the most general abstraction, decomposition and refinement mechanisms which have become available through Gurevich’s Abstract State Machines. Through its versatility the ASM approach is non-monolithic and integratable at any development level into current design and analysis environments. We also collect experimental evidence for the ASM thesis, a generalization of Turing’s thesis.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abraham, R.: Evaluating Generalized Tabular Expressions in Software Documentation. M. Eng. Thesis, CRL Report 346, McMaster University, Hamilton, Ontario, Canada (1997)Google Scholar
  2. 2.
  3. 3.
    Abrial, J.-R.: The B-Book. Assigning Programs to Meanings. Cambridge University Press (1996)Google Scholar
  4. 4.
    Anlauff, M., Kutter, P., Pierantonio, A.: Formal Aspects of and Development Environments for Montages. In: Sellink, M. (ed): 2nd International Workshop on the Theory and Practice of Algebraic Specifications. Springer Workshops in Computing (1997)Google Scholar
  5. 5.
    Araujo, L.: Correctness Proof of a Distributed Implementation of Prolog by Means of ASMs. J. of Universal Computer Science. Special ASM Issue 3(5) (1997)Google Scholar
  6. 6.
    Aristotle. Analytica Posteriora I,1, 71a,1 sq.Google Scholar
  7. 7.
    Banach, R., Poppleton, M.: Retrenchment: An Engineering Variation on Refinement. In: Bert, D. (ed): B’98: Recent Advances in the Development and Use of the B Method. Lecture Notes in Computer Science, Vol. 1393. Springer-Verlag, Berlin Heidelberg New York (1998) 129–147CrossRefGoogle Scholar
  8. 8.
    Barnocchi, D.: L“Evidenza” nell’assiomatica aristotelica. Proteus II, 5 (1971) 133–144Google Scholar
  9. 9.
    Batory, D., Singhai, V., Sirkin, M., Thomas, J.: Scalable Software Libraries. ACM SIGSOFT’93: Symposium on the Foundations of Software Engineering. Los Angeles/California (1993)Google Scholar
  10. 10.
    Batory, D., Coglianese, L., Goodwin, M., Shafer, S.: Creating Reference Architectures: An Example from Avionics. Symposium on Software Reusability. Seattle/Washigton (1995)Google Scholar
  11. 11.
    Batory, D., O’Malley, S.: The Design and Implementation of Hierarchical Software Systems with Reusable Components. ACM Transactions on Software Eng. and Methodology (October 1992)Google Scholar
  12. 12.
    Behm, P. Burdy, L., Meynadier, J.-M.: Well Defined B. In: Bert, D. (ed): B’98: Recent Advances in the Development and Use of the B Method. Lecture Notes in Computer Science, Vol. 1393. Springer-Verlag, Berlin Heidelberg New York (1998) 29–45CrossRefGoogle Scholar
  13. 13.
    Blass, A., Gurevich, Y.: The Linear Time Hierarchy Theorems for Abstract State Machines. J. of Universal Computer Science. Special ASM Issue, 3(4) (1997) 247–278MATHMathSciNetGoogle Scholar
  14. 14.
    Blass, A., Gurevich, Y., Shelah, S.: Choiceless Polynomial Time. EECS Dept. University of Michigan, Technical Report CSE-TR-338-97 (1997)Google Scholar
  15. 15.
    Beierle, Ch., Börger, E.: Specification and Correctness Proof of a WAM Extension with Abstract Type Constraints. Formal Aspects of Computing 8(4) (1996) 428–462MATHCrossRefGoogle Scholar
  16. 16.
    Beierle, Ch., Börger, E.: Refinement of a Typed WAM Extension by Polymorphic Order-Sorted Types. Formal Aspects of Computing 8(5) (1996) 539–564MATHCrossRefGoogle Scholar
  17. 17.
    Beierle, Ch., Börger, E., Đurđanović I., Glässer, U., Riccobene, E.: Refining Abstract Machine Specifications of the Steam Boiler Control to Well Documented Executable Code. In: Abrial, J.-R., Börger, E., Langmaack, H. (eds.): Formal Methods for Industrial Applications. Specifying and Programming the Steam-Boiler Control. Lecture Notes in Computer Science, State-of-the-Art Survey, Vol. 1165. Springer-Verlag, Berlin Heidelberg New York (1996) 52–78Google Scholar
  18. 18.
    Börger, E.: A Logical Operational Semantics for Full Prolog. Part I: Selection Core and Control. CSL’89. Lecture Notes in Computer Science, Vol. 440. Springer-Verlag, Berlin Heidelberg New York (1990) 36–64Google Scholar
  19. 19.
    Börger, E.: A Logical Operational Semantics for Full Prolog. Part II: Built-in Predicates for Database Manipulations. In: Rovan, B. (ed): MFCS’90. Mathematical Foundations of Computer Science. Lecture Notes in Computer Science, Vol. 452. Springer-Verlag, Berlin Heidelberg New York (1990) 1–14Google Scholar
  20. 20.
    Börger, E.: Logic Programming: The Evolving Algebra Approach. In: Pehrson, B., Simon, I. (eds): IFIP 13th World Computer Congress 1994. Volume I: Technology and Foundations. Elsevier, Amsterdam (1994) 391–395Google Scholar
  21. 21.
    Börger, E.: Why Use Evolving Algebras for Hardware and Software Engineering. In: Bartosek, M., Staudek, J., Wiedermann, J.(eds): SOFSEM’95. 22nd Seminar on Current Trends in Theory and Practice of Informatics. Lecture Notes in Computer Science, Vol. 1012. Springer-Verlag, Berlin Heidelberg New York (1995) 236–271Google Scholar
  22. 22.
    Börger, E., Dässler, K.: Prolog: DIN Papers for Discussion. ISO/IEC JTCI SC22 WG17 Prolog standardization document, no. 58,. NPI, Middlesex (1990) 92–114Google Scholar
  23. 23.
    ISO/IEC 13211-1 Information Technology-Programming Languages-Prolog-Part 1: General Core (1995)Google Scholar
  24. 24.
    Börger, E., Del Castillo, G.: A Formal Method for Provably Correct Composition of a Real-Life Processor out of Basic Components (The APE100 Reverse Engineering Project). Proc. of the First IEEE International Conference on Engineering of Complex Computer Systems (ICECCS’95). Extended version in: Gurevich, Y., Börger, E. (eds): Evolving Algebras. Mini-Course. University of Aarhus. BRICS NS-95-4 (1995) 195–222Google Scholar
  25. 25.
    Börger, E., Demoen, B.: A Framework to Specify Database Update Views for Prolog. In: Maluszynski, M. J. (ed): PLILP’91. Lecture Notes in Computer Science, Vol. 528. Springer-Verlag, Berlin Heidelberg New York (1991) 147–158. See also: The View on Database Updates in Standard Prolog: a Proposal and a Rationale. In: ISO/IEC JTC1 SC22 WG17 Prolog Standardization Report no.74 (February 1991) pp. 3–10Google Scholar
  26. 26.
    Börger, E., Đurđanović, I.: Correctness of Compiling Occam to Transputer Code. Computer Journal 39(1) (1996) 52–92CrossRefGoogle Scholar
  27. 27.
    Börger, E., Đurđanović, I., Rosenzweig, D.: Occam: Specification and Compiler Correctness. Part I: The Primary Model. In: Olderog, E.-R. (ed): Proc. of PRO-COMET’94 (IFIP Working Conference on Programming Concepts, Methods and Calculi). North-Holland (1994) 489–508Google Scholar
  28. 28.
    Börger, E., Glässer, U.: A Formal Specification of the PVM Architecture. In: Pehrson, B., Simon, I. (eds): IFIP 13th World Computer Congress 1994. Volume I: Technology and Foundations. Elsevier, Amsterdam (1994) 402–409Google Scholar
  29. 29.
    Börger, E., Glässer, U.: Modelling and Analysis of Distributed and Reactive Systems Using Evolving Algebras. In: Gurevich, Y., Börger, E. (eds): Evolving Algebras. Mini-Course. University of Aarhus. BRICS NS-95-4 (1995) 128–153Google Scholar
  30. 30.
    Börger, E., Glässer, U., Mueller, W.: The Semantics of Behavioral VHDL’93 Descriptions. EURO-DAC’94 European Design Automation Conference with EURO-VHDL’94. Proc. IEEE CS Press, Los Alamitos/CA (1994) 500–505Google Scholar
  31. 31.
    Börger, E., Glässer, U., Mueller, W.: Formal Definition of an Abstract VHDL’93 Simulator by EA-Machines. In: Delgado Kloos, C, Breuer, P.T. (eds): Semantics of VHDL. Kluwer (1995) 107–139Google Scholar
  32. 32.
    Börger, E., Gurevich, E., Y.., Rosenzweig, D.: The Bakery Algorithm: Yet Another Specification and Verification. In: Börger, E. (ed): Specification and Validation Methods. Oxford University Press, (1995) 231–243Google Scholar
  33. 33.
    Börger, E., Huggins, J.: Annotated Bibliography on Abstract State Machines (ASMs). EATCS Bulletin (February 1998)Google Scholar
  34. 34.
    Börger, E., Lopez-Fraguas, F.J., Rodrigues-Artalejo, M.: A Model for Mathematical Analysis of Functional Logic Programs and their Implementations. In: Pehrson, B., Simon, I. (eds): IFIP 13th World Computer Congress 1994. Volume I: Technology and Foundations. Elsevier, Amsterdam (1994) 410–415. Full version: Towards a Mathematical Specification of Narrowing Machines. Report DIA 94/5, Dep. Informática y Automática. Universidad Complutense, Madrid (March 1994) 1–30Google Scholar
  35. 35.
    Börger, E., Mazzanti., S.: A Practical Method for Rigorously Controllable Hard ware Design. In: Bowen, J.P., Hinchey, M.B., Till, D. (eds): ZUM’97: The Z Formal Specification Notation. Lecture Notes in Computer Science, Vol. 1212. Springer-Verlag, Berlin Heidelberg New York (1997) 151–187CrossRefGoogle Scholar
  36. 36.
    Börger, E., Mearelli, L.: Integrating ASMs into the Software Development Life Cycle. J. of Universal Computer Science, Special ASM Issue, 3(5) (1997) 603–665MATHGoogle Scholar
  37. 37.
    Börger, E., Riccobene, E.: A Formal Specification of Parlog. In: Droste, M., Gurevich, Y. (eds): Semantics of Programming Languages and Model Theory. Gordon and Breach (1993) 1–42Google Scholar
  38. 38.
    Börger, E., Rosenzweig, D.: An Analysis of Prolog Database Views and their Uniform Implementation. In: Prolog. Paris Papers-2. ISO/IEC JTC1 SC22 WG17 Prolog Standardization Report no.80 (July 1991) 87–130Google Scholar
  39. 39.
    Börger, E., Rosenzweig, D.: A Mathematical Definition of Full Prolog. Science of Computer Programming. 24 (1995) 249–286MATHCrossRefMathSciNetGoogle Scholar
  40. 40.
    Börger, E., Rosenzweig, D.: The WAM-Definition and Compiler Correctness. In: Beierle, Ch., Plümer, L. (eds): Logic Programming: Formal Methods and Practical Applications. Elsevier Science B.V./North-Holland (1995) 20–90Google Scholar
  41. 41.
    Börger, E., Salamone, R.: CLAM Specification for Provably Correct Compilation of CLP(\( \mathcal{R} \)) Programs. In: Börger, E. (ed): Specification and Validation Methods. Oxford University Press, (1995) 97–130Google Scholar
  42. 42.
    Börger, E., Schmitt, P.: A Formal Operational Semantics for Languages of Type Prolog III. Lecture Notes in Computer Science, Vol. 533. Springer-Verlag, Berlin Heidelberg New York (199) 67–79Google Scholar
  43. 43.
    Börger, E., Schulte, W.: Programmer Friendly Modular Definition of the Semantics of Java. In: Alves-Foss, J. (ed): Formal Syntax and Semantics of Java. Lecture Notes in Computer Science, Vol. 1523. Springer-Verlag, Berlin Heidelberg New York (1999) 353–404. Extended Abstract in: Berghammer, R., Simon, F. (eds): Programming Languages and Fundamentals of Programming. University of Kiel (Germany) TR 9717 (1997) 175–181.CrossRefGoogle Scholar
  44. 44.
    Börger, E., Schulte, W.: Defining the Java Virtual Machine as Platform for Provably Correct Java Compilation. In: Brim, L., Gruska, J., Zlatuska, J. (eds): Proc. MFCS’98. Lecture Notes in Computer Science, Vol. 1450. Springer-Verlag, Berlin Heidelberg New York (1998) 17–35Google Scholar
  45. 45.
    Börger, E., Schulte, W.: Initialization Problems for Java. Software-Concepts and Tools 20(4) (1999)Google Scholar
  46. 46.
    Börger, E., Schulte, W.: Modular Design for the Java Virtual Machine Architecture. In: Börger, E. (ed): Architecture Design and Validation Methods. Springer Verlag, Berlin Heidelberg New York 1999Google Scholar
  47. 47.
    Bowen, D. Personal communication. Palo Alto (5.11.1991)Google Scholar
  48. 48.
    Bowen, J.P.: Formal Specification and Documentation Using Z: A Case Study Approach. Int. Thomson Computer Press (1996)Google Scholar
  49. 49.
    Büchi, J.R.: Finite Automata, their Algebras and Grammars. Siefkes, D. (ed). Springer-Verlag (1988)Google Scholar
  50. 50.
    Chow, T.S.: Testing Software Design Modeled by Finite State Machines. IEEE Trans.Softw.Engineering 4(3) (1978) 178–187CrossRefGoogle Scholar
  51. 51.
    Cremers, A.B.C., Hibbard, T.N.: Formal Modeling of Virtual Machines. IEEE Transactions on Software Engineering SE-4(5) (1987) 426–436CrossRefGoogle Scholar
  52. 52.
    Dahl, O.: Discrete Event Simulation Languages. In: F. Genuys (ed): Programming Languages. Academic Press (1968) 349–395Google Scholar
  53. 53.
    Dahl, O., Dijkstra, E., Hoare, C.: Structured Programming. Academic Press (1972)Google Scholar
  54. 54.
    Del Castillo, G.: Towards Comprehensive Tool Support for Abstract State Machines: The ASM Workbench Tool Environment and Architecture. This volumeGoogle Scholar
  55. 55.
    Del Castillo, G., Hardt, W.: Fast Dynamic Analysis of Complex HW/SW-Systems based on Abstract State Machines. IEEE Proc. 6th. International Workshop on HW/SW Co-Design (CODES/CASHE’98). Washington (March 1998)Google Scholar
  56. 56.
    Dijkstra, E.W.: Structure of the T.H.E. Multiprogrammming System. Communications of ACM 11 (1968) 341–346MATHCrossRefGoogle Scholar
  57. 57.
    Dijkstra, E.W.: Notes on Structured Programming. In: Structured Programming. Academic Press, New York (1972) 1–82Google Scholar
  58. 58.
    Dold, A.: A Formal Representation of Abstract State Machines using PVS. Verifix Report Ulm/6.2 (July 1998) 1–25Google Scholar
  59. 59.
    Eilenberg, S.: Automata, Languages and Machines. Vol.A. Academic Press (1974)Google Scholar
  60. 60.
    Fitzgerald, J., Gorm Larsen, P.: Modelling Systems. Practical Tools and Techniques in Software Development. Cambridge University Press (1998)Google Scholar
  61. 61.
    Fuchs, N.E.: Specifications are (Preferably) Executable. IEE/BCS Software Engi neering Journal 7(5) (1992) 323–334Google Scholar
  62. 62.
    Gaudel, M.C.: Génération et Preuve de Compilateurs Basées sur une Sémantique Formelle des Langages de Programmation. Thèse, L’Institut National Polytechnique de Lorraine (1980)Google Scholar
  63. 63.
    Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, B., Sunderam, V.: PVM 3 User’s Guide and Reference Manual. Technical Report ORNL/TM-12187. Oak Ridge National Laboratory, Oak Ridge/Tennessee 37831 (September 1994)Google Scholar
  64. 64.
    Glässer, U., Gotzhein, R.: Towards a New Formal SDL Semantics-Outline of an ASM Behavior Model. Submitted to 9th SDL Forum, Montreal/Quebec (21–25 June 1999) http://www.iro.umontreal.ca/SDL/.
  65. 65.
    Glässer, U., Karges, R.: Abstract State Machines Semantics of SDL. J. of Universal Computer Science 3(12) (1997) 1382–1414MATHGoogle Scholar
  66. 66.
    Glässer, U., Prinz, A.: Abstract State Machines Semantics of SDL. Submitted (1999)Google Scholar
  67. 67.
    Giese, M., Kempe, D., Schönegge, A.: KIV zur Verifikation von ASM-Spezifikationen am Beispiel der DLX-Pipelining Architektur. University of Karlsruhe, Institute for Logic, Complexityy and Deduction Systems. Int. Rep. 16/97 (1997) 1–37Google Scholar
  68. 68.
    Goerigk, W., Hoffmann, U.: Rigorous Compiler Implementation Correctness: How to Prove the Real Thing Correct. This volumeGoogle Scholar
  69. 69.
    Gosling, J., Joy, B., Steele, G.: The Java(tm) Language Specification. Addison Welsley (1996)Google Scholar
  70. 70.
    Grädel, E., Gurevich, Y.: Metafinite Model Theory. Lecture Notes in Computer Science, Vol. 960. Springer-Verlag, Berlin Heidelberg New York (1995) 313–366Google Scholar
  71. 71.
    Gurevich, Y: A New Thesis. Abstracts. American Mathematical Society (August 1985) 85T-68-203.Google Scholar
  72. 72.
    Gurevich, Y.: Algorithms in the World of Bounded Resources. In: Herken, R. (ed): The Universal Turing Machine-A Half-Century Story. Oxford University Press (1988) 407–416.Google Scholar
  73. 73.
    Gurevich, Y.: Logic and the Challenge of Computer Science. In: Börger, E. (ed): Current Trends in Theoretical Computer Science. Computer Science Press (1988) 1–57Google Scholar
  74. 74.
    Gurevich, Y.: Evolving Algebras: An Attempt to Discover Semantics. Bulletin EATCS 43 (1991) 264–284. Slightly revised in: Rozenberg, G., Salomaa, A. (eds): Current Trends in Theoretical Computer Science. World Scientific (1993) 274–308MATHGoogle Scholar
  75. 75.
    Gurevich, Y.: Evolving Algebra 1993: Lipari Guide. In: Börger, E. (ed): Specification and Validation Methods. Oxford University Press (1995) 9–36Google Scholar
  76. 76.
    Gurevich, Y.: The Sequential ASM Thesis. Bulletin of the EATCS (February 1999)Google Scholar
  77. 77.
    Hayes, I.J., Jones, C.B.: Specifications are not (Necessarily) Executable. IEE/BCS Software Engineering Journal 4(6) (1989) 330–338CrossRefGoogle Scholar
  78. 78.
    Heberle, A., Löwe, W., Trapp, M.: Safe Reuse of Source to Intermediate Language Compilations. In: Chillarege, R. (ed): Proc. 9th. Int. Symp. on Software Reliability Engineering (1998) http://www.chillarege.com/issre/fastabstracts/98417.html
  79. 79.
    Hinrichsen, H.: Formally Correct Construction of a Pipelined DLX Architecture. Darmstad University of Technology, Dept. of Electrical and Computer Engineering. TR 98-5-1 (1998)Google Scholar
  80. 80.
    Hoare, C.A.R.: The Structure of an Operating System. Lecture Notes in Computer Science, Vol. 46. Springer-Verlag, Berlin Heidelberg New York (1976) 242–265Google Scholar
  81. 81.
    Hoare, C.A.R.: Mathematical Models for Computing Science. Manuscript (August 1994) 1–65Google Scholar
  82. 82.
    Holcombe, M.: X-Machines as a Basis for Dynamic System Specification. Software Engineering Journal 3(2) (1988) 69–76CrossRefGoogle Scholar
  83. 83.
    Holcombe, M., Ipate, F.: Correct Systems. Springer-Verlag, Berlin Heidelberg New York (1998)MATHGoogle Scholar
  84. 84.
    Horning, J., Randell, B.: Process Structuring. Computing Surveys 5 (1973) 5–30MATHCrossRefGoogle Scholar
  85. 85.
    Huggins, J. K., Van Campenhout, D.: Specification and Verification of Pipelining in the ARM2 RISC Microprocessor. ACM Transactions on Design Automation of Electronic Systems 3(4) (October 1998)Google Scholar
  86. 86.
    IEEE Standard VHDL Language Reference Manual—IEEE Std 1076–1993. The Institute of Electrical and Electronics Engineering. New York/NY (1994)Google Scholar
  87. 87.
    Janicki, R.: On a Formal Semantics of Tabular Expressions. Faculty of Engineering, McMaster University. Hamilton/Ontario. CRL Report 355 (1997). Short version in: Towards a Formal Semantics of Parnas Tables. ACM/IEEE Proceedings of the 17th International Conference on Software Engineering, Seattle (April 1995) 231–240Google Scholar
  88. 88.
    Janicki, R., Parnas, D.L., Zucker, J.I.: Tabular Representations in Relational Documents. In: Brink, C., Kahl, W., Schmidt, G. (eds): Relational Methods in Computer Science. Springer-Verlag, Berlin Heidelberg New York (1997) 184–196Google Scholar
  89. 89.
    Kutter, P.W., Schweitzer, D., Thiele, L.: Integrating Formal Domain Specific Language Design in the Software Life Cycle. This volumeGoogle Scholar
  90. 90.
    Kwon, K.: A Structured Presentation of a Closure-Based Compilation Method for a Scoping Notion in Logic Programming. J. of Universal Computer Science, Special ASM Issue, 3(4) (1997) 341–376MATHGoogle Scholar
  91. 91.
    Lavagno, L., Sangiovanni-VincenteHi, A., Sentovich, E.M.: Models of Computation for System Design. In: Börger, E. (ed): Architecture Design and Validation Methods. Springer-Verlag, Berlin Heidelberg New York (1999)Google Scholar
  92. 92.
    Laycock, G.T.: The Theory and Practice of Specification Based Testing. PH.D. Thesis, University of Sheffield, UK (1992)Google Scholar
  93. 93.
    Lötzbeyer, A.: Task Description of a Fault-Tolerant Production Cell. FZI, University of Karlsruhe/Germany. Version 1.6 (June 17, 1996)Google Scholar
  94. 94.
    Lötzbeyer, A., Mühlfeld, R.: Task Description of a Flexible Production Cell with Real Time Properties. FZI, University of Karlsruhe and Siemens ZT SE 1/Germany. Version 2.1 (July 30, 1996)Google Scholar
  95. 95.
    Mearelli, L.: Refining an ASM Specification of the Production Cell to C ++ Code. J. of Universal Computer Science, Special ASM Issue 3(5) (1997) 666–688MATHGoogle Scholar
  96. 96.
    Marcotty, M., Ledgard, H.F.: The World of Programming Languages. Springer-Verlag, Berlin Heidelberg New York (1986)Google Scholar
  97. 97.
    Van der Meulen, M., Clement, T.: Formal Methods in the Specification of the Emergency Closing System of the Eastern Scheldt Storm Surge Barrier. This volumeGoogle Scholar
  98. 98.
    Mosses, P.D.: Denotational Semantics. In: van Leeuwen, J.(ed.): Handbook of TCS. Elsevier (1990)Google Scholar
  99. 99.
    Mosses, P.D.: Action Semantics. Cambridge University Press (1992)Google Scholar
  100. 100.
    Nielson, H.R., Nielson, F.: Semantics with Applications. Wiley (1992)Google Scholar
  101. 101.
    Pair, C: Types Abstraits et Sémantique Algébrique des Langages de Programmation. Centre de Recherche en Informatique de Nancy. TR 80-R-011 (February/July 1980) 1–46Google Scholar
  102. 102.
    Päppinghaus, P., Börger, E.: Industrial Use of ASMs for System Documentation. In: Jähnichen, S., Loeckx, J., Wirsing, M. (eds): Logic for System Engineering. Dagstuhl Seminar Report 171 (9710) 26Google Scholar
  103. 103.
    Parnas, D.L.: Information Distribution Aspects of Design Methodology. In: Freiman, C.V. (ed): Proc. of IFIP Congress 1971. Volume 1: Foundations and Systems. North-Holland (1972) 339–344Google Scholar
  104. 104.
    Parnas, D.L.: Personal communication (1997)Google Scholar
  105. 105.
    Parnas, D.L.: “Formal Methods” Technology Transfer Will Fail. J. Systems Software 40 (1998) 195–198CrossRefGoogle Scholar
  106. 106.
    Parnas, D.L., Darringer, J.: SODAS and a Methodology for System Design. Proc. AFIPS Fall Joint Conf. Vol.31. Academic Press (1967) 449–474Google Scholar
  107. 107.
    Parnas, D.L., Madey, J.: Functional Documents for Computer Systems. Science of Computer Programming 25 (1995) 41–62CrossRefGoogle Scholar
  108. 108.
    Pippenger, N.: Pure versus Impure Lisp. ASM Transactions on Programming Languages and Systems 19 (1997) 223–238CrossRefGoogle Scholar
  109. 109.
    Popper, K.: Logik der Forschung (1935)Google Scholar
  110. 110.
    Potet, M.-L., Rouzaud, Y.: Composition and Refinement in the B-Method. In: Bert, D. (ed): B’98: Recent Advances in the Development and Use of the B Method. Lecture Notes in Computer Science, Vol. 1393. Springer-Verlag, Berlin Heidelberg New York (1998) 46–65CrossRefGoogle Scholar
  111. 111.
    Pusch, C.: Verification of Compiler Correctness for the WAM. In: Von Wright, J., Grundy, J., Harrison, J. (eds): Theorem Proving in Higher Order Logics (TPHOLs’96). Lecture Notes in Computer Science, Vol. 1125. Springer-Verlag, Berlin Heidelberg New York (1996) 347–362Google Scholar
  112. 112.
    Ramadge, P.J.G., Wonham, W.M.: The Control of Discrete Event Systems. Proc. of the IEEE 77(1) (1989) 81–98CrossRefGoogle Scholar
  113. 113.
    Reisig, W.: Elements of Distributed Algorithms. Modeling and Analysis with Petri Nets. Springer-Verlag, Berlin Heidelberg New York (1998)Google Scholar
  114. 114.
    Rischel, H., Sun, H.: Design and Prototyping of Real-Time Systems using CSP and CML. 9th Euromicro Workshop on Teal-Time Systems. Toledo (June 11–13, 1997)Google Scholar
  115. 115.
    Schellhorn, G.: Verifikation abstrakter Zustandsmaschinen. PhD Thesis. University of Ulm (1999)Google Scholar
  116. 116.
    Schellhorn, G., Ahrendt, W.: Reasoning about Abstract State Machines: The WAM Case Study. J. of Universal Computer Science. Special ASM Issue, 3(4) (1997) 377–413MATHMathSciNetGoogle Scholar
  117. 117.
    Schwank, I.: Zur Konzeption prädikativer versus funktionaler kognitiver Strukturen und ihrer Anwendung. Zentralblatt für Didaktik der Mathematik 6 (1996) 168–183Google Scholar
  118. 118.
    Scott, D.: Some Definitional Suggestions for Automata Theory. J. of Computer and System Sciences 1 (1967) 187–212MATHGoogle Scholar
  119. 119.
    Shaw, M.: The Impact of Abstraction Concerns on Modern Programming Languages. Proc. IEEE 68(9) (1980)Google Scholar
  120. 120.
    Shaw, M., Garlan, D.: Formulations and Formalisms in Software Architecture. In: van Leeuwen, J. (ed): Computer Science Today: Recent Trends and Developments. Springer-Verlag, Berlin Heidelberg New York (1995) 307–323Google Scholar
  121. 121.
    Sommerville, I.: Software Engineering. Addison-Wesley (1992)Google Scholar
  122. 122.
    Soni, D., North, R.L., Hofmeister, C.: Software Architecture in Industrial Applications. Proc. 17th ACM Conf. Sw. Engg.. Seattle (1995)Google Scholar
  123. 123.
    Stark, R.: The Theoretical Foundations of LPTP (A Logic Program Theorem Prover). The Journal of Logic Programming 36 (1998) 241–269CrossRefGoogle Scholar
  124. 124.
    Stegmüller, M.M.: Formale Verifikation des DLX RISC-Prozessors: Eine Fallstudie basierend auf abstrakten Zustandsmaschinen. Diploma Thesis, University of Ulm (1998)Google Scholar
  125. 125.
    Stenzel, K., Haneberg, D.: Personal communication. KIV Group, University of Ulm/GermanyGoogle Scholar
  126. 126.
    Tanenbaum, A.S.: Structured Computer Organization (1976)Google Scholar
  127. 127.
    Tarski, A.: Der Wahrheitsbegriff in den formalisierten Sprachen. Studia Philosophica 1 (1936) 261–405Google Scholar
  128. 128.
    Thue, A.: Probleme über Veränderungen von Zeichenreihen nach gegebenen Regeln. Skr.Videnks.Sels I (10) 1–34Google Scholar
  129. 129.
    Turing, A.: On computable numbers, with an application to the Entscheidungsproblem. Proc. London Math. Soc. (2) 42 (1937) 230–265CrossRefGoogle Scholar
  130. 130.
    UML—Unified Modeling Language. Rational Software Corporation. Updates via the worldwide web (http://www.rational.com)
  131. 131.
    Goerigk, W., Dold, A., Gaul, T., Goos, G., Heberle, A., von Henke, F. W., Hoffmann, U., Langmaack, H., Pfeifer, H., Ruess, H., Zimmermann, W.: Compiler Correctness and Implementation Verification: The Verifix Approach. In: Fritzson, P. (ed): Proceedings of the Poster Session of CC’96— International Conference on Compiler Construction. IDA Technical Report LiTH-IDA-R-96-12. Linköping/Sweden (1996)Google Scholar
  132. 132.
    Winter, K.: Model Checking for Abstract State Machines. J. of Universal Computer Science. Special ASM Issue, 3(5) (1997)Google Scholar
  133. 133.
    Wirsing, M.: Handbook of Algebraic Specifications. In: van Leeuwen, J. (ed): Handbook of Theoretical Computer Science B. Elsevier (1990) 675–788Google Scholar
  134. 134.
    Wirth, N.: Program Development by Stepwise Refinement. Comm. ACM 14(4) (1971)Google Scholar
  135. 135.
    Wirth, N.: Algorithms & Data Structures. Prentice-Hall (1975)Google Scholar
  136. 136.
    Zimmermann, W., Gaul, T.: On the Construction of Correct Compiler Back-Ends: An ASM Approach. J. of Universal Computer Science. Special ASM Issue, 3(5) (1997) 504–567MATHMathSciNetGoogle Scholar
  137. 137.
    Zurcher, F.W., Randell, B.: Iterative Multi-Level Modelling-A Methdology for Computer System Design. Proc. IFIP Congress 1968. North-Holland, Amsterdam (1968) 867–871Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Egon Börger
    • 1
  1. 1.Dipartimento di InformaticaUniversità di PisaPisaItaly

Personalised recommendations