Table of Contents Author Guidelines Submit a Manuscript
Journal of Applied Mathematics
Volume 2014, Article ID 789213, 12 pages
http://dx.doi.org/10.1155/2014/789213
Research Article

Robustness Analysis of Floating-Point Programs by Self-Composition

National Laboratory for Parallel and Distributed Processing, National University of Defense Technology, Changsha 410073, China

Received 14 February 2014; Accepted 7 April 2014; Published 20 May 2014

Academic Editor: Xiaoyu Song

Copyright © 2014 Liqian Chen et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

Linked References

  1. S. Pettersson and B. Lennartson, “Stability and robustness for hybrid systems,” in Proceedings of the 35th IEEE Conference on Decision and Control, pp. 1202–1207, December 1996. View at Scopus
  2. S. Chaudhuri, S. Gulwani, and R. Lublinerman, “Continuity analysis of programs,” in Proceedings of the 37th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '10), pp. 57–69, ACM, January 2010. View at Publisher · View at Google Scholar · View at Scopus
  3. S. Chaudhuri, S. Gulwani, and R. Lublinerman, “Continuity and robustness of programs,” Communications of the ACM, vol. 55, no. 8, pp. 107–115, 2012. View at Google Scholar
  4. S. Chaudhuri, S. Gulwani, R. Lublinerman, and S. NavidPour, “Proving programs robust,” in Proceedings of the 19th ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE '11), pp. 102–112, ACM, 2011.
  5. R. Majumdar and I. Saha, “Symbolic robustness analysis,” in Proceedings of the Real-Time Systems Symposium (RTSS '09), pp. 355–363, IEEE, December 2009. View at Publisher · View at Google Scholar · View at Scopus
  6. L. Kettner, K. Mehlhorn, S. Pion, S. Schirra, and C. K. Yap, “Classroom examples of robustness problems in geometric computations,” in Proceedings of the European Symposium on Algorithms (ESA '04), vol. 3221 of Lecture Notes in Computer Science, pp. 702–713, Springer, 2004.
  7. D. Monniaux, “The pitfalls of verifying floating-point computations,” ACM Transactions on Programming Languages and Systems, vol. 30, no. 3, article 12, 2008. View at Publisher · View at Google Scholar · View at Scopus
  8. IEEE Computer Society, “IEEE standard for binary floating point arithmetic,” Tech. Rep. ANSI/IEEE Std 745-1985, 1985. View at Google Scholar
  9. J. Rohn, “Solvability of systems of interval linear equations and inequalities,” in Linear Optimization Problems with Inexact Data, pp. 35–77, Springer, 2006. View at Google Scholar
  10. G. Barthe, P. R. D’Argenio, and T. Rezk, “Secure information flow by self-composition,” in Proceedings of the 17th IEEE Computer Security Foundations Workshop (CSFW '04), pp. 100–114, IEEE, June 2004.
  11. Á. Darvas, R. Hahnle, and D. Sands, “A theorem proving approach to analysis of secure information flow,” in Proceedings of the 2nd International Conference on Security in Pervasive Computing (SPC ʼ05), vol. 3450 of Lecture Notes in Computer Science, pp. 193–209, Springer, 2005.
  12. T. Terauchi and A. Aiken, “Secure information flow as a safety problem,” in Proceedings of the International Static Analysis Symposium (SAS '05), vol. 3672 of Lecture Notes in Computer Science, pp. 352–367, Springer, 2005.
  13. T. Ball and S. K. Rajamani, “The SLAM project: debugging system software via static analysis,” in Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '02), pp. 1–3, ACM Press, January 2002. View at Scopus
  14. E. M. Clarke, D. Kroening, and F. Lerda, “A tool for checking {ANSI}-{C} programs,” in Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS '04), vol. 2988 of Lecture Notes in Computer Science, pp. 168–176, Springer, 2004.
  15. B. Blanchet, P. Cousot, R. Cousot et al., “A static analyzer for large safety-critical software,” in Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI '03), pp. 196–207, ACM Press, June 2003. View at Scopus
  16. R. Jhala and R. Majumdar, “Software model checking,” ACM Computing Surveys, vol. 41, no. 4, article 21, 2009. View at Publisher · View at Google Scholar · View at Scopus
  17. C. Cadar and K. Sen, “Symbolic execution for software testing: three decades later,” Communications of the ACM, vol. 56, no. 2, pp. 82–90, 2013. View at Google Scholar
  18. J. C. King, “Symbolic execution and program testing,” Communications of the ACM, vol. 19, no. 7, pp. 385–394, 1976. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at Scopus
  19. A. Brillout, D. Kroening, and T. Wahl, “Mixed abstractions for floating-point arithmetic,” in Proceedings of the 9th International Conference Formal Methods in Computer Aided Design (FMCAD '09), pp. 69–76, IEEE, November 2009. View at Publisher · View at Google Scholar · View at Scopus
  20. L. Haller, A. Griggio, M. Brain, and D. Kroening, “Deciding floating-point logic with systematic abstraction,” in Proceedings of the International Conference Formal Methods in Computer Aided Design (FMCAD '12), pp. 131–140, IEEE, 2012.
  21. A. Miné, “Relational abstract domains for the detection of floating-point run-time errors,” in Proceedings of the European Symposium on Programming (ESOP '04), vol. 2986 of Lecture Notes in Computer Science, pp. 3–17, Springer, 2004.
  22. A. Miné, Weakly relational numerical abstract domains [Ph.D. thesis], Ecole Polytechnique, Palaiseau, France, 2004. View at Zentralblatt MATH
  23. C. S. Pasareanu, W. Visser, D. H. Bushnell, J. Geldenhuys, P. C. Mehlitz, and N. Rungta, “Symbolic pathfinder: integrating symbolic execution with model checking for java bytecode analysis,” Automated Software Engineering, vol. 20, no. 3, pp. 391–425, 2013. View at Publisher · View at Google Scholar
  24. H. Schuchardt, “GLPK for Java,” 2014, http://glpk-java.sourceforge.net/.
  25. D. Bushnell, “Continuity analysis for floating point software,” in Proceedings of the 4th workshop on Numerical Software Verification (NSV '11), 2011.
  26. E. Fogel and M. Teillaud, “The computational geometry algorithms library cgal,” ACM Communications in Computer Algebra, vol. 47, no. 3, pp. 85–87, 2013. View at Google Scholar
  27. D. Kroening, “The CPROVER User Manual,” http://www.cprover.org/cbmc/doc/manual.pdf.
  28. C. Cadar, D. Dunbar, and D. R. Engler, “KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs,” in Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI '14), pp. 209–224, USENIX Association, 2008.
  29. D. Hamlet, “Continuity in software systems,” in Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA '02), pp. 196–200, ACM, July 2002. View at Scopus
  30. S. Chaudhuri, A. Farzan, and Z. Kincaid, “Consistency analysis of decision-making programs,” in Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '14), pp. 555–568, Springer, 2014.
  31. A. Shahrokni and R. Feldt, “A systematic review of software robustness,” Information & Software Technology, vol. 55, no. 1, pp. 1–17, 2013. View at Publisher · View at Google Scholar
  32. I. Gazeau, D. Miller, and C. Palamidessi, “A non-local method for robustness analysis of floating point programs,” in Proceedings of the Workshop on Quantitative Aspects of Programming Languages (QAPL '12), vol. 85 of Electronic Proceedings in Theoretical Computer Science, pp. 63–76, 2012.
  33. E. Goubault and S. Putot, “Robustness analysis of finite precision implementations,” in Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS '13), vol. 8301 of Lecture Notes in Computer Science, pp. 50–57, Springer, 2013.
  34. P. Cousot and R. Cousot, “Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints,” in Proceedings of the ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '77), pp. 238–252, ACM, 1977.
  35. E. Goubault, “Static analyses of the precision of floating-point operations,” in Proceedings of the International Static Analysis Symposium (SAS '01), vol. 2126 of Lecture Notes in Computer Science, pp. 234–259, Springer, 2001.
  36. E. Goubault, M. Martel, and S. Putot, “Asserting the precision of floating-point computations: a simple abstract interpreter,” in Proceedings of the European Symposium on Programming (ESOP '02), vol. 2305 of Lecture Notes in Computer Science, pp. 209–212, Springer, 2002.
  37. L. Chen, A. Miné, J. Wang, and P. Cousot, “Interval polyhedra: an abstract domain to inferinterval linear relationships,” in Proceedings of the International Static Analysis Symposium (SAS '09), vol. 5673 of Lecture Notes in Computer Science, pp. 309–325, Springer, 2009.
  38. L. Chen, A. Miné, J. Wang, and P. Cousot, “An abstract domain to discover interval linear equalities,” in Proceedings of the International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI '10), vol. 5944 of Lecture Notes in Computer Science, pp. 112–128, Springer, 2010.
  39. L. Chen, A. Miné, and P. Cousot, “A sound floating-point polyhedra abstract domain,” in Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS '08), vol. 5356 of Lecture Notes in Computer Science, pp. 3–18, Springer, 2008.
  40. F. Ivančić, M. K. Ganai, S. Sankaranarayanan, and A. Gupta, “Numerical stability analysis of floating-point computations using software model checking,” in Proceedings of the 8th ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMOCODE '10), pp. 49–58, IEEE, July 2010. View at Publisher · View at Google Scholar · View at Scopus
  41. M. Brain, V. D’Silva, A. Griggio, L. Haller, and D. Kroening, “Deciding floating-point logic with abstract conflict driven clause learning,” in Formal Methods in System Design, 2013. View at Google Scholar
  42. E. T. Barr, T. Vo, V. Le, and Z. Su, “Automatic detection of floating-point exceptions,” in Proceedings of the SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '13), pp. 549–560, ACM, 2013.
  43. G. Barthe, J. M. Crespo, and C. Kunz, “Relational verification using product programs,” in Proceedings of the 17th International Symposium on Formal Methods (FM '11), pp. 200–214, Springer, 2011.
  44. M. Kovacs, H. Seidl, and B. Finkbeiner, “Relational abstract interpretation for the verification of 2-hypersafety properties,” in Proceedings of the ACM Conference on Computer and Communications Security (CCS '13), pp. 211–222, 2013.