ACM Home Page
Please provide us with feedback. Feedback
Term transformers: A new approach to state
Full text PdfPdf (819 KB)
Source
ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 31 ,  Issue 4  (May 2009) table of contents
Article No. 16  
Year of Publication: 2009
ISSN:0164-0925
Authors
Joseph M. Morris  Dublin City University and Lero - the Irish Engineering Research Centre, Dublin, Ireland
Alexander Bunkenburg  University of Glasgow, Glasgow, UK
Malcolm Tyrrell  Dublin City University and Lero - the Irish Engineering Research Centre, Dublin, Ireland
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 30,   Downloads (12 Months): 173,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1516507.1516511
What is a DOI?

ABSTRACT

We present a new approach to adding state and state-changing commands to a term language. As a formal semantics it can be seen as a generalization of predicate transformer semantics, but beyond that it brings additional opportunities for specifying and verifying programs. It is based on a construct called a phrase, which is a term of the form Ct, where C stands for a command and t stands for a term of any type. If R is boolean, CR is closely related to the weakest precondition wp(C,R). The new theory draws together functional and imperative programming in a simple way. In particular, imperative procedures and functions are seen to be governed by the same laws as classical functions. We get new techniques for reasoning about programs, including the ability to dispense with logical variables and their attendant complexities. The theory covers both programming and specification languages, and supports unbounded demonic and angelic nondeterminacy in both commands and terms.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
Back, R.-J. R. 1980. Correctness preserving program refinements: Proof theory and applications. Tract 131, Mathematisch Centrum, Amsterdam.
 
3
 
4
 
5
Bijlsma, L. and Nederpelt, R. 1998. Dijkstra-Scholten predicate calculus: Concepts and misconceptions. Acta Inf. 35, 1007--1036.
 
6
7
8
 
9
Bunkenburg, A. 1997. Expression refinement. Ph.D. thesis, Computing Science Department, University of Glasgow.
 
10
11
 
12
 
13
 
14
 
15
16
 
17
 
18
 
19
 
20
 
21
 
22
Hitchcock, P. and Park, D. 1972. Induction rules and termination proofs. In IRIA Conference on Automata, Languages, and Programming Theory. North-Holland, Amsterdam, 225--251.
23
 
24
 
25
Kleymann, T. 1999. Hoare logic and auxiliary variables. Formal Aspects Comput. 11, 5, 541--566.
26
 
27
 
28
 
29
 
30
 
31
32
 
33
34
 
35
36
 
37
Nelson, G. 1992. Some generalizations and applications of Dijkstra's guarded commands. In Programming and Mathematical Methods, M. Broy, Ed. NATO ASI Series F: Computer and Systems Sciences, vol. 88. Springer-Verlag, New York.
 
38
 
39
Pierik, C. and de Boer, F. S. 2004. Modularity and the rule of adaptation. In Algebraic Methodology and Software Technology, 10th International Conference, C. Rattray, et al., Eds. Lecture Notes in Computer Science, vol. 3116. Springer-Verlag, New York, 394--408.
 
40
 
41
Tarski, A. 1955. A lattice-theoretical fixpoint theorem and its applications. Pacific J. Math. 5, 285--309.
 
42
Tunnicliffe, W. R. 1985. The free completely distributive lattice over a poset. Algebra Universalis 21, 133--135.
 
43
44
 
45

Collaborative Colleagues:
Joseph M. Morris: colleagues
Alexander Bunkenburg: colleagues
Malcolm Tyrrell: colleagues