• Publications
  • Influence
Larch: Languages and Tools for Formal Specification
This monograph discusses the use of formal specifications in program development and introduces the notation of mathematical logic in formal specification languages and supporting tools. Expand
The Larch Family of Specification Languages
Larch specifications are two-tiered. Each one has a component written in an algebraic language and another tailored to a programming language.
A program structure for error detection and recovery
A method of structuring programs which aids the design and validation of facilities for the detection of and recovery from software errors and a mechanism for the automatic preservation of restart information at a level of overhead which is believed to be tolerable. Expand
LCLint: a tool for using specifications to check code
An efficient and flexible tool that accepts as input programs (written in ANSI C) and various levels of formal specification and using this information, LCLint reports inconsistencies between a program and its specification. Expand
A study of grammatical inference
Wikipedia risks
The Wikipedia (WP; en.wikipedia.org/wiki/) applies the wiki technology (from a Hawaiian word for “quick”) to the encyclopedia, a venerable form of knowledge organization and dissemination. WikipediaExpand
The algebraic specification of abstract data types
An algebraic technique for embedding abstract data types in programming languages is presented, some of the formal properties of the technique are developed, and it is shown that these provide useful guidelines for the construction of adequate specifications. Expand
Debugging Larch Shared Language Specifications
The checkability designed into the LSL (Larch shared language) is described, and two tools that help perform the checking are discussed, and an extended example illustrating how LP is used to debug LSL specifications is presented. Expand
Proof rules for the programming language Euclid
This paper describes Hoare-style proof rules for Euclid, a programming language intended for the expression of system programs which are to be verified, and all constructs of Euclid are covered. Expand