Program Analysis Group publications

Also see our publications by topic and by author.

Copyright notice.


2011

“Inference of field initialization”
by Fausto Spoto and Michael D. Ernst.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011.
Details. Download: implementation.

“Building and using pluggable type-checkers”
by Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Kıvanç Muşlu, and Todd Schiller.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011.
Details. Download: implementation.

“Always-available static and dynamic feedback”
by Michael Bayne, Richard Cook, and Michael D. Ernst.
In ICSE'11, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 25-27, 2011.
Details. Download: implementation.

2010

“Speculative analysis: Exploring future development states of software”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
In Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), November 7-8, 2010.
Details.

“Rethinking the economics of software engineering”
by Todd W. Schiller and Michael D. Ernst.
In Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), November 7-8, 2010.
Details.

“Ownership and immutability in generic Java”
by Yoav Zibin, Alex Potanin, Paley Li, Mahmood Ali, and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2010), (Revo, NV, USA), October 19-21, 2010.
Details. Download: PDF, TR with proofs, implementation.

“Synoptic: Summarizing system logs with refinement”
by Sigurd Schneider, Ivan Beschastnikh, Slava Chernyak, Michael D. Ernst, and Yuriy Brun.
In Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML '10), (Vancouver, BC, Canada), October 3, 2010.
Details. Download: implementation.

“HaLoop: Efficient Iterative Data Processing on Large Clusters”
by Yingyi Bu, Bill Howe, Magdalena Balazinska, and Michael D. Ernst.
In 36th International Conference on Very Large Data Bases, (Singapore), September 14-16, 2010.
Details. Download: PDF.

“Featherweight Ownership and Immutability Generic Java (FOIGJ) — technical report”
by Yoav Zibin, School of Engineering and Computer Science.
VUW technical report 10-05, (Wellington, New Zealand), July 2010. http://ecs.victoria.ac.nz/Main/TechnicalReportSeries.
Details. Download: PDF.
A previous version appeared as VUW technical report 10-05, (Wellington, New Zealand), Mar. 2010. http://ecs.victoria.ac.nz/Main/TechnicalReportSeries.

“Finding bugs in web applications using dynamic test generation and explicit state model checking”
by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst.
IEEE Transactions on Software Engineering, vol. 36, no. 4, July/August 2010, pp. 474-494.
Details. Download: PDF.
A previous version appeared as “Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit State Model Checking” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2009-010, (Cambridge, MA), March 26, 2009.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle, WA, USA), July 22-24, 2008, pp. 261-272.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. IBM T.J. Watson Research Center technical report RC24528, (Hawthorne, NY), April 2, 2008.
A previous version appeared as “Finding bugs in dynamic web applications” by Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-006, (Cambridge, MA), February 6, 2008.

“How tests and proofs impede one another: The need for always-on static and dynamic feedback”
by Michael D. Ernst.
In 4th International Conference on Tests And Proofs (TAP), (Málaga, Spain), July 1-2, 2010, pp. 1-2.
Details. Download: extended abstract (PDF), Slides (PDF), Slides (Powerpoint), Video, Implementation.

“Speculative identification of merge conflicts and non-conflicts”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-10-03-01, (Seattle, WA, USA), Mar. 2010.
Details. Download: PDF.

“Inference of field initialization”
by Fausto Spoto and Michael D. Ernst.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-10-02-01, (Seattle, WA, USA), February 6, 2010.
Details. Download: PDF.

“An Improved Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs”
by Robert Andrew Rudd.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Jan. 2010.
Details.

2009

“A formal definition and evaluation of parameter immutability”
by Shay Artzi, Jaime Quinonez, Adam Kieżun, and Michael D. Ernst.
Automated Software Engineering, vol. 16, no. 1, 2009, pp. 145-192.
Details. Download: PDF.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Adam Kieżun, David Glasser, and Michael D. Ernst. In ASE 2007: Proceedings of the 22nd Annual International Conference on Automated Software Engineering, (Atlanta, GA, USA), November 7-9, 2007, pp. 104-113.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Adam Kieżun, David Glasser, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-020, (Cambridge, MA), March 23, 2007.
A previous version appeared as “Combined static and dynamic mutability analysis” by Shay Artzi, Michael D. Ernst, David Glasser, and Adam Kieżun. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-065, (Cambridge, MA), September 18, 2006.

“Featherweight Ownership and Immutability Generic Java (FOIGJ)”
by Alex Potanin, Paley Li, Yoav Zibin, and Michael D. Ernst, School of Engineering and Computer Science.
VUW technical report 09-13, (Wellington, New Zealand), December 14, 2009.
Details. Download: PDF.

