• Tidak ada hasil yang ditemukan

ACKNOWLEDGEMENTS

Dalam dokumen Programs Manipulating Dynamic Heap Objects (Halaman 51-55)

This work was supported in part by the US National Science Foundation (NSF) award 0709169 and CAREER award 0644288, the US Air Force Office of Scientific Research (AFOSR), and Rockwell Collins.

REFERENCES

Anand, S.,Pasareanu, C. S.,and Visser, W.2006. Symbolic execution with abstract sub- sumption checking. InModel Checking Software, 13th International SPIN Workshop, Vienna, Austria, March 30 - April 1, 2006, Proceedings, A. Valmari, Ed. Lecture Notes in Computer Science, vol. 3925. Springer.

Bakker, J. W. d.1980.Mathematical Theory of Program Correctness. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.

Ball, T. and Rajamani, S. K.2001. The SLAM toolkit. InComputer Aided Verification, 13th International Conference, CAV 2001, Paris, France, July 18-22, 2001, Proceedings, G. Berry, H. Comon, and A. Finkel, Eds. Lecture Notes in Computer Science, vol. 2102. Springer, 260–

264.

Barnett, M.,Leino, K. R. M.,and Schulte, W.2004. The Spec# programming system: An overview. In Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, International Workshop, CASSIS 2004, Marseille, France, March 10-14, 2004, G. Barthe, L. Burdy, M. Huisman, J.-L. Lanet, and T. Muntean, Eds. Lecture Notes in Computer Science, vol. 3362. Springer, 49–69.

Barrett, C. and Tinelli, C. 2007. CVC3. In Proceedings of Computer Aided Verification, 19th International Conference, CAV 2007, W. Damm and H. Hermanns, Eds. Lecture Notes in Computer Science, vol. 4590. Springer, 298–302.

Barthe, G., Burdy, L.,Charles, J., Gr´egoire, B.,Huisman, M., Lanet, J.-L., Pavlova, M.,and Requet, A. 2007. JACK: a tool for validation of security and behaviour of Java applications. InFMCO: Proceedings of 5th International Symposium on Formal Methods for Components and Objects. Lecture Notes in Computer Science. Springer-Verlag.

Belt, J.,Robby,and Deng, X.2009. Sireum/Topi LDP: A lightweight semi-decision procedure for optimizing symbolic execution-based analysis. InProceedings of The 7th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE). ACM.

Berdine, J.,Calcagno, C.,and O’Hearn, P. W.2005. Smallfoot: Modular automatic assertion checking with separation logic. InFormal Methods for Components and Objects, 4th Interna- tional Symposium, FMCO 2005, Amsterdam, The Netherlands, November 1-4, 2005, F. S.

de Boer, M. M. Bonsangue, S. Graf, and W. P. de Roever, Eds. Lecture Notes in Computer Science, vol. 4111. Springer, 115–137.

Boyapati, C.,Khurshid, S.,and Marinov, D.2002. Korat: automated testing based on Java predicates. InProceedings of the International Symposium on Software Testing and Analysis (ISSTA). ACM, 123–133.

Brat, G.,Havelund, K.,Park, S.,and Visser, W.2000. Java PathFinder – a second generation of a Java model-checker. InProceedings of the Workshop on Advances in Verification.

Brualdi, R. A.1998. Introductory Combinatorics, 3rd ed. Prentice Hall.

Chalin, P., James, P. R.,and Karabotsos, G. 2008. JML4: Towards an industrial grade IVE for Java and next generation research platform for JML. InVerified Software: Theories, Tools, Experiments, 2nd International Conference, VSTTE 2008, Toronto, Canada, October 6-9, 2008. Proceedings, N. Shankar and J. Woodcock, Eds. Lecture Notes in Computer Science, vol. 5295. Springer, 70–83.

Clarke, E.,Grumberg, O.,and Peled, D.2000.Model Checking. MIT Press, Cambridge, MA, USA.

Cousot, P. and Cousot, R. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. InConference Record of the 4th Annual ACM Symposium on Principles of Programming Languages. ACM, 238–252.

Deng, X. 2007. Contract-based verification and test case generation for open systems. Ph.D.

thesis, Kansas State University.

