ACM Home Page
Please provide us with feedback. Feedback
Extended static checking for haskell
Full text PdfPdf (234 KB)
Source Haskell archive
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell table of contents
Portland, Oregon, USA
SESSION: Session 2 table of contents
Pages: 48 - 59  
Year of Publication: 2006
ISBN:1-59593-489-8
Author
Dana N. Xu  University of Cambridge
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 48,   Citation Count: 4
Additional Information:

abstract   references   cited by   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/1159842.1159849
What is a DOI?

ABSTRACT

Program errors are hard to detect and are costly both to programmers who spend significant efforts in debugging, and to systems that are guarded by runtime checks. Extended static checking can reduce these costs by helping to detect bugs at compile-time, where possible. Extended static checking has been applied to objectoriented languages, like Java and C#, but it has not been applied to a lazy functional language, like Haskell. In this paper, we describe an extended static checking tool for Haskell, named ESC/Haskell, that is based on symbolic computation and assisted by a few novel strategies. One novelty is our use of Haskell as the specification language itself for pre/post conditions. Any Haskell function (including recursive and higher order functions) can be used in our specification which allows sophisticated properties to be expressed. To perform automatic verification, we rely on a novel technique based on symbolic computation that is augmented by counter-example guided unrolling. This technique can automate our verification process and be efficiently implemented.


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
 
3
Mike Barnett, K. Rustan M. Leino, and Wolfram Schulte. The Spec# programming system: An overview. CASSIS, LNCS 3362, 2004.
 
4
Koen Claessen and John Hughes. Specification-based testing with QuickCheck, volume Fun of Programming of Cornerstones of Computing, chapter 2, pages 17--40. Palgrave, March 2003.
5
 
6
7
8
9
 
10
Thomas A. Henzinger, Ranjit Jhala, and Rupak Majumdar. Counterexample-guided control. Automata, Languages and Programming: 30th International Colloquium, (ICALP03), 2719:886--902, 2003.
 
11
Ralf Hinze, Johan Jeuring, and Andres Löh. Typed contracts for functional programming. In FLOPS '06: Functional and Logic Programming: 8th International Symposium, pages 208--225, 2006.
12
 
13
James Hook, Mark Jones, Richard Kieburtz, John Matthews, Peter White, Thomas Hallgren, and Iavor Diatchki. Programatica. http://www.cse.ogi.edu/PacSoft/projects/programatica/bodynew.htm, 2005.
 
14
 
15
Neil Mitchell and Colin Runciman. Unfailing Haskell: A static checker for pattern matching. In TFP '05: The 6th Symposium on Trends in Functional Programming, pages 313--328, 2005.
16
 
17
18
 
19
The GHC Team. The Glasgow Haskell Compiler User's Guide. www.haskell.org/ghc/documentation.html, 1998.
20
 
21
Dana N. Xu. Extended static checking for Haskell - technical report. http://www.cl.cam.ac.uk/users/nx200/research/escH-tr.ps, 2006.