Extended static checking for haskell

作者: Dana N. Xu

DOI: 10.1145/1159842.1159849

关键词: Symbolic computationHaskellExtended static checkingFunctional programmingDebuggingProgramming languageJavaComputer scienceSpecification languageSymbolic trajectory evaluation

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

参考文章(18)
Colin Runciman, Neil Mitchell, Unfailing Haskell: A Static Checker for Pattern Matching ,(2005)
Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, Counterexample-guided control international colloquium on automata languages and programming. pp. 886- 902 ,(2003) , 10.1007/3-540-45061-0_69
Simon L Peyton Jones, Compiling Haskell by program transformation: A report from the trenches Programming Languages and Systems — ESOP '96. ,vol. 1058, pp. 18- 44 ,(1996) , 10.1007/3-540-61055-3_27
K. Rustan, M. Leino, Greg Nelson, An Extended Static Checker for Modular-3 compiler construction. pp. 302- 305 ,(1998) , 10.1007/BFB0026441
Tim Sheard, Languages of the future conference on object-oriented programming systems, languages, and applications. pp. 116- 119 ,(2004) , 10.1145/1028664.1028711
Kohei Honda, Nobuko Yoshida, A compositional logic for polymorphic higher-order functions principles and practice of declarative programming. pp. 191- 202 ,(2004) , 10.1145/1013963.1013985
P. Dybjer, Qiao Haiyan, M. Takeyama, Verifying Haskell programs by combining testing and proving international conference on quality software. pp. 272- 279 ,(2003) , 10.1109/QSIC.2003.1319111
Cormac Flanagan, James B. Saxe, Avoiding exponential explosion Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '01. ,vol. 36, pp. 193- 205 ,(2001) , 10.1145/360204.360220
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata, Extended static checking for Java Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation - PLDI '02. ,vol. 37, pp. 234- 245 ,(2002) , 10.1145/512529.512558
Hongwei Xi, Frank Pfenning, Dependent types in practical programming Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '99. pp. 214- 227 ,(1999) , 10.1145/292540.292560