Deng, X.,Lee, J.,and Robby. 2006. Bogor/Kiasan: Ak-bounded symbolic execution for checking strong heap properties of open systems. In 21st IEEE/ACM International Conference on Automated Software Engineering (ASE06). IEEE Computer Society, 157–166.

Deng, X.,Robby, and Hatcliff, J. 2007a. Kiasan/KUnit: Automatic test case generation and analysis feedback for open object-oriented systems. InTesting: Academic and Industrial Conference – Practice and Research Techniques (TAIC-PART07).

Deng, X.,Robby,and Hatcliff, J. 2007b. Towards a case-optimal symbolic execution algo- rithm for analyzing strong properties of object-oriented programs. InProceedings of the 5th IEEE International Conference on Software Engineering and Formal Methods (SEFM). IEEE Computer Society, London, UK, 273–282.

Distefano, D. and Parkinson, M. J.2008. jStar: Towards practical verification for Java. In OOPSLA ’08: Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented program- ming systems languages and applications. ACM, 213–226.

Dutertre, B. and de Moura, L. 2006. The Yices SMT solver. Tool paper at http://yices.csl.sri.com/tool-paper.pdf.

Flanagan, C.,Leino, K. R. M., Lillibridge, M.,Nelson, G.,Saxe, J. B., and Stata, R.

2002. Extended static checking for Java. InProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. ACM, 234–245.

Godefroid, P.,Klarlund, N.,and Sen, K.2005. DART: Directed automated random testing.

InACM SIGPLAN 2005 Conference on Programming Language Design and Implementation (PLDI). ACM Press, 213–223.

Grieskamp, W.,Tillmann, N.,and Schulte, W. 2005. XRT - exploring runtime for .NET - architecture and applications.Workshop on Software Model Checking (SoftMC05).

Hantler, S. L. and King, J. C.1976. An introduction to proving the correctness of programs.

ACM Computing Surveys (CSUR) 8,3 (September), 331–353.

Hopcroft, J. E. and Ullman, J. D. 1979. Introduction to automata theory, languages, and computation, 1st ed. Addison-Wesley.

Jackson, D.2002. Alloy: a lightweight object modelling notation.ACM Transactions on Software Engineering and Methodology (TOSEM) 11,2 (April), 256 – 290.

Khurshid, S.,as˘areanu, C. S.,and Visser, W. 2003. Generalized symbolic execution for model checking and testing. InTools and Algorithms for the Construction and Analysis of Systems, 9th International Conference, TACAS 2003, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2003, Warsaw, Poland, April 7-11, 2003, Proceedings, H. Garavel and J. Hatcliff, Eds. Lecture Notes in Computer Science, vol.

2619. Springer, 553–568.

Kim, M.,Viswanathan, M.,Kannan, S.,Lee, I.,and Sokolsky, O.2004. Java-MaC: A run-time assurance approach for Java programs.Formal Methods in System Design 24,2, 129–155.

King, J. C.1976. Symbolic execution and program testing.Communications of the ACM 19,7, 385–394.

Leavens, G. T.,Baker, A. L.,and Ruby, C.1998. JML: a Java modeling language. InFormal Underpinnings of Java Workshop (at OOPSLA’98). ACM.

Lev-Ami, T. and Sagiv, M.2000. TVLA: A framework for kleene-based static analysis. InPro- ceedings of the 7th International Static Analysis Symposium (SAS). Lecture Notes in Computer Science, vol. 1694. Springer, 280–301.

Lindholm, T. and Yellin, F. 1999. The Java virtual machine specification (2nd edition).

http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html.

Liskov, B. 1987. Data abstraction and hierarchy. InProceedings of the Conference on Object Oriented Programming Systems Languages and Applications. ACM, 17–34.

Loginov, A.,Reps, T. W.,and Sagiv, M.2005. Abstraction refinement via inductive learning.

InCAV, K. Etessami and S. K. Rajamani, Eds. Lecture Notes in Computer Science, vol. 3576.

Springer, 519–533.

Meyer, B.1988.Object-Oriented Software Construction, 1st ed. Prentice Hall.

MS. 2006. Common language infrastructure (CLI). Standard ECMA-335.

O’Hearn, P.,Reynolds, J.,and Yang, H.2001. Local reasoning about programs that alter data structures. In15th International Workshop on Computer Science Logic (CSL’01), L. Fribourg, Ed. Lecture Notes in Computer Science, vol. 2142. Springer, 1–19.

