ACM Home Page
Please provide us with feedback. Feedback
A language-based approach to functionally correct imperative programming
Full text PdfPdf (171 KB)
Source International Conference on Functional Programming archive
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming table of contents
Tallinn, Estonia
SESSION: Session 10 table of contents
Pages: 268 - 279  
Year of Publication: 2005
ISBN:1-59593-064-7
Also published in ...
Authors
Edwin Westbrook  Washington University in Saint Louis
Aaron Stump  Washington University in Saint Louis
Ian Wehrman  Washington University in Saint Louis
Sponsors
ACM: Association for Computing Machinery
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 33,   Citation Count: 5
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Review this Article  
Save this Article to a Binder    Display Formats: BibTex  EndNote ACM Ref   
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1086365.1086400
What is a DOI?

ABSTRACT

In this paper a language-based approach to functionally correct imperative programming is proposed. The approach is based on a programming language called RSP1, which combines dependent types, general recursion, and imperative features in a type-safe way, while preserving decidability of type checking. The methodology used is that of internal verification, where programs manipulate programmer-supplied proofs explicitly as data. The fundamental technical idea of RSP1 is to identify problematic operations as impure, and keep them out of dependent types. The resulting language is powerful enough to verify statically non-trivial properties of imperative and functional programs. The paper presents the ideas through the examples of statically verified merge sort, statically verified imperative binary search trees, and statically verified directed acyclic graphs.


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
T. Altenkirch. Integrated verification in Type Theory. Lecture notes for a course at ESSLLI 96, Prague, 1996. available from the author's website.
 
2
3
 
4
 
5
J. Brandt. What a Mesh: Dependent Data Types for Correct Mesh Manipulation Algorithms. Master's thesis, Washington University in Saint Louis, 2005. In preparation.
6
 
7
 
8
 
9
G. Dowek, A. Felty, H. Herbelin, and G. Huet. The Coq proof assistant user's guide. Technical Report 154, Inria-Rocquencourt, France, 1993.
10
11
12
 
13
R. Klapper and A. Stump. Validated Proof-Producing Decision Procedures. In C. Tinelli and S. Ranise, editors, 2nd International Workshop on Pragmatics of Decision Procedures in Automated Reasoning, 2004.
14
 
15
Z. Luo and R. Pollack. LEGO Proof Development System: User's Manual. Technical Report ECS-LFCS-92--211, Edinburgh LFCS, 1992.
 
16
 
17
F. Mehta and T. Nipkow. Proving Pointer Programs in Higher-Order Logic. In F. Baader, editor, 19th International Conference on Automated Deduction, volume 2741 of LNCS, pages 121--135. Springer-Verlag, 2003.
18
 
19
B. Nordström, K. Petersson, and J. Smith. Programming in Martin-Löf's Type Theory. Oxford University Press, 1990.
 
20
21
 
22
 
23
24
 
25
R. Pollack. Dependently typed records in type theory. Formal Aspects of Computing, 13:386--402, 2002.
 
26
27
 
28
J. Sarnat. LF-Sigma: The Metatheory of LF with Sigma types. Technical Report 1268, Yale CS department, 2004.
 
29
C. Schürmann and F. Pfenning. A Coverage Checking Algorithm for LF. In D. Basin and B. Wolff, editors, Proceedings of the 16th International Conference on Theorem Proving in Higher Order Logics, volume 2758 of LNCS, pages 120--135. Springer-Verlag, 2003.
 
30
E. Westbrook, A. Stump, and I. Wehrman. A Language-based Approach to Functionally Correct Imperative Programming. Technical Report WUCSE-2005-32, Washington University in Saint Louis, July 2005.
 
31
H. Xi. Facilitating Program Verification with Dependent Types. In Proceedings of the International Conference on Software Engineering and Formal Methods, pages 72--81, 2003.
 
32
D. Zhu and H. Xi. Safe Programming with Pointers through Stateful Views. In Proceedings of the 7th International Symposium on Practical Aspects of Declarative Languages, pages 83--97, Long Beach, CA, January 2005. Springer-Verlag LNCS vol. 3350.


Collaborative Colleagues:
Edwin Westbrook: colleagues
Aaron Stump: colleagues
Ian Wehrman: colleagues