“Automatically patching errors in deployed software”
by Jeff H. Perkins, Sunghun Kim, Sam Larsen, Saman Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou, Greg Sullivan, Weng-Fai Wong, Yoav Zibin, Michael D. Ernst, and Martin Rinard.
In Proceedings of the 21st ACM Symposium on Operating Systems Principles, (Big Sky, MT, USA), October 12-14, 2009, pp. 87-102.
Details. Download: PDF, Slides (PDF), Slides (PowerPoint).

“HAMPI: A solver for string constraints”
by Adam Kieżun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst.
In ISSTA 2009, Proceedings of the 2009 International Symposium on Software Testing and Analysis, (Chicago, IL, USA), July 21-23, 2009.
Details. Download: PDF, HAMPI implementation.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2009-004, (Cambridge, MA), February 4, 2009.

“Directed Random Testing”
by Carlos Pacheco.
Ph.D. dissertation, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), June 2009.
Details. Download: PDF.

“Refactoring using type constraints”
by Frank Tip, Robert M. Fuhrer, Adam Kiezun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter.
IBM T.J. Watson Research Center technical report RC24804, (Hawthorne, NY), June 9, 2009.
Details. Download: PDF.

“Refactoring sequential Java code for concurrency via concurrent libraries”
by Danny Dig, John Marrero, and Michael D. Ernst.
In ICSE'09, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 20-22, 2009.
Details. Download: PDF, Concurrencer implementation.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-057, (Cambridge, MA), September 30, 2008.

“Automatic creation of SQL injection and cross-site scripting attacks”
by Adam Kieżun, Philip J. Guo, Karthick Jayaraman, and Michael D. Ernst.
In ICSE'09, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 20-22, 2009.
Details. Download: PDF, Experimental data.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-054, (Cambridge, MA), September 10, 2008.

2008

“Type Annotations specification (JSR 308)”
by Michael D. Ernst.
September 12, 2008.
Details. Download: current status and implementation, original proposal.

“How do programs become more concurrent? A story of program transformations”
by Danny Dig, John Marrero, and Michael D. Ernst.
MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-053, (Cambridge, MA), September 5, 2008.
Details. Download: PDF, PostScript.

“Practical pluggable types for Java”
by Matthew M. Papi, Mahmood Ali, Telmo Luis Correa Jr., Jeff H. Perkins, and Michael D. Ernst.
In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle, WA, USA), July 22-24, 2008, pp. 201-212.
Details. Download: PDF, PostScript, Talk slides (PDF), Demo slides (PDF), Papi thesis (PDF), Checker Framework implementation.
A tool demonstration appeared as “Compile-time type-checking for custom type qualifiers in Java” by Matthew M. Papi, Mahmood Ali, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2008), (Nashville, TN, USA), October 21-23, 2008.
A tool demonstration appeared as “Building and using pluggable type systems with the Checker Framework” by Michael D. Ernst. In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008. Tool demo.
An extended version containing expanded explanations and also some additional material appeared as “Practical Pluggable Types for Java” by Matthew M. Papi. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2008.
A tool description appeared as “Compile-time type-checking for custom type qualifiers in Java” by Matthew M. Papi and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 809-810.
A previous version appeared as “Pluggable type-checking for custom type qualifiers in Java” by Matthew M. Papi, Mahmood Ali, Telmo Luis Correa Jr., Jeff H. Perkins, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-047, (Cambridge, MA), September 17, 2007.

“Finding errors in .NET with feedback-directed random testing”
by Carlos Pacheco, Shuvendu K. Lahiri, and Thomas Ball.
In ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, (Seattle, WA, USA), July 22-24, 2008, pp. 87-96.
Details. Download: PDF.

“ReCrash: Making software failures reproducible by preserving object states”
by Shay Artzi, Sunghun Kim, and Michael D. Ernst.
In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008, pp. 542-565.
Details. Download: PDF, PostScript, ReCrash implementation.
A previous version appeared as “ReCrash: Making crashes reproducible” by Sunghun Kim, Shay Artzi, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-054, (Cambridge, MA), November 20, 2007.

“Inference of reference immutability”
by Jaime Quinonez, Matthew S. Tschantz, and Michael D. Ernst.
In ECOOP 2008 — Object-Oriented Programming, 22nd European Conference, (Paphos, Cyprus), July 9-11, 2008, pp. 616-641.
Details. Download: PDF, Quinonez thesis, Javarifier implementation.
An extended version appeared as “Inference of Reference Immutability in Java” by Jaime Quinonez. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2008.
A tool description appeared as “Tools for enforcing and inferring reference immutability in Java” by Telmo Luis Correa Jr., Jaime Quinonez, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 866-867.

“Quantitative information flow as network flow capacity”
by Stephen McCamant and Michael D. Ernst.
In PLDI 2008, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, (Tucson, AZ, USA), June 9-11, 2008, pp. 193-205.
Details. Download: PDF, PostScript, Flowcheck implementation.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-057, (Cambridge, MA), December 10, 2007.
A previous version appeared as “Quantitative information-flow tracking for C and related languages” by Stephen McCamant and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-076, (Cambridge, MA), November 17, 2006.