Pasareanu, C. S.,Mehlitz, P. C.,Bushnell, D. H.,Gundy-Burlet, K.,Lowry, M. R.,Per- son, S.,and Pape, M.2008. Combining unit-level symbolic execution and system-level concrete execution for testing nasa software. InProceedings of the ACM/SIGSOFT International Sym- posium on Software Testing and Analysis. ACM, 15–26.

Ramalingam, G. 1994. The undecidability of aliasing. ACM Transactions on Programming Languages and Systems (TOPLAS) 16,5, 1467–1471.

Ramalingam, G.,Warshavsky, A.,Field, J.,Goyal, D.,and Sagiv, M.2002. Deriving special- ized program analyses for certifying component-client conformance. InPLDI ’02: Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation.

ACM, 83–94.

Robby. 2008. Sireum: a software analysis platform. http://sireum.org.

Robby,Dwyer, M. B.,and Hatcliff, J.2003. Bogor: An extensible and highly-modular model checking framework. InProceedings of the 9th European Software Engineering Conference held jointly with the 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering.

ACM, 267–276.

Robby,Rodr´ıguez, E.,Dwyer, M. B.,and Hatcliff, J.2006. Checking JML specifications using an extensible software model checking framework. International Journal on Software Tools for Technology Transfer 8,3, 263–272.

Schmidt, D. 2000. Binary relations for abstraction and refinement. Tech. rep., Kansas State University. November.

Sen, K. and Agha, G.2005. CUTE: A concolic unit testing engine for C. InACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), M. Wermelinger and H. Gall, Eds. ACM, 263–272.

Tillmann, N. and de Halleux, J.2008. Pex–white box test generation for .NET. InTests and Proofs, 2nd International Conference (TAP08), B. Beckert and R. H¨ahnle, Eds. Lecture Notes in Computer Science, vol. 4966. Springer, 134–153.

Tillmann, N. and Schulte, W. 2005. Unit tests reloaded: Parameterized unit testing with symbolic execution. Tech. rep., Microsoft Research.

van den Berg, J. and Jacobs, B.2001. The LOOP compiler for Java and JML. InProceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS01), T. Margaria and W. Yi, Eds. Lecture Notes in Computer Science, vol.

2031. Springer.

Vaziri-Farahani, M.2004. Finding bugs in software with a constraint solver. Ph.D. thesis, MIT.

Visser, W.,Pasareanu, C. S.,and Khurshid, S.2004. Test input generation in Java Pathfinder.

In Proceedings of the ACM/SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2004, Boston, Massachusetts, USA, July 11-14, 2004, G. S. Avrunin and G. Rothermel, Eds. ACM, 97–107.

Weiss, M. A.2006. Data Structures and Algorithm Analysis in Java, 2nd ed. Addison-Wesley.

Wilf, H. S.1994. Generatingfunctionology, 2nd ed. Academic Press.

Xie, T.,Marinov, D.,Schulte, W.,and Notkin, D.2005. Symstra: A framework for generating object-oriented unit tests using symbolic execution. InTools and Algorithms for Construction and Analysis of Systems (TACAS), N. Halbwachs and L. D. Zuck, Eds. Lecture Notes in Computer Science, vol. 3440. Springer, 365–381.

Program 4The bytecode of theswap method

p u b l i c v o i d swap ( C o n t a i n e r ) ; Code :

0 : a l o a d 0

1 : g e t f i e l d #2; // F i e l d d a t a : L j a v a / l a n g / O b j e c t ; 4 : a s t o r e 2

5 : a l o a d 0 6 : a l o a d 1

7 : g e t f i e l d #2; // F i e l d d a t a : L j a v a / l a n g / O b j e c t ; 1 0 : p u t f i e l d #2; // F i e l d d a t a : L j a v a / l a n g / O b j e c t ; 1 3 : a l o a d 1

1 4 : a l o a d 2

1 5 : p u t f i e l d #2; // F i e l d d a t a : L j a v a / l a n g / O b j e c t ; 1 8 : r e t u r n

APPENDIX

A. FORMALIZATION OF THESWAPEXAMPLE

Dalam dokumen Programs Manipulating Dynamic Heap Objects (Halaman 51-55)

Dokumen terkait