Executable calculational specifications

Francisco Chaves, Camilo Rocha

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

The calculational style of E. W. Dijkstra and C. S. Scholten is a semi-formal style for the development, both in terms of verification and derivation, of correct programs. This calculational style heavily relies on the symbolic manipulation of expressions involving, for instance, arithmetic, quantifiers, and collections. This paper presents Calculational, an executable specification language for a broad class of calculational expressions in the style of Dijkstra & Scholten. The Calculational tool offers support for executable specifications, including: (i) quantifier expressions such as summation and universal/existential quantification, and (ii) data types such as lists, sets, and bags (i.e., multisets). The current implementation of Calculational is executable in the Haskell programming language, offering support also for higher order computation and pattern matching. This implementation is available for download as open source code and as a Haskell library too (which can be embedded in other programming languages). The main features of Calculational, some examples of its use-including the formal processing and querying of relational data-, and details of its implementation are included in this paper.

Original languageEnglish
Title of host publication2015 10th Colombian Computing Conference, 10CCC 2015
EditorsOscar Gonzalez, Mario Sanchez
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages1-8
Number of pages8
ISBN (Electronic)9781467394642
DOIs
StatePublished - 20 Nov 2015
Externally publishedYes
Event10th Colombian Computing Conference, 10CCC 2015 - Bogota, Colombia
Duration: 21 Sep 201525 Sep 2015

Publication series

Name2015 10th Colombian Computing Conference, 10CCC 2015

Conference

Conference10th Colombian Computing Conference, 10CCC 2015
Country/TerritoryColombia
CityBogota
Period21/09/1525/09/15

Fingerprint

Dive into the research topics of 'Executable calculational specifications'. Together they form a unique fingerprint.

Cite this