“Grammar-based whitebox fuzzing”
by Patrice Godefroid, Adam Kieżun, and Michael Y. Levin.
In PLDI 2008, Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, (Tucson, AZ, USA), June 9-11, 2008, pp. 206-215.
Details. Download: PDF.

“Quantitative Information-Flow Tracking for Real Systems”
by Stephen Andrew McCamant.
Ph.D. dissertation, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2008.
Details. Download: PDF, PostScript, Flowcheck implementation.

“Extracting Structural Information from Bug Reports”
by Nicolas Bettenburg, Rahul Premraj, Thomas Zimmermann, and Sunghun Kim.
In MSR 2008: 5th Working Conference on Mining Software Repositories, (Leipzig, Germany), May 10-11, 2008.
Details. Download: PDF.

“Classifying Software Changes: Clean or Buggy?”
by Sunghun Kim, E. James Whitehead, Jr., and Yi Zhang.
IEEE Transactions on Software Engineering, vol. 34, no. 2, March/April 2008, pp. 181-196.
Details. Download: PDF.

“Theories in practice: Easy-to-write specifications that catch bugs”
by David Saff, Marat Boshernitsan, and Michael D. Ernst.
MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-002, (Cambridge, MA), January 14, 2008.
Details. Download: PDF, PostScript.

2007

“The Daikon system for dynamic detection of likely invariants”
by Michael D. Ernst, Jeff H. Perkins, Philip J. Guo, Stephen McCamant, Carlos Pacheco, Matthew S. Tschantz, and Chen Xiao.
Science of Computer Programming, vol. 69, no. 1--3, Dec. 2007, pp. 35-45.
Details. Download: PDF, Daikon implementation.

“Theory-infected: Or how I learned to stop worrying and love universal quantification”
by David Saff.
In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 846-847.
Details. Download: PDF.

“From developer's head to developer tests: Characterization, theories, and preventing one more bug”
by David Saff.
In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 811-812.
Details. Download: PDF.

“Which warnings should I fix first?”
by Sunghun Kim and Michael D. Ernst.
In ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Dubrovnik, Croatia), September 5-7, 2007, pp. 45-54.
Details. Download: PDF.

“Object and reference immutability using Java generics”
by Yoav Zibin, Alex Potanin, Mahmood Ali, Shay Artzi, Adam Kieżun, and Michael D. Ernst.
In ESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Dubrovnik, Croatia), September 5-7, 2007, pp. 75-84.
Details. Download: PDF, PostScript, IGJ implementation.
A tool demonstration appeared as “Enforcing reference and object immutability in Java” by Mahmood Ali, Yoav Zibin, Matthew M. Papi, and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2008), (Nashville, TN, USA), October 21-23, 2008.
A previous version appeared as “Object and reference immutability using Java generics” by Yoav Zibin, Alex Potanin, Shay Artzi, Adam Kieżun, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2007-018, (Cambridge, MA), March 16, 2007.

“Test factoring with amock: Generating readable unit tests from system tests”
by David Samuel Glasser.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), August 21, 2007.
Details. Download: PDF.

“A simulation-based proof technique for dynamic information flow”
by Stephen McCamant and Michael D. Ernst.
In PLAS 2007: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, (San Diego, California, USA), June 14, 2007, pp. 41-46.
Details. Download: PDF, PostScript.

“Refactoring for parameterizing Java classes”
by Adam Kieżun, Michael D. Ernst, Frank Tip, and Robert M. Fuhrer.
In ICSE'07, Proceedings of the 29th International Conference on Software Engineering, (Minneapolis, MN, USA), May 23-25, 2007, pp. 437-446.
Details. Download: PDF.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-061, (Cambridge, MA), September 5, 2006.

“Predicting faults from cached history”
by Sunghun Kim, Thomas Zimmermann, E. James Whitehead, Jr., and Andreas Zeller.
In ICSE'07, Proceedings of the 29th International Conference on Software Engineering, (Minneapolis, MN, USA), May 23-25, 2007, pp. 489-498.
Details. Download: PDF.
A summary appeared as “Predicting faults from cached history” by Sunghun Kim, Thomas Zimmermann, Jr. E. James Whitehead, and Andreas Zeller. In ISEC '08: Proceedings of the 1st conference on India software engineering conference, (Hyderabad, India), 2008, pp. 15-16.

