Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
Software interconnection models
ICSE '87 Proceedings of the 9th international conference on Software Engineering
Models of software development environments
ICSE '88 Proceedings of the 10th international conference on Software engineering
ICSE '89 Proceedings of the 11th international conference on Software engineering
Exception handling: issues and a proposed notation
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
LCLint: a tool for using specifications to check code
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Aspect: detecting bugs with abstract dependences
ACM Transactions on Software Engineering and Methodology (TOSEM)
Composition Validation and Subjectivity in GenVoca Generators
IEEE Transactions on Software Engineering
Experiences with an environment generation system
ICSE '91 Proceedings of the 13th international conference on Software engineering
Software evolution and “light” semantics (extended abstract)
Proceedings of the 21st international conference on Software engineering
Automatic Analysis of Consistency between Requirements and Designs
IEEE Transactions on Software Engineering
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
The Inscape Environment research project addresses issues in supporting the development of large systems by large numbers of programmers. One aspect of this research is the “constructive use” of formal module interface specifications - that is, given that you have formal specifications, what can you do with them. In Inscape, the specifications form the basis for providing an environment that is knowledgeable about the process of developing and evolving software systems, an environment that works in symbiosis with the programmer to develop and evolve a software system.In this discussion, I present how Inscape uses operation specifications (based on Hoare's input/output predicate approach) as the basis for synthesizing the interfaces for such complex languages statements as sequence, selection and iteration. In each of these statements, the synthesized interface is a function of the component interfaces.I first present the basic rules for interface specification use and the logical framework for interface propagation and error detection. I then define the rules for propagating the interfaces for sequence, selection, iteration and operation. Finally, I define notions of “implementation completeness and correctness”.