Formal Aspects of Computing Protective Interface Specifications ∗

The interface specification of a procedure describes the procedure’s behaviour using preand postconditions. These preand postconditions are written using various functions. If some of these functions are partial, or underspecified, then the procedure specification may not be well-defined. We show how to write preand postcondition specifications that avoid such problems, by having the precondition “protect” the postcondition from the effects of partiality and underspecification. We formalize the notion of protection from partiality in the context of specification languages like VDM-SL and COLD-K. We also formalize the notion of protection from underspecification for the Larch family of specification languages, and for Larch show how one can prove that a procedure specification is protected from the effects of underspecification.

[1]  Donald Sannella,et al.  The Definition of Extended ML: A Gentle Introduction , 1997, Theor. Comput. Sci..

[2]  Fred B. Schneider,et al.  Avoiding the Undefined by Underspecification , 1995, Computer Science Today.

[3]  Cliff B. Jones,et al.  Partial Functions and Logics: A Warning , 1995, Inf. Process. Lett..

[4]  Natarajan Shankar,et al.  Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS , 1995, IEEE Trans. Software Eng..

[5]  Stuart H. Zweben,et al.  Part I: the RESOLVE framework and discipline: a research synopsis , 1994, SOEN.

[6]  Peter A. Lindsay,et al.  Proof in VDM: A Practitioner's Guide , 1993, Proof in VDM.

[7]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[8]  Jan Madey,et al.  The Z notation: A reference manual , 1990 .

[9]  Stephen J. Garland,et al.  Debugging Larch Shared Language Specifications , 1990, IEEE Trans. Software Eng..

[10]  A. Bijlsma,et al.  Semantics of quasi-boolean expressions , 1990 .

[11]  簡聰富 物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[12]  Andrzej Tarlecki,et al.  A three-valued logic for software specification and validation , 1988, Fundam. Informaticae.

[13]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[14]  Steven M. German,et al.  Automating proofs of the absence of common runtime errors , 1978, POPL.

[15]  Martin Gogolla,et al.  TROLL light - The Language and its Development Environment , 1995, KORSO Book.

[16]  Uwe Wolter,et al.  How to Cope with the Spectrum of SPECTRUM , 1995, KORSO Book.

[17]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[18]  Cliff B. Jones,et al.  On the Usability of Logics which Handle Partial Functions , 1991 .

[19]  James J. Horning,et al.  Report on the Larch Shared Language Version 2.3 , 1990 .

[20]  Andrzej Blikle,et al.  Three-valued predicates for software specification and validation , 1988, Fundam. Informaticae.