“Feedback-directed random test generation”
by Carlos Pacheco, Shuvendu K. Lahiri, Michael D. Ernst, and Thomas Ball.
In ICSE'07, Proceedings of the 29th International Conference on Software Engineering, (Minneapolis, MN, USA), May 23-25, 2007, pp. 75-84.
Details. Download: PDF, Randoop implementation.
A tool description appeared as “Randoop: Feedback-directed random testing for Java” by Carlos Pacheco and Michael D. Ernst. In Companion to Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2007), (Montréal, Canada), October 23-25, 2007, pp. 815-816.
A previous version appeared as Microsoft Research technical report MSR-TR-2006-125, (Redmond, WA), Sep. 2006.

“Prioritizing warnings by analyzing software history”
by Sunghun Kim and Michael D. Ernst.
In MSR 2007: International Workshop on Mining Software Repositories, (Minneapolis, MN, USA), May 19-20, 2007.
Details. Download: PDF.

“Performance Enhancements for a Dynamic Invariant Detector”
by Chen Xiao.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Feb. 2007.
Details. Download: PDF.

2006

“The Groupthink specification exercise”
by Michael D. Ernst.
In Software Engineering Education in the Modern Age: Challenges and Possibilities, vol. 4309 of Lecture Notes in Computer Science, Dec. 2006, pp. 89-107.
Details. Download: PDF, 2-up PDF, 2-up PostScript, activity materials, optional voting software, Second Life version.
A previous version appeared as “The Groupthink specification exercise” by Michael D. Ernst and John Chapin. In ICSE'05, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 18-20, 2005, pp. 617-618.

“Finding the needles in the haystack: Generating legal test inputs for object-oriented programs”
by Shay Artzi, Michael D. Ernst, Adam Kieżun, Carlos Pacheco, and Jeff H. Perkins.
In M-TOOS 2006: 1st Workshop on Model-Based Testing and Object-Oriented Systems, (Portland, OR, USA), October 23, 2006.
Details. Download: PDF, PostScript.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-056, (Cambridge, MA), September 5, 2006.

“An empirical comparison of automated generation and classification techniques for object-oriented unit testing”
by Marcelo d'Amorim, Carlos Pacheco, Darko Marinov, Tao Xie, and Michael D. Ernst.
In ASE 2006: Proceedings of the 21st Annual International Conference on Automated Software Engineering, (Tokyo, Japan), September 20-22, 2006, pp. 59-68.
Details. Download: PDF.

“Evaluating SFI for a CISC Architecture”
by Stephen McCamant and Greg Morrisett.
In 15th USENIX Security Symposium, (Vancouver, BC, Canada), August 2-4, 2006, pp. 209-224.
Details. Download: PDF, PostScript.
A previous version appeared as “Efficient, verifiable binary sandboxing for a CISC architecture” by Stephen McCamant and Greg Morrisett. MIT Computer Science and Artificial Intelligence Laboratory technical report 2005-030, (Cambridge, MA), May 2005. (also MIT LCS TR #988).

“Inference and enforcement of data structure consistency specifications”
by Brian Demsky, Michael D. Ernst, Philip J. Guo, Stephen McCamant, Jeff H. Perkins, and Martin Rinard.
In ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, (Portland, ME, USA), July 18-20, 2006, pp. 233-243.
Details. Download: PDF, PostScript.
A previous version appeared as “Learning and repair techniques for self-healing systems” by Martin Rinard and Michael Ernst, Air Force Research Laboratory. Information Directorate technical report AFRL-IF-RS-TR-2006-157, (Rome, NY, USA), May 2006.

“Dynamic inference of abstract types”
by Philip J. Guo, Jeff H. Perkins, Stephen McCamant, and Michael D. Ernst.
In ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, (Portland, ME, USA), July 18-20, 2006, pp. 255-265.
Details. Download: PDF, PostScript, DynComp implementation (distributed as part of Daikon).

“Detection of web service substitutability and composability”
by Michael D. Ernst, Raimondas Lencevicius, and Jeff H. Perkins.
In WS-MaTe 2006: International Workshop on Web Services — Modeling and Testing, (Palermo, Italy), June 9, 2006, pp. 123-135.
Details. Download: PDF.

“A Machine-Checked Safety Proof for a CISC-Compatible SFI Technique”
by Stephen McCamant.
MIT Computer Science and Artificial Intelligence Laboratory technical report 2006-035, (Cambridge, MA), May 2006.
Details. Download: PDF, PostScript, DSpace.

“A Scalable Mixed-Level Approach to Dynamic Analysis of C and C++ Programs”
by Philip Jia Guo.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 5, 2006.
Details. Download: PDF.

2005

“Automatic test factoring for Java”
by David Saff, Shay Artzi, Jeff H. Perkins, and Michael D. Ernst.
In ASE 2005: Proceedings of the 20th Annual International Conference on Automated Software Engineering, (Long Beach, CA, USA), November 9-11, 2005, pp. 114-123.
Details. Download: PDF, PostScript.
A previous version appeared as MIT Laboratory for Computer Science technical report MIT-LCS-TR-991, (Cambridge, MA), June 7, 2005.

“Learning from executions: Dynamic analysis for software engineering and program understanding”
by Michael D. Ernst and Jeff H. Perkins.
November 7, 2005. Tutorial at ASE 2005: 20th Annual International Conference on Automated Software Engineering.
Details. Download: slides 1 (PDF), slides 2 (PDF), slides 3 (PDF), slides 4 (PDF).

“Using predicate fields in a highly flexible industrial control system”
by Shay Artzi and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), (San Diego, CA, USA), October 18-20, 2005, pp. 319-330.
Details. Download: PDF, PostScript.

“Javari: Adding reference immutability to Java”
by Matthew S. Tschantz and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2005), (San Diego, CA, USA), October 18-20, 2005, pp. 211-230.
Details. Download: PDF, slides (PowerPoint), extended version (PDF), Javari implementation.
An extended version appeared as “Javari: Adding Reference Immutability to Java” by Matthew S. Tschantz. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2006-059, (Cambridge, MA), September 5, 2006.
An extended version appeared as “Javari: Adding Reference Immutability to Java” by Matthew S. Tschantz. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Aug. 2006.

“Verification for legacy programs”
by Michael D. Ernst.
In VSTTE: Verified Software: Theories, Tools, Experiments, (Zürich, Switzerland), October 10-13, 2005.
Details. Download: PDF, PostScript, slides (PDF), slides (PostScript).

“Automatically generating refactorings to support API evolution”
by Jeff H. Perkins.
In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005), (Lisbon, Portugal), September 5-6, 2005, pp. 111-114.
Details. Download: PDF, PostScript.

“ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 2005)”
edited by Michael D. Ernst and Thomas Jensen.
September 5-6, 2005.
Details. Download: workshop website.

“Static deadlock detection for Java libraries”
by Amy Williams, William Thies, and Michael D. Ernst.
In ECOOP 2005 — Object-Oriented Programming, 19th European Conference, (Glasgow, Scotland), July 27-29, 2005, pp. 602-629.
Details. Download: PDF, PostScript.
An extended version appeared as “Static Detection of Deadlock for Java Libraries” by Amy Lynne Williams. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2005.

“Efficiently refactoring Java applications to use generic libraries”
by Robert Fuhrer, Frank Tip, Adam Kieżun, Julian Dolby, and Markus Keller.
In ECOOP 2005 — Object-Oriented Programming, 19th European Conference, (Glasgow, Scotland), July 27-29, 2005, pp. 71-96.
Details. Download: PDF.
A previous version appeared as “Refactoring techniques for migrating applications to generic Java container classes” by Frank Tip, Robert Fuhrer, Julian Dolby, and Adam Kieżun, IBM T.J. Watson Research Center IBM Research Report RC 23238, (Yorktown Heights, NY, USA). June 2, 2004.

“Eclat: Automatic generation and classification of test inputs”
by Carlos Pacheco and Michael D. Ernst.
In ECOOP 2005 — Object-Oriented Programming, 19th European Conference, (Glasgow, Scotland), July 27-29, 2005, pp. 504-527.
Details. Download: PDF, Eclat implementation, Randoop implementation.
An extended version appeared as “Eclat: Automatic generation and classification of test inputs” by Carlos Pacheco. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), June 2005.
A previous version appeared as MIT Laboratory for Computer Science technical report 968, (Cambridge, MA), Oct. 2004.

“An overview of JML tools and applications”
by Lilian Burdy, Yoonsik Cheon, David Cok, Michael D. Ernst, Joe Kiniry, Gary T. Leavens, K. Rustan M. Leino, and Erik Poll.
Software Tools for Technology Transfer, vol. 7, no. 3, June 2005, pp. 212-232.
Details. Download: PDF, PostScript.
A previous version appeared in Eighth International Workshop on Formal Methods for Industrial Critical Systems (FMICS 03), (Trondheim, Norway), June 5-7, 2003.
A previous version appeared as University of Nijmegen Dept. of Computer Science technical report NIII-R0309, Mar. 2003.

2004

“Efficient incremental algorithms for dynamic detection of likely invariants”
by Jeff H. Perkins and Michael D. Ernst.
In Proceedings of the ACM SIGSOFT 12th Symposium on the Foundations of Software Engineering (FSE 2004), (Newport Beach, CA, USA), November 2-4, 2004, pp. 23-32.
Details. Download: PDF, PostScript, slides (PDF), Daikon implementation.

“Formalizing lightweight verification of software component composition”
by Stephen McCamant and Michael D. Ernst.
In SAVCBS 2004: Specification and Verification of Component-Based Systems, (Newport Beach, CA, USA), October 31-November 1, 2004, pp. 47-54.
Details. Download: PDF, PostScript.

