Structural Operational Semantics as a Basis for Formal Methods

ion levels. There are two ways to achieve this task in an SOS framework. One way acts on the control part of the abstract machine: it reduces the size of the computation steps, namely of transitions. The idea is to linearise the deduction tree of the transition, so that a higher level transition is mapped onto a sequence of lower level ones. Examples are in the VDM approach [18] and in the process algebras eld [10]. The second way acts on data to be re ned. The information about the speci c architecture on which the real implementation runs is crucial. For example, consider the problem of handling environments of mobile processes in a local fashion [2]. The speci cation of a system and its subsequent re nements, closer and closer to real code, are error prone activities. Thus, automatic tools must assist implementors. Computer aided veri cation. In the past few years, there has been a growing interest in the eld of system analysis. Some tools based on transition systems have been developed, especially in the framework of concurrency (for a survey see [17]). Most of them support the simulation of execution and/or the veri cation of semantics properties of concurrent processes represented as transition systems. 4 Conclusions Structural operational semantics enjoys the same main characteristic that a kernel of a formal method should have. It is thus a good candidate for use in large scale projects. We outline here other reasons for choosing SOS. If one is interested in a formal method that can assist developers until a system has been actually implemented, real programming languages must be tractable within the method. The SOS semantics of many programming languages, in virtually all paradigms (imperative, functional, logic, objectoriented, etc.), can be easily integrated with each other. According to [5] the success of a project based on formal methods very much depends on the availability of experts in the method itself. The mathematics behind SOS is basic and only amounts to some symbol pushing. 9 Therefore, there is little need for experts, and introductory books su ce. Structural operational techniques are described in many books [24, 15, 22, 23] that enhance comprehension and assist developers during the project. Finally, we brie y consider heterogeneous systems. The explosion of Web and the Internet navigators calls for an integration of di erent applications from di erent sites. Each application is potentially written with languages based on di erent programming paradigms. Therefore, the specication/veri cation techniques must be modular and language independent. This is the case of structural operational semantics which is a method to specify behaviour, rather than a method to specify the semantics of a xed language. As a consequence, any aspect of a system can be treated with the most appropriate language. A uniform view of the whole system is thus retrieved at the level of semantic description on which proofs and veri cations can be carried out. References [1] B. Bloom. Structural operational semantics as a speci cation language. In Proceedings of POPL'95, pages 107{117, San Francisco, California, 1995. ACM. [2] C. Bodei, P. Degano, and C. Priami. Mobile processes with a distributed environment. In Proceedings of ICALP'96, LNCS. Springer-Verlag, 1996. [3] J.P. Bowen and M.G. Hinchey. Formal methods and safety-critical standards. IEEE Computer, August 1994. [4] J.P. Bowen andM.G. Hinchey. Seven moremyths of formalmethods: dispelling industrial prejudices. In Proceedings of FME'94 (Industrial Bene ts of formal Methods), LNCS 873, pages 105{117. Springer-Verlag, 1994. [5] J.P. Bowen and M.G. Hinchey. Ten commandaments of formal methods. IEEE Computer, 28(4):56{63, 1995. [6] R.S. Boyer and J.S. Moore. A Computational Logic. Academic Press, NY, 1979. [7] R. Cleaveland, J. Parrow, and B. Ste en. The concurrency workbench: A semanticsbased tool for the veri cation of concurrent systems. ACM Transaction on Programming Languages and Systems, pages 36{72, 1993. [8] D. Craigen, S. Gerhart, and T. Ralston. An international survey of industrial application of formal methods. Technical Report NITGCR 93/626, Atomic Energy Control Board of Canada, U.S. National Institute of Standards and Technology, and U.S. Naval Research Laboratories, National Technical Information Service, 5285 Port Royal Road, Spring eld, VA 22161, USA, 1993. 10 [9] J.W. de Bakker and W.P. de Roever. A calculus for recursive program schemes. In Proceedings of ICALP'72, pages 167{196. North-Holland, 1972. [10] P. Degano and R. Gorrieri. A causal semantics of action re nement. Information and Computation, 122(1):97{121, 1995. [11] P. Degano and C. Priami. Enhanced operational semantics. ACM Computing Surveys, 1996. [12] K. Finney. Mathematical notation in formal speci cation: Too di cult for the masses? IEEE Transactions on Software Engineering, 22(2):158{159, 1996. [13] J.A. Hall. Seven myths of formal methods. IEEE Software, 7(5):11{19, 1990. [14] M.G. Hinchey and J.P. Bowen, editors. Application of formal Methods. Prentice Hall Series in Computer Science, 1995. [15] C.A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985. [16] I.S. C. Houston and S. King. CICS project report: Experiences and results from the use of Z in IBM. In S. Prehn and W.J. Toetenel, editors, Proceedings of VDM'91:Formal Software Development Methods, LNCS 551, pages 588{596. Springer-Verlag, 1991. [17] P. Inverardi and C. Priami. Automatic veri cation of distributed systems: The process algebras approach. Formal Methods in System Design, 8(1):1{37, 1996. [18] C.B. Jones. Systematic Software Development Using VDM. Prentice Hall, 1990. [19] P. Lucas. Formal de nition of programming languages and systems. In Springer Verlag, editor, Proceedings of IFIP'71, 1971. [20] D. May, G. Barrett, and D. Shepherd. Designing chips that work. In C.A. R. Hoare and M.J.C. Gordon, editors, Mechanized Reasoning and Hardware Design. Prentice Hall International Series in Computer Science, 1992. [21] J. McCarthy. Towards a mathematical science of computation. In C.M. Popplewell, editor, Information Processing 1962, pages 21{28, 1963. [22] R. Milner. Communication and Concurrency. Prentice-Hall, London, 1989. [23] F. Nielson and H.R. Nielson. Semantics with applications: a formal introduction. Wiley, 1992. [24] G. Plotkin. A structural approach to operational semantics. Technical Report DAIMI FN-19, Aarhus University, Denmark, 1981. 11