Report on the Larch shared language
Science of Computer Programming
A Larch shared language handbook
Science of Computer Programming
Combining algebraic and predicative specifications in Larch
Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT) on Formal Methods and Software, Vol.2: Colloquium on Software Engineering (CSE)
Final Data Types and Their Specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Abstract data types and the development of data structures
Communications of the ACM
Communications of the ACM
A technique for software module specification with examples
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
CLU Reference Manual
Software Development: A Rigorous Approach
Software Development: A Rigorous Approach
Computer experiments with the REVE term rewriting system generator
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Formal specification as a design tool
POPL '80 Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Fundamentals of Algebraic Specification I
Fundamentals of Algebraic Specification I
Iota Programming System
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design
The Vienna Development Method: The Meta-Language
The Vienna Development Method: The Meta-Language
Parameterized Data Types in Algebraic Specification Languages (Short Version)
Proceedings of the 7th Colloquium on Automata, Languages and Programming
Data type specification: Parameterization and the power of specification techniques
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
A PROGRAM FOR GENERATING AND ANALYZING TERM REWRITING SYSTEMS
A PROGRAM FOR GENERATING AND ANALYZING TERM REWRITING SYSTEMS
ABSTRACT MODEL SPECIFICATIONS FOR DATA ABSTRACTIONS
ABSTRACT MODEL SPECIFICATIONS FOR DATA ABSTRACTIONS
TOWARDS A THEORY FOR ABSTRACT DATA TYPES
TOWARDS A THEORY FOR ABSTRACT DATA TYPES
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS
The specification and application to programming of abstract data types.
The specification and application to programming of abstract data types.
Principles of Program Design
Please: a language combining imperative and logic programming
ACM SIGPLAN Notices
Knowledge base applications with software engineering: a tool for requirements specifications
IEA/AIE '88 Proceedings of the 1st international conference on Industrial and engineering applications of artificial intelligence and expert systems - Volume 1
ICSE '88 Proceedings of the 10th international conference on Software engineering
AUTO STAR—a software development system
ACM SIGPLAN Notices
Penelope, an Ada verification system
TRI-Ada '89 Proceedings of the conference on Tri-Ada '89: Ada technology in context: application, development, and deployment
Stepwise refinement process with modularity
ICSE '89 Proceedings of the 11th international conference on Software engineering
Developing formally verified Ada programs
IWSSD '89 Proceedings of the 5th international workshop on Software specification and design
Specification and verification of network managers for large internets
SIGCOMM '89 Symposium proceedings on Communications architectures & protocols
Reasoning about object-oriented programs that use subtypes
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Structured analysis—formal design, using stream and object oriented formal specifications
Conference proceedings on Formal methods in software development
Formal Verification of Ada Programs
IEEE Transactions on Software Engineering
Specification-level interoperability
Communications of the ACM - Special issue on software engineering
Procedural implementation of algebraic specification
ACM Transactions on Programming Languages and Systems (TOPLAS)
Inheritance of interface specifications (extended abstract)
IDL '94 Proceedings of the workshop on Interface definition languages
The Larch/Smalltalk interface specification language
ACM Transactions on Software Engineering and Methodology (TOSEM)
Daistish: systematic algebraic testing for OO programs in the presence of side-effects
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Using formal methods for teaching software engineering: a tool-based approach
Annals of Software Engineering - Special issue on software engineering education
Proceedings of the 2001 ACM symposium on Applied computing
Executing Formal Specifications with Concurrent Constraint Programming
Automated Software Engineering
Techniques for Embedding Executable Specifications in Software Component Interfaces
ICCBSS '03 Proceedings of the Second International Conference on COTS-Based Software Systems
An Informal Formal Method for Systematic JUnit Test Case Generation
Proceedings of the Second XP Universe and First Agile Universe Conference on Extreme Programming and Agile Methods - XP/Agile Universe 2002
Enhancing the Pre- and Postcondition Technique for More Expressive Specifications
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
How the design of JML accommodates both runtime assertion checking and formal verification
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Roadmap for enhanced languages and methods to aid verification
Proceedings of the 5th international conference on Generative programming and component engineering
A Sound Assertion Semantics for the Dependable Systems Evolution Verifying Compiler
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A logical analysis of aliasing in imperative higher-order functions
Journal of Functional Programming
Towards Formal Verification of ToolBus Scripts
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
Modular specification and verification of object-oriented programs
Modular specification and verification of object-oriented programs
Archface: a contract place where architectural design and code meet together
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
The design of SafeJML, a specification language for SCJ with support for WCET specification
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
Specifying subtypes in SCJ programs
Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems
JML’s rich, inherited specifications for behavioral subtypes
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Automated translation and analysis of a ToolBus script for auctions
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Are practitioners writing contracts?
Rigorous Development of Complex Fault-Tolerant Systems
Trustworthy instantiation of frameworks
Proceedings of the 2004 international conference on Architecting Systems with Trustworthy Components
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Current research in specifications is emphasizing the practical use of formal specifications in program design. One way to encourage their use in practice is to provide specification languages that are accessible to both designers and programmers. With this goal in mind, the Larch family of formal specification languages has evolved to support a two-tiered approach to writing specifications. This approach separates the specification of state transformations and programming language dependencies from the specification of underlying abstractions. Thus, each member of the Larch family has a subset derived from a programming language and another subset independent of any programming languages. We call the former interface languages, and the latter the Larch Shared Language.This paper focuses on Larch interface language specifications. Through examples, we illustrate some salient features of Larch/CLU, a Larch interface language for the programming language CLU. We give an example of writing an interface specification following the two-tiered approach and discuss in detail issues involved in writing interface specifications and their interaction with their Shared Language components.