“Converting Java programs to use generic libraries”
by Alan Donovan, Adam Kieżun, Matthew S. Tschantz, and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), (Vancouver, BC, Canada), October 26-28, 2004, pp. 15-34.
Details. Download: PDF, PostScript, slides (PDF).
An extended version appeared as “Converting Java programs to use generic libraries” by Alan A. A. Donovan. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Sep. 2004.
A previous version appeared as MIT Laboratory for Computer Science technical report MIT-LCS-TR-940, (Cambridge, MA), March 30, 2004.
A previous version appeared as “Inference of generic types in Java” by Alan Donovan and Michael D. Ernst. MIT Laboratory for Computer Science technical report MIT/LCS/TR-889, (Cambridge, MA), March 22, 2003.

“A practical type system and language for reference immutability”
by Adrian Birka and Michael D. Ernst.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2004), (Vancouver, BC, Canada), October 26-28, 2004, pp. 35-49.
Details. Download: PDF, PostScript, slides (PDF), slides (PostScript), Javari implementation.
A previous version appeared as “Compiler-enforced immutability for the Java language” by Adrian Birka. MIT Laboratory for Computer Science technical report MIT-LCS-TR-908, (Cambridge, MA), June 2003. Revision of Master's thesis.
A previous version appeared as “Compiler-enforced immutability for the Java language” by Adrian Birka. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2003.

“Using simulated execution in verifying distributed algorithms”
by Toh Ne Win, Michael D. Ernst, Stephen J. Garland, Dilsun Kırlı, and Nancy Lynch.
Software Tools for Technology Transfer, vol. 6, no. 1, July 2004, pp. 67-76.
Details. Download: PDF, PostScript.
A previous version appeared in VMCAI'03, Fourth International Conference on Verification, Model Checking and Abstract Interpretation, (New York, New York), January 9-11, 2003, pp. 283-297.

“Improving adaptability via program steering”
by Lee Lin and Michael D. Ernst.
In ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, (Boston, MA, USA), July 12-14, 2004, pp. 206-216.
Details. Download: PDF, PostScript, Slides (PowerPoint).
A previous version appeared as “Improving adaptability via program steering” by Lee Lin. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), August 12, 2004.
A previous version appeared as “Improving reliability and adaptability via program steering” by Lee Lin and Michael D. Ernst. In Fourteenth International Symposium on Software Reliability Engineering, Supplementary Proceedings, (Denver, CO), November 17-20, 2003, pp. 313-314.

“An experimental evaluation of continuous testing during development”
by David Saff and Michael D. Ernst.
In ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, (Boston, MA, USA), July 12-14, 2004, pp. 76-85.
Details. Download: PDF, PostScript, Eclipse plug-in.

“Early identification of incompatibilities in multi-component upgrades”
by Stephen McCamant and Michael D. Ernst.
In ECOOP 2004 — Object-Oriented Programming, 18th European Conference, (Oslo, Norway), June 16-18, 2004, pp. 440-464.
Details. Download: PDF, PostScript.
An extended version appeared as “Predicting problems caused by component upgrades” by Stephen McCamant and Michael D. Ernst. MIT Laboratory for Computer Science technical report 941, (Cambridge, MA), Mar. 2004. Revision of first author's Master's thesis.
An extended version appeared as “Predicting problems caused by component upgrades” by Stephen McCamant. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), January 15, 2004.

“Automatic mock object creation for test factoring”
by David Saff and Michael D. Ernst.
In ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'04), (Washington, DC, USA), June 7-8, 2004, pp. 49-51.
Details. Download: PDF, PostScript.
A summary appeared as “Test factoring: Focusing test suites on the test at hand” by David Saff. In ICSE'05, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 18-20, 2005.

“Finding latent code errors via machine learning over program executions”
by Yuriy Brun and Michael D. Ernst.
In ICSE'04, Proceedings of the 26th International Conference on Software Engineering, (Edinburgh, Scotland), May 26-28, 2004, pp. 480-490.
Details. Download: PDF, PostScript.
A previous version appeared as “Software Fault Identification via Dynamic Analysis and Machine Learning” by Yuriy Brun. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), August 16, 2003.

“Continuous testing in Eclipse”
by David Saff and Michael D. Ernst.
In 2nd Eclipse Technology Exchange Workshop (eTX), (Barcelona, Spain), March 30, 2004.
Details. Download: PDF, PostScript, Eclipse plug-in.
A tool demo appeared in ICSE'05, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 18-20, 2005, pp. 668-669.

2003

“Reducing wasted development time via continuous testing”
by David Saff and Michael D. Ernst.
In Fourteenth International Symposium on Software Reliability Engineering, (Denver, CO), November 17-20, 2003, pp. 281-292.
Details. Download: PDF, PostScript.
An extended version appeared as “Automated continuous testing to speed software development” by David Saff. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), February 3, 2004.

“Refactoring for generalization using type constraints”
by Frank Tip, Adam Kieżun, and Dirk Bäumer.
In Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2003), (Anaheim, CA, USA), November 6-8, 2003, pp. 13-26.
Details. Download: PDF.

“Footloose: A Case for Physical Eventual Consistency and Selective Conflict Resolution”
by Justin Mazzola Paluska, David Saff, Tom Yeh, and Kathryn Chen.
In 5th IEEE Workshop on Mobile Computing Systems and Applications, (Monterey, CA, USA), October 9-10, 2003, pp. 170-180.
Details. Download: PDF, PostScript, Presentation (PDF).

“Predicting problems caused by component upgrades”
by Stephen McCamant and Michael D. Ernst.
In ESEC/FSE 2003: Proceedings of the 9th European Software Engineering Conference and the 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering, (Helsinki, Finland), September 3-5, 2003, pp. 287-296.
Details. Download: PDF, PostScript.
An extended version appeared as MIT Laboratory for Computer Science technical report 941, (Cambridge, MA), Mar. 2004. Revision of first author's Master's thesis.
An extended version appeared as “Predicting problems caused by component upgrades” by Stephen McCamant. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), January 15, 2004.

“Selecting, refining, and evaluating predicates for program analysis”
by Nii Dodoo, Lee Lin, and Michael D. Ernst.
MIT Laboratory for Computer Science technical report MIT-LCS-TR-914, (Cambridge, MA), July 21, 2003.
Details. Download: PDF, PostScript.
A previous version appeared as “Selecting predicates for implications in program analysis” by Nii Dodoo, Alan Donovan, Lee Lin, and Michael D. Ernst. March 16, 2002. Draft. http://www.cs.washington.edu/homes/mernst/pubs/invariants-implications.ps.

“Theorem-proving distributed algorithms with dynamic analysis”
by Toh Ne Win.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2003.
Details. Download: PDF, PostScript.

“Determining legal method call sequences in object interfaces”
by Samir V. Meghani and Michael D. Ernst.
May 2003.
Details.

“WODA 2003: ICSE Workshop on Dynamic Analysis”
edited by Jonathan E. Cook and Michael D. Ernst.
May 9, 2003.
Details. Download: workshop website.
A summary appeared as “Summary: Workshop on Dynamic Analysis (WODA 2003)” by Jonathan E. Cook and Michael D. Ernst. ACM SIGSOFT Software Engineering Notes, vol. 28, no. 6, Nov. 2003.

“Static and dynamic analysis: Synergy and duality”
by Michael D. Ernst.
In WODA 2003: ICSE Workshop on Dynamic Analysis, (Portland, OR), May 9, 2003, pp. 24-27.
Details. Download: PDF, PostScript.

“Improving test suites via operational abstraction”
by Michael Harder, Jeff Mellen, and Michael D. Ernst.
In ICSE'03, Proceedings of the 25th International Conference on Software Engineering, (Portland, Oregon), May 6-8, 2003, pp. 60-71.
Details. Download: PDF, PostScript, Talk slides (PowerPoint), Talk slides (PowerPoint).
A previous version appeared as “Improving test suites via generated specifications” by Michael Harder. MIT Laboratory for Computer Science technical report 848, (Cambridge, MA), June 4, 2002. Revision of author's Master's thesis.
A previous version appeared as “Improving Test Suites via Generated Specifications” by Michael Harder. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2002.

2002

“An empirical analysis of C preprocessor use”
by Michael D. Ernst, Greg J. Badros, and David Notkin.
IEEE Transactions on Software Engineering, vol. 28, no. 12, Dec. 2002, pp. 1146-1170.
Details. Download: PDF.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-97-04-06, (Seattle, WA), April 22, 1997. Revised March 31, 1999.

“Invariant inference for static checking: An empirical evaluation”
by Jeremy W. Nimmer and Michael D. Ernst.
In Proceedings of the ACM SIGSOFT 10th International Symposium on the Foundations of Software Engineering (FSE 2002), (Charleston, SC), November 20-22, 2002, pp. 11-20.
Details. Download: PDF, PostScript.
A revised version appeared as “Automatic Generation and Checking of Program Specifications” by Jeremy W. Nimmer. MIT Laboratory for Computer Science technical report 852, (Cambridge, MA), June 10, 2002. Revision of author's Master's thesis.
A revised version appeared as “Automatic Generation and Checking of Program Specifications” by Jeremy W. Nimmer. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2002.

“Selecting Predicates for Conditional Invariant Detection Using Cluster Analysis”
by Nii Dodoo.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Sep. 2002.
Details. Download: PostScript.

“A C/C++ Front End for the Daikon Dynamic Invariant Detection System”
by Benjamin Morse.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Aug. 2002.
Details. Download: PDF, PostScript.

“Automatic generation of program specifications”
by Jeremy W. Nimmer and Michael D. Ernst.
In ISSTA 2002, Proceedings of the 2002 International Symposium on Software Testing and Analysis, (Rome, Italy), July 22-24, 2002, pp. 232-242.
Details. Download: PDF, PostScript.
A revised version appeared as “Automatic Generation and Checking of Program Specifications” by Jeremy W. Nimmer. MIT Laboratory for Computer Science technical report 852, (Cambridge, MA), June 10, 2002. Revision of author's Master's thesis.
A revised version appeared as “Automatic Generation and Checking of Program Specifications” by Jeremy W. Nimmer. Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2002.
A previous version appeared as “Automatic generation and checking of program specifications” by Jeremy W. Nimmer and Michael D. Ernst. MIT Laboratory for Computer Science technical report 823, (Cambridge, MA), August 10, 2001. Revised February 1, 2002.

“Code Versioning in a Workflow Management System”
by Alex Rolfe.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), May 2002.
Details. Download: PDF, PostScript.

“Verifying distributed algorithms via dynamic analysis and theorem proving”
by Toh Ne Win and Michael D. Ernst.
MIT Laboratory for Computer Science technical report 841, (Cambridge, MA), May 25, 2002.
Details. Download: PDF, PostScript.

2001

“Automated support for program refactoring using invariants”
by Yoshio Kataoka, Michael D. Ernst, William G. Griswold, and David Notkin.
In ICSM 2001, Proceedings of the International Conference on Software Maintenance, (Florence, Italy), November 6-10, 2001, pp. 736-743.
Details. Download: PDF, PostScript.

“Improved Simulation of Input/Output Automata”
by Laura Dean.
Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Sep. 2001.
Details. Download: PDF, PostScript.

“Static verification of dynamically detected program invariants: Integrating Daikon and ESC/Java”
by Jeremy W. Nimmer and Michael D. Ernst.
In Proceedings of RV'01, First Workshop on Runtime Verification, (Paris, France), July 23, 2001.
Details. Download: PDF, PostScript.

“Panel: Perspectives on software engineering”
by David Notkin, Marc Donner, Michael D. Ernst, Michael Gorlick, and E. James Whitehead, Jr..
In ICSE 2001, Proceedings of the 23rd International Conference on Software Engineering, (Montreal, Canada), May 16-18, 2001, pp. 699-702.
Details. Download: Slides (for all panelists).

“Dynamically discovering likely program invariants to support program evolution”
by Michael D. Ernst, Jake Cockrell, William G. Griswold, and David Notkin.
IEEE Transactions on Software Engineering, vol. 27, no. 2, Feb. 2001, pp. 99-123.
Details. Download: PDF, ICSE 1999 talk slides (PowerPoint), ICSE 1999 talk slides (PostScript), Daikon implementation.
A previous version appeared in ICSE '99, Proceedings of the 21st International Conference on Software Engineering, (Los Angeles, CA, USA), May 19-21, 1999, pp. 213-224.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-98-08-03, (Seattle, WA), August 27, 1998.

2000

“Dynamically Discovering Likely Program Invariants”
by Michael D. Ernst.
Ph.D. dissertation, University of Washington Department of Computer Science and Engineering, (Seattle, Washington), Aug. 2000.
Details. Download: PDF, PostScript, Daikon implementation.
A summary appeared as “Summary of Dynamically discovering likely program invariants” by Michael D. Ernst. In ICSM 2001, Proceedings of the International Conference on Software Maintenance, (Florence, Italy), November 6-10, 2001, pp. 540-544.
A short research plan appeared as “Research summary for dynamic detection of program invariants” by Michael D. Ernst. In ICSE '99, Proceedings of the 21st International Conference on Software Engineering, (Los Angeles, CA, USA), May 19-21, 1999, pp. 718-719.
A longer research plan appeared as “Research summary for dynamic detection of program invariants” by Michael D. Ernst. In ICSE '99 Doctoral Workshop, (Los Angeles, CA, USA), May 18, 1999. Expanded version of two-page summary in ICSE '99 proceedings, distributed at workshop.

“Quickly detecting relevant program invariants”
by Michael D. Ernst, Adam Czeisler, William G. Griswold, and David Notkin.
In ICSE 2000, Proceedings of the 22nd International Conference on Software Engineering, (Limerick, Ireland), June 7-9, 2000, pp. 449-458.
Details. Download: PDF, PostScript, Daikon implementation.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-99-11-01, (Seattle, WA), November 15, 1999.

1999

“Dynamically discovering pointer-based program invariants”
by Michael D. Ernst, William G. Griswold, Yoshio Kataoka, and David Notkin.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-99-11-02, (Seattle, WA), November 16, 1999. Revised March 17, 2000.
Details. Download: PDF, PostScript, Daikon implementation.


Copyright notice: This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.


(This webpage was created with bibtex2web.)

Program Analysis Group