Michael Ernst's publications

Also see my research interests, which contains a one-sentence description of each paper.

If PDF for a paper is not linked here, then the paper has not yet been finalized. I'm always happy to share a draft if you are willing to give feedback on it.

Copyright notice.


2023

“Inference of resource management specifications”
by Narges Shadab, Pritam Gharat, Shrey Tiwari, Michael D. Ernst, Martin Kellogg, Shuvendu Lahiri, Akash Lal, and Manu Sridharan.
Proceedings of the ACM on Programming Languages, vol. 7, no. OOPSLA2, article #282, Oct. 2023, pp. 1705-1728.
Details. Download: PDF, slides (PDF), implementation.

“Pluggable type inference for free”
by Martin Kellogg, Daniel Daskiewicz, Loi Ngo Duc Nguyen, Muyeed Ahmed, and Michael D. Ernst.
In ASE 2023: Proceedings of the 38th Annual International Conference on Automated Software Engineering, (Luxembourg), Sep. 2023.
Details. Download: PDF, slides (PDF), implementation.

2022

“Nothing is better than the Optional type. Really. Nothing is better.”
by Michael D. Ernst.
Java Magazine, Dec. 2022.
Details. Download: original version, Java Magazine version.

“Call Me Maybe: Using NLP to automatically generate unit test cases respecting temporal constraints”
by Arianna Blasi, Alessandra Gorla, Michael D. Ernst, and Mauro Pezzè.
In ASE 2022: Proceedings of the 37th Annual International Conference on Automated Software Engineering, (Oakland Center, MI, USA), Oct. 2022, pp. 1-11.
Details. Download: PDF, slides (PDF), slides (Keynote), implementation & replication package.

Notes on Program Analysis
by Michael D. Ernst.
https://homes.cs.washington.edu/~mernst/pubs/program-analysis-book.pdf, Sep. 2022.
Details. Download: PDF.

“Accumulation analysis”
by Martin Kellogg, Narges Shadab, Manu Sridharan, and Michael D. Ernst.
In ECOOP 2022 — Object-Oriented Programming, 33rd European Conference, (Berlin, Germany), June 2022, pp. 10:1-10:31.
Details. Download: PDF, slides (PDF), slides (Google Slides), implementation, artifact.

“Accumulation analysis (artifact)”
by Martin Kellogg, Narges Shadab, Manu Sridharan, and Michael D. Ernst.
DARTS, Dagstuhl Artifacts Series, vol. 8, no. 2, June 2022, pp. 22:1-22:3.
Details. Download: PDF, implementation, artifact.

2021

“MeMo: Automatically identifying metamorphic relations in Javadoc comments for test automation”
by Arianna Blasi, Alessandra Gorla, Michael D. Ernst, Mauro Pezzè, and Antonio Carzaniga.
Journal of Systems and Software, vol. 181, Nov. 2021, pp. 111041:1-13.
Details. Download: PDF, implementation.

“Lightweight and modular resource leak verification”
by Martin Kellogg, Narges Shadab, Manu Sridharan, and Michael D. Ernst.
In ESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), (Athens, Greece), Aug. 2021, pp. 181-192.
Details. Download: PDF, talk video (MP4), slides (PDF), slides (Google Slides), talk video (YouTube), implementation, scripts and data.

“Checking conformance of applications against GUI policies”
by Zhen Zhang, Yu Feng, Michael D. Ernst, Sebastian Porst, and Isil Dillig.
In ESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), (Athens, Greece), Aug. 2021, pp. 95-106.
Details. Download: PDF, talk video (.mov), slides (PDF), slides (Google Slides), implementation.

“Verifying determinism in sequential programs”
by Rashmi Mudduluru, Jason Waataja, Suzanne Millstein, and Michael D. Ernst.
In ICSE 2021, Proceedings of the 43rd International Conference on Software Engineering, (Madrid, Spain), May 2021, pp. 37-49.
Details. Download: PDF, slides (PDF), slides (Keynote), extended version (PDF), implementation, experimental data.
An extended version appeared as “Verifying determinism in sequential programs (extended version)” by Rashmi Mudduluru, Jason Waataja, Suzanne Millstein, and Michael D. Ernst. University of Washington Paul G. Allen School of Computer Science and Engineering technical report UW-CSE-2021-02-01, (Seattle, WA, USA), Feb. 2021.

2020

“Revisiting the relationship between fault detection, test adequacy criteria, and test set size”
by Yiqun T. Chen, Rahul Gopinath, Anita Tadakamalla, Michael D. Ernst, Reid Holmes, Gordon Fraser, Paul Ammann, and René Just.
In ASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, (Melbourne, Australia), Sep. 2020, pp. 237-249.
Details. Download: PDF, slides (PDF), slides (Google Slides).

“Continuous compliance”
by Martin Kellogg, Martin Schäf, Serdar Tasiran, and Michael D. Ernst.
In ASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, (Melbourne, Australia), Sep. 2020, pp. 511-523.
Details. Download: PDF, slides (PDF), scripts and data, KMS checker, crypto checker, bucket checker, no literal checker.

“Dependent-test-aware regression testing techniques”
by Wing Lam, August Shi, Reed Oei, Sai Zhang, Michael D. Ernst, and Tao Xie.
In ISSTA 2020, Proceedings of the 2020 International Symposium on Software Testing and Analysis, (Los Angeles, CA, USA), July 2020, pp. 298-311.
Details. Download: PDF, slides (PowerPoint), talk video (YouTube), implementation, data.

“Where should I comment my code? A dataset and model for predicting locations that need comments”
by Annie Louis, Santanu Kumar Dash, Earl T. Barr, Michael D. Ernst, and Charles Sutton.
In ICSE NIER, Proceedings of the 42nd International Conference on Software Engineering, New Ideas and Emerging Results Track, (Seoul, Korea), May 2020, pp. 21-24.
Details. Download: PDF, slides (PowerPoint), implementation and dataset.

“Verifying Object Construction”
by Martin Kellogg, Manli Ran, Manu Sridharan, Martin Schäf, and Michael D. Ernst.
In ICSE 2020, Proceedings of the 42nd International Conference on Software Engineering, (Seoul, Korea), May 2020, pp. 1447-1458.
Details. Download: PDF, slides (PDF), slides (Google Slides), implementation, scripts and data.

“Visualizing Distributed System Executions”
by Ivan Beschastnikh, Perry Liu, Albert Xing, Patty Wang, Yuriy Brun, and Michael D. Ernst.
ACM Transactions on Software Engineering and Methodology, vol. 29, no. 2, Mar. 2020, pp. 9:1-9:38.
Details. Download: PDF, ShiViz, video demo of ShiViz, XVector.
A previous version appeared as “Debugging distributed systems: Challenges and options for validation and debugging” by Ivan Beschastnikh, Patty Wang, Yuriy Brun, and Michael D. Ernst. Communications of the ACM, vol. 59, no. 8, Aug. 2016, pp. 32-37.
A previous version appeared as “Debugging distributed systems: Challenges and options for validation and debugging” by Ivan Beschastnikh, Patty Wang, Yuriy Brun, and Michael D. Ernst. ACM Queue, vol. 14, no. 2, March/April 2016, pp. 91-110.

2019

“Teaching rigorous distributed systems with efficient model checking”
by Ellis Michael, Doug Woos, Thomas Anderson, Michael D. Ernst, and Zachary Tatlock.
In EuroSys, (Dresden, Germany), Mar. 2019, pp. 1-15.
Details. Download: PDF, slides (PDF), slides (Keynote).

“An empirical study of fault localization families and their combinations”
by Daming Zou, Jingjing Liang, Yingfei Xiong, Michael D. Ernst, and Lu Zhang.
IEEE Transactions on Software Engineering, vol. 47, Feb. 2019, pp. 332-347.
Details. Download: PDF, CombineFL tool.

“Modular verification of web page layout”
by Pavel Panchekha, Michael D. Ernst, Zachary Tatlock, and Shoaib Kamil.
Proceedings of the ACM on Programming Languages, vol. 3, no. 151, 2019. OOPSLA.
Details. Download: PDF, Troika, VizAssert, and Cassius tools.

2018

“Translating code comments to procedure specifications”
by Arianna Blasi, Alberto Goffi, Konstantin Kuznetsov, Alessandra Gorla, Michael D. Ernst, Mauro Pezzè, and Sergio Delgado Castellanos.
In ISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, (Amsterdam, Netherlands), July 2018, pp. 242-253.
Details. Download: PDF, poster (PDF), slides (PDF), slides (Keynote), Jdoctor implementation.

“Lightweight verification of array indexing”
by Martin Kellogg, Vlastimil Dort, Suzanne Millstein, and Michael D. Ernst.
In ISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, (Amsterdam, Netherlands), July 2018, pp. 3-14.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Comparing developer-provided to user-provided tests for fault localization and automated program repair”
by René Just, Chris Parnin, Ian Drosos, and Michael D. Ernst.
In ISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, (Amsterdam, Netherlands), July 2018, pp. 287-297.
Details. Download: PDF, slides (PDF), slides (Google Slides), data.

“Verifying that web pages have accessible layout”
by Pavel Panchekha, Adam Geller, Michael D. Ernst, Zachary Tatlock, and Shoaib Kamil.
In PLDI 2018: Proceedings of the ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation, (Philadelphia, PA, USA), June 2018, pp. 1-14.
Details. Download: PDF, slides (PDF), slides (Keynote), VizAssert and Cassius tools.

“NL2Bash: A corpus and semantic parser for natural language interface to the Linux operating system”
by Xi Victoria Lin, Chenglong Wang, Luke Zettlemoyer, and Michael D. Ernst.
In LREC: Language Resources and Evaluation Conference, (Miyazaki, Japan), May 2018.
Details. Download: PDF, slides (PDF), slides (Keynote), dataset.

“Generalized data structure synthesis”
by Calvin Loncaric, Michael D. Ernst, and Emina Torlak.
In ICSE 2018, Proceedings of the 40th International Conference on Software Engineering, (Gothenburg, Sweden), May 2018, pp. 958-968.
Details. Download: PDF, slides (PDF), slides (Keynote), Cozy implementation.

2017

“Automatic formal verification for EPICS”
by Jonathan Jacky, Stefani Banerian, Michael D. Ernst, Calvin Loncaric, Stuart Pernsteiner, Zachary Tatlock, and Emina Torlak.
In ICALEPCS 2017: 16th International Conference on Accelerator and Large Experimental Physics Control Systems, (Barcelona, Spain), Oct. 2017.
Details. Download: PDF, slides (PDF), talk video (YouTube).

“SpaceSearch: A library for building and verifying solver-aided tools”
by Konstantin Weitz, Steven Lyubomirsky, Stefan Heule, Emina Torlak, Michael D. Ernst, and Zachary Tatlock.
In ICFP 2017: Proceedings of the 22nd ACM SIGPLAN International Conference on Functional Programming, (Oxford, UK), Sep. 2017, pp. 25:1-25:28.
Details. Download: PDF, slides (PDF), slides (Keynote).

“Natural language is a programming language: Applying natural language processing to software development”
by Michael D. Ernst.
In SNAPL 2017: the 2nd Summit oN Advances in Programming Languages, (Asilomar, CA, USA), May 2017, pp. 4:1-4:14.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“Evaluating and improving fault localization”
by Spencer Pearson, José Campos, René Just, Gordon Fraser, Rui Abreu, Michael D. Ernst, Deric Pang, and Benjamin Keller.
In ICSE 2017, Proceedings of the 39th International Conference on Software Engineering, (Buenos Aires, Argentina), May 2017, pp. 609-620.
Details. Download: PDF, slides (PDF), longer slide deck (PowerPoint), longer slide deck (PDF), technical report UW-CSE-16-08-03, data and scripts.
An extended version appeared as “Evaluating & improving fault localization techniques” by Spencer Pearson, José Campos, René Just, Gordon Fraser, Rui Abreu, Michael D. Ernst, Deric Pang, and Benjamin Keller. University of Washington Department of Computer Science and Engineering technical report UW-CSE-16-08-03, (Seattle, WA, USA), Sep. 2016. Revised February 2017.

“Verifying Invariants of Lock-free Data Structures with Rely-Guarantee and Refinement Types”
by Colin S. Gordon, Michael D. Ernst, Dan Grossman, and Matthew Parkinson.
ACM Transactions on Programming Languages and Systems, vol. 39, no. 3, May 2017, pp. 11:1-11:54.
Details. Download: PDF.

“Program synthesis from natural language using recurrent neural networks”
by Xi Victoria Lin, Chenglong Wang, Deric Pang, Kevin Vu, Luke Zettlemoyer, and Michael D. Ernst.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-17-03-01, (Seattle, WA, USA), Mar. 2017.
Details. Download: PDF, Tellina website, Tellina implementation.

2016

“Scalable verification of Border Gateway Protocol configurations with an SMT solver”
by Konstantin Weitz, Doug Woos, Emina Torlak, Michael D. Ernst, Arvind Krishnamurthy, and Zachary Tatlock.
In OOPSLA 2016, Object-Oriented Programming Systems, Languages, and Applications, (Amsterdam), Nov. 2016, pp. 765-780.
Details. Download: PDF, slides (Keynote), talk video, Bagpipe homepage.
An overview appeared as “Formal Semantics and Automated Verification for the Border Gateway Protocol” by Konstantin Weitz, Doug Woos, Emina Torlak, Michael D. Ernst, Arvind Krishnamurthy, and Zachary Tatlock. In NetPL 2016: ACM SIGCOMM Workshop on Networking and Programming Languages (NetPL 2016), (Florianópolis, Brazil), Aug. 2016.
A previous version appeared as “Bagpipe: Verified BGP configuration checking” by Konstantin Weitz, Doug Woos, Emina Torlak, Michael D. Ernst, Arvind Krishnamurthy, and Zachary Tatlock. University of Washington Department of Computer Science and Engineering technical report UW-CSE-16-01-01, (Seattle, WA, USA), Jan. 2016.

“Automatic trigger generation for rule-based smart homes”
by Chandrakana Nandi and Michael D. Ernst.
In PLAS 2016: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, (Vienna, Austria), Oct. 2016, pp. 97-102.
Details. Download: PDF, slides (PDF), slides (Google Slides).

“Automatic generation of oracles for exceptional behaviors”
by Alberto Goffi, Alessandra Gorla, Michael D. Ernst, and Mauro Pezzè.
In ISSTA 2016, Proceedings of the 2016 International Symposium on Software Testing and Analysis, (Saarbrücken, Genmany), July 2016, pp. 213-224.
Details. Download: PDF, slides (PDF), Toradocu implementation.

“Investigating safety of a radiotherapy machine using system models with pluggable checkers”
by Stuart Pernsteiner, Calvin Loncaric, Emina Torlak, Zachary Tatlock, Xi Wang, Michael D. Ernst, and Jonathan Jacky.
In CAV 2016: 28th International Conference on Computer Aided Verification, (Toronto, Canada), July 2016, pp. 23-41.
Details. Download: PDF, slides (PDF).

“Fast synthesis of fast collections”
by Calvin Loncaric, Emina Torlak, and Michael D. Ernst.
In PLDI 2016: Proceedings of the ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation, (Santa Barbara, CA, USA), June 2016, pp. 355-368.
Details. Download: PDF, slides (PDF), Cozy implementation.

“Semantics for locking specifications”
by Michael D. Ernst, Damiano Macedonio, Massimo Merro, and Fausto Spoto.
In NFM 2016: 8th NASA Formal Methods Symposium, (Minneapolis, MN, USA), June 2016, pp. 355-372.
Details. Download: PDF, slides (PDF), slides (PowerPoint), checking implementation.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-09-01, (Seattle, WA, USA), Sep. 2015.

“Locking discipline inference and checking”
by Michael D. Ernst, Alberto Lovato, Damiano Macedonio, Fausto Spoto, and Javier Thaine.
In ICSE 2016, Proceedings of the 38th International Conference on Software Engineering, (Austin, TX, USA), May 2016, pp. 1133-1144.
Details. Download: PDF, slides (PDF), slides (PowerPoint), checking implementation.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-09-02, (Seattle, WA, USA), Sep. 2015.

“Planning for change in a formal verification of the Raft consensus protocol”
by Doug Woos, James R. Wilcox, Steve Anton, Zachary Tatlock, Michael D. Ernst, and Thomas Anderson.
In CPP 2016: 5th ACM SIGPLAN Conference on Certified Programs and Proofs, (St. Petersburg, FL, USA), Jan. 2016, pp. 154-165.
Details. Download: PDF, slides (PDF), Verdi website, Verdi implementation, Raft implementation and proofs.

2015

“Explaining visual changes in web interfaces”
by Brian Burg, Andrew J. Ko, and Michael D. Ernst.
In UIST 2015: Proceedings of the 28th ACM Symposium on User Interface Software and Technology, (Charlotte, NC, USA), Nov. 2015, pp. 259-268.
Details. Download: PDF, slides (PDF), Timelapse implementation.

“Boolean formulas for the static identification of injection attacks in Java”
by Michael D. Ernst, Alberto Lovato, Damiano Macedonio, Ciprian Spiridon, and Fausto Spoto.
In LPAR 2015: Proceedings of the 20th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, (Suva, Fiji), Nov. 2015, pp. 130-145.
Details. Download: PDF, slides (PDF).
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-09-03, (Seattle, WA, USA), Sep. 2015.

“Static analysis of implicit control flow: Resolving Java reflection and Android intents”
by Paulo Barros, René Just, Suzanne Millstein, Paul Vines, Werner Dietl, Marcelo d'Amorim, and Michael D. Ernst.
In ASE 2015: Proceedings of the 30th Annual International Conference on Automated Software Engineering, (Lincoln, NE, USA), Nov. 2015, pp. 669-679.
Details. Download: PDF, slides (PDF), slides (PowerPoint), extended version, SPARTA toolset, Checker Framework.
An extended version appeared as “Static analysis of implicit control flow: Resolving Java reflection and Android intents (extended version)” by Paulo Barros, René Just, Suzanne Millstein, Paul Vines, Werner Dietl, Marcelo d'Amorim, and Michael D. Ernst. University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-08-01, (Seattle, WA, USA), Aug. 2015.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-05-01, (Seattle, WA, USA), May 2015.

“Development history granularity transformations”
by Kıvanç Muşlu, Luke Swart, Yuriy Brun, and Michael D. Ernst.
In ASE 2015: Proceedings of the 30th Annual International Conference on Automated Software Engineering, (Lincoln, NE, USA), Nov. 2015, pp. 697-702.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“Ayudante: Identifying undesired variable interactions”
by Irfan Ul Haq, Juan Caballero, and Michael D. Ernst.
In WODA 2015: 13th International Workshop on Dynamic Analysis, (Pittsburgh, PA, USA), Oct. 2015, pp. 8-13.
Details. Download: PDF, slides (PDF).

“Reducing feedback delay of software development tools via continuous analysis”
by Kıvanç Muşlu, Yuriy Brun, Michael D. Ernst, and David Notkin.
IEEE Transactions on Software Engineering, vol. 41, no. 8, Aug. 2015, pp. 745-763.
Details. Download: PDF, ESEC/FSE 2013 slides (PDF), ESEC/FSE 2013 slides (PowerPoint).
A previous version appeared as “Making offline analyses continuous” by Kıvanç Muşlu, Yuriy Brun, Michael D. Ernst, and David Notkin. In ESEC/FSE 2013: The 9th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (St. Petersburg, Russia), Aug. 2013, pp. 323-333.

“Lessons learned in game development for crowdsourced software formal verification”
by Drew Dean, Sean Guarino, Leonard Eusebi, Andrew Keplinger, Tim Pavlik, Ronald Watro, Aaron Cammarata, John Murray, Kelly McLaughlin, John Cheng, and Thomas Maddern.
In 3GSE: USENIX Summit on Gaming, Games, and Gamification in Security Education, (Washington, DC), Aug. 2015.
Details. Download: PDF.

“Proactive detection of inadequate diagnostic messages for software configuration errors”
by Sai Zhang and Michael D. Ernst.
In ISSTA 2015, Proceedings of the 2015 International Symposium on Software Testing and Analysis, (Baltimore, MD, USA), July 2015, pp. 12-23.
Details. Download: PDF, slides (PDF), slides (PowerPoint), ConfDiagDetector implementation.

“Verdi: A framework for implementing and formally verifying distributed systems”
by James R. Wilcox, Doug Woos, Pavel Panchekha, Zachary Tatlock, Xi Wang, Michael D. Ernst, and Thomas Anderson.
In PLDI 2015: Proceedings of the ACM SIGPLAN 2015 Conference on Programming Language Design and Implementation, (Portland, OR, USA), June 2015, pp. 357-368.
Details. Download: PDF, slides (PDF), Verdi website, Verdi implementation.

“Toward a dependability case language and workflow for a radiation therapy system”
by Michael D. Ernst, Dan Grossman, Jon Jacky, Calvin Loncaric, Stuart Pernsteiner, Zachary Tatlock, Emina Torlak, and Xi Wang.
In SNAPL 2015: the Inaugural Summit oN Advances in Programming Languages, (Asilomar, CA, USA), May 2015, pp. 103-112.
Details. Download: PDF, slides (PDF).

“Cascade: A universal programmer-assisted type qualifier inference tool”
by Mohsen Vakilian, Amarin Phaosawasdi, Michael D. Ernst, and Ralph E. Johnson.
In ICSE 2015, Proceedings of the 37th International Conference on Software Engineering, (Florence, Italy), May 2015, pp. 234-245.
Details. Download: PDF, slides (PDF), slides (Google Slides), Cascade tool, user study materials.

“Using declarative specification to improve the understanding, extensibility, and comparison of model-inference algorithms”
by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy.
IEEE Transactions on Software Engineering, vol. 41, no. 4, Apr. 2015, pp. 408-428.
Details. Download: PDF, ICSE 2013 slides (PDF), InvariMint implementation.
A previous version appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. In ICSE 2013, Proceedings of the 35th International Conference on Software Engineering, (San Francisco, CA, USA), May 2013, pp. 252-261.
An extended version with proofs appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-03-01, (Seattle, WA, USA), Mar. 2013.
A previous version appeared as “Unifying FSM-inference algorithms through declarative specification” by Ivan Beschastnikh, Yuriy Brun, Jenny Abrahamson, Michael D. Ernst, and Arvind Krishnamurthy. University of Washington Department of Computer Science and Engineering technical report UW-CSE-12-08-02, (Seattle, WA, USA), Aug. 2012.

“A data programming CS1 course”
by Ruth Anderson, Michael D. Ernst, Robert Ordóñez, Paul Pham, and Ben Tribelhorn.
In SIGCSE: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, (Kansas City, MO, USA), Mar. 2015, pp. 150-155.
Details. Download: PDF, Data Programming class at UW.

“When tests collide: Evaluating and coping with the impact of test dependence”
by Wing Lam, Sai Zhang, and Michael D. Ernst.
University of Washington Department of Computer Science and Engineering technical report UW-CSE-15-03-01, (Seattle, WA, USA), Mar. 2015.
Details. Download: PDF.

2014

“Are mutants a valid substitute for real faults in software testing?”
by René Just, Darioush Jalali, Laura Inozemtseva, Michael D. Ernst, Reid Holmes, and Gordon Fraser.
In FSE 2014: Proceedings of the ACM SIGSOFT 22nd Symposium on the Foundations of Software Engineering, (Hong Kong), Nov. 2014, pp. 654-665.
Details. Download: PDF, slides (PDF), Defects4J subject programs, Major mutation tool.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-02-02, (Seattle, WA, USA), Mar. 2014.

“Collaborative verification of information flow for a high-assurance app store”
by Michael D. Ernst, René Just, Suzanne Millstein, Werner Dietl, Stuart Pernsteiner, Franziska Roesner, Karl Koscher, Paulo Barros, Ravi Bhoraskar, Seungyeop Han, Paul Vines, and Edward X. Wu.
In CCS 2014: Proceedings of the 21st ACM Conference on Computer and Communications Security, (Scottsdale, AZ, USA), Nov. 2014, pp. 1092-1104.
Details. Download: PDF, slides (PDF), SPARTA toolset and experimental data.
A previous version appeared as “Collaborative verification of information flow for a high-assurance app store” by Michael D. Ernst, René Just, Suzanne Millstein, Werner M. Dietl, Stuart Pernsteiner, Franziska Roesner, Karl Koscher, Paulo Barros, Ravi Bhoraskar, Seungyeop Han, Paul Vines, and Edward X. Wu. University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-04-02, (Seattle, WA, USA), Apr. 2014.

“Defects4J: A Database of existing faults to enable controlled testing studies for Java programs”
by René Just, Darioush Jalali, and Michael D. Ernst.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 2014, pp. 437-440. Tool demo.
Details. Download: PDF, Defects4J website.

“Empirically revisiting the test independence assumption”
by Sai Zhang, Darioush Jalali, Jochen Wuttke, Kıvanç Muşlu, Wing Lam, Michael D. Ernst, and David Notkin.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 2014, pp. 385-396.
Details. Download: PDF, slides (PowerPoint).
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-14-01-01, (Seattle, WA, USA), Jan. 2014.

“Efficient mutation analysis by propagating and partitioning infected execution states”
by René Just, Michael D. Ernst, and Gordon Fraser.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 2014, pp. 315-326.
Details. Download: PDF, slides (PDF), Major mutation framework and experimental data.

“A type system for format strings”
by Konstantin Weitz, Gene Kim, Siwakorn Srisakaokul, and Michael D. Ernst.
In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 2014, pp. 127-137.
Details. Download: PDF, slides (PDF), slides (ODP), demo paper (PDF), Format String Checker implementation.
A tool demonstration appeared as “A format string checker for Java” by Konstantin Weitz, Gene Kim, Siwakorn Srisakaokul, and Michael D. Ernst. In ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, (San Jose, CA, USA), July 2014, pp. 441-444.

“Which configuration option should I change?”
by Sai Zhang and Michael D. Ernst.
In ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, (Hyderabad, India), June 2014, pp. 152-163.
Details. Download: PDF, slides (PDF), slides (PowerPoint), ConfSuggester implementation.

“Shedding light on distributed system executions”
by Jenny Abrahamson, Ivan Beschastnikh, Yuriy Brun, and Michael D. Ernst.
In ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, (Hyderabad, India), June 2014, pp. 598-599.
Details. Download: PDF, poster (PDF), online deployment (try it!), ShiVector and ShiViz source code, video demo (YouTube).

“Inferring models of concurrent systems from logs of their behavior with CSight”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, and Arvind Krishnamurthy.
In ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, (Hyderabad, India), June 2014, pp. 468-479.
Details. Download: PDF, slides (PDF), CSight implementation.
A previous version appeared as “Inferring models of concurrent systems from logs of their behavior with CSight” by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, and Arvind Krishnamurthy, University of British Columbia cIRcle: UBC's Digital Repository, (Vancouver, BC, Canada). February 28, 2014. https://hdl.handle.net/2429/46122.

“Case studies and tools for contract specifications”
by Todd W. Schiller, Kellen Donohue, Forrest Coward, and Michael D. Ernst.
In ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, (Hyderabad, India), June 2014, pp. 596-607.
Details. Download: PDF, slides (PDF), slides (PowerPoint), data and tools.

“User scripting on Android using BladeDroid”
by Ravi Bhoraskar, Dominic Langenegger, Pingyang He, Raymond Cheng, Will Scott, and Michael D. Ernst.
In APSys 2014: 5th Asia-Pacific Workshop on Systems, (Beijing, China), June 2014, pp. 9:1-9:7.
Details. Download: PDF.
A poster appeared as “User scripting on Android using BladeDroid” by Ravi Bhoraskar, Dominic Langenegger, Pingyang He, and Michael D. Ernst. In NSDI 2014: 11th USENIX Symposium on Networked Systems Design and Implementation, (Seattle, WA, USA), Apr. 2014.

“Introductory programming meets the real world: Using real problems and data in CS1”
by Ruth Anderson, Michael D. Ernst, Robert Ordóñez, Paul Pham, and Steven A. Wolfman.
In SIGCSE: Proceedings of the 45th ACM Technical Symposium on Computer Science Education, (Atlanta, GA, USA), Mar. 2014, pp. 465-466.
Details. Download: PDF, Data Programming class at UW.

“Annotations on Java types”
by JSR 308 Expert Group.
January 8, 2014. Proposed Final Draft.
Details. Download: PDF.

2013

“Interactive record/replay for web application debugging”
by Brian Burg, Richard Bailey, Andrew J. Ko, and Michael D. Ernst.
In UIST 2013: Proceedings of the 26th ACM Symposium on User Interface Software and Technology, (St. Andrews, UK), Oct. 2013, pp. 473-484.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Timelapse implementation.

“Early detection of collaboration conflicts and risks”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
IEEE Transactions on Software Engineering, vol. 39, no. 10, Oct. 2013, pp. 1358-1375.
Details. Download: PDF, ESEC/FSE 2011 slides (PDF), tool demo paper (PDF), Crystal implementation.
A previous version appeared as “Proactive detection of collaboration conflicts” by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), Sep. 2011, pp. 168-178.
A tool demonstration appeared as “Crystal: Precise and unobtrusive conflict warnings” by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), Sep. 2011, pp. 267-277.
A previous version appeared as “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.

“Automatically repairing broken workflows for evolving GUI applications”
by Sai Zhang, Hao Lü, and Michael D. Ernst.
In ISSTA 2013, Proceedings of the 2013 International Symposium on Software Testing and Analysis, (Lugano, Switzerland), July 2013, pp. 45-55.
Details. Download: PDF, slides (PDF), slides (PowerPoint), FlowFixer implementation.

“JavaUI: Effects for controlling UI object access”
by Colin S. Gordon, Werner Dietl, Michael D. Ernst, and Dan Grossman.
In ECOOP 2013 — Object-Oriented Programming, 27th European Conference, (Montpellier, France), July 2013, pp. 179-204.
Details. Download: PDF, slides (PDF), technical report (PDF), JavaUI implementation, older implementation and annotated subject programs.
A previous version appeared as “JavaUI: Effects for controlling UI object access (extended version)” by Colin S. Gordon, Werner Dietl, Michael D. Ernst, and Dan Grossman. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-04-01, (Seattle, WA, USA), Apr. 2013.

“Rely-guarantee references for refinement types over aliased mutable data”
by Colin S. Gordon, Michael D. Ernst, and Dan Grossman.
In PLDI 2013: Proceedings of the ACM SIGPLAN 2013 Conference on Programming Language Design and Implementation, (Seattle, WA, USA), June 2013, pp. 73-84.
Details. Download: PDF, slides (PDF), technical report, implementation.
A previous version appeared as “Rely-guarantee references for refinement types over aliased mutable data (extended version)” by Colin S. Gordon, Michael D. Ernst, and Dan Grossman. University of Washington Department of Computer Science and Engineering technical report UW-CSE-13-03-02, (University of Washington Department of Computer Science and Engineering), Mar. 2013.

“Automated diagnosis of software configuration errors”
by Sai Zhang and Michael D. Ernst.
In ICSE 2013, Proceedings of the 35th International Conference on Software Engineering, (San Francisco, CA, USA), May 2013, pp. 312-321.
Details. Download: PDF, slides (PDF), slides (PowerPoint), ConfDiagnoser implementation.

“Immutability”
by Alex Potanin, Johan Östlund, Yoav Zibin, and Michael D. Ernst.
In Aliasing in Object-Oriented Programming, vol. 7850 of LNCS, Apr. 2013, pp. 233-269.
Details. Download: PDF.

2012

“HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars”
by Adam Kieżun, Vijay Ganesh, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst.
ACM Transactions on Software Engineering and Methodology, vol. 21, no. 4, Nov. 2012, pp. 25:1-25:28.
Details. Download: PDF, HAMPI implementation and experiments, ISSTA 2009 slides (PDF).
A tutorial and paper appeared as “HAMPI: a string solver for testing, analysis and vulnerability detection” by Vijay Ganesh, Adam Kieżun, Shay Artzi, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. In CAV 2011: 23rd International Conference on Computer Aided Verification, (Snowbird, UT, USA), July 2011, pp. 1-19.
A previous version appeared as “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 2009, pp. 105-116.
A previous version appeared as “HAMPI: A solver for string constraints” by Adam Kieżun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2009-004, (Cambridge, MA), February 4, 2009.

“ReIm & ReImInfer: Checking and inference of reference immutability and method purity”
by Wei Huang, Ana Milanova, Werner Dietl, and Michael D. Ernst.
In OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, (Tucson, AZ, USA), Oct. 2012, pp. 879-896.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Speculative analysis of integrated development environment recommendations”
by Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
In OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, (Tucson, AZ, USA), Oct. 2012, pp. 669-682.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.
A previous version appeared as “Improving IDE recommendations by considering global implications of existing recommendations” by Kıvanç Muşlu, Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin. In ICSE NIER, Proceedings of the 34th International Conference on Software Engineering, New Ideas and Emerging Results Track, (Zürich, Switzerland), June 2012, pp. 1349-1352.

“Reducing the barriers to writing verified specifications”
by Todd W. Schiller and Michael D. Ernst.
In OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, (Tucson, AZ, USA), Oct. 2012, pp. 95-112.
Details. Download: PDF, slides (PDF), slides (PowerPoint), study materials.

“Finding errors in multithreaded GUI applications”
by Sai Zhang, Hao Lü, and Michael D. Ernst.
In ISSTA 2012, Proceedings of the 2012 International Symposium on Software Testing and Analysis, (Minneapolis, MN, USA), July 2012, pp. 243-253.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“CBCD: Cloned Buggy Code Detector”
by Jingyue Li and Michael D. Ernst.
In ICSE 2012, Proceedings of the 34th International Conference on Software Engineering, (Zürich, Switzerland), June 2012, pp. 310-320.
Details. Download: PDF, slides (PowerPoint), TR UW-CSE-11-05-02.
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-11-05-02, (Seattle, WA, USA), May 2, 2011. Revised October 2011.

“Verification games: Making verification fun”
by Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Nathaniel Mote, Brian Walker, Seth Cooper, Timothy Pavlik, and Zoran Popović.
In FTfJP: 14th Workshop on Formal Techniques for Java-like Programs, (Beijing, China), June 2012, pp. 42-49.
Details. Download: PDF, slides (PDF), slides (ODP).

“A type system for regular expressions”
by Eric Spishak, Werner Dietl, and Michael D. Ernst.
In FTfJP: 14th Workshop on Formal Techniques for Java-like Programs, (Beijing, China), June 2012, pp. 20-26.
Details. Download: PDF, slides (PDF), slides (ODP), Regex Checker implementation.

“Inference and checking of object ownership”
by Wei Huang, Werner Dietl, Ana Milanova, and Michael D. Ernst.
In ECOOP 2012 — Object-Oriented Programming, 26th European Conference, (Beijing, China), June 2012, pp. 181-206.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Reproducible tests? Non-duplicable results in testing and verification”
by Michael D. Ernst.
In ICST 2012: Fifth International Conference on Software Testing, Verification and Validation (ICST), (Montreal, Canada), Apr. 2012.
Details. Download: slides (PDF), slides (PowerPoint).

“Predicting development trajectories to prevent collaboration conflicts”
by Yuriy Brun, Kıvanç Muşlu, Reid Holmes, Michael D. Ernst, and David Notkin.
In FutureCSD 2012: The Future of Collaborative Software Development, (Bellevue, WA, USA), Feb. 2012.
Details. Download: PDF, poster (PowerPoint), poster (PowerPoint).

“Static lock capabilities for deadlock freedom”
by Colin S. Gordon, Michael D. Ernst, and Dan Grossman.
In TLDI 2012: The seventh ACM SIGPLAN Workshop on Types in Language Design and Implementation, (Philadelphia, PA, USA), Jan. 2012, pp. 67-78.
Details. Download: PDF, slides (PDF).
A previous version appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-11-10-01, (Seattle, WA, USA), Oct. 2011.

“The HaLoop approach to large-scale iterative data analysis”
by Yingyi Bu, Bill Howe, Magdalena Balazinska, and Michael D. Ernst.
The VLDB Journal, vol. 21, no. 2, 2012, pp. 169-190.
Details. Download: PDF, VLDB 2010 slides (PDF), VLDB 2010 slides (PowerPoint), HaLoop implementation.
A previous version appeared as “HaLoop: Efficient Iterative Data Processing on Large Clusters” by Yingyi Bu, Bill Howe, Magdalena Balazinska, and Michael D. Ernst. In VLDB 2010: 36th International Conference on Very Large Data Bases, (Singapore), Sep. 2010, pp. 285-296.

2011

“Mining temporal invariants from partially ordered logs”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, Arvind Krishnamurthy, and Thomas E. Anderson.
SIGOPS Operating Systems Review, vol. 45, no. 3, Dec. 2011, pp. 39-46.
Details. Download: PDF.
A previous version appeared in SLAML 2011: Workshop on Managing Large-Scale Systems via the Analysis of System Logs and the Application of Machine Learning Techniques (SLAML '11), (Cascais, Portugal), Oct. 2011. Article No. 3.

“Scaling up automated test generation: Automatically generating maintainable regression unit tests for programs”
by Brian Robinson, Michael D. Ernst, Jeff H. Perkins, Vinay Augustine, and Nuo Li.
In ASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, (Lawrence, KS, USA), Nov. 2011, pp. 23-32.
Details. Download: PDF, Randoop implementation.

“Automated documentation inference to explain failed tests”
by Sai Zhang, Cheng Zhang, and Michael D. Ernst.
In ASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, (Lawrence, KS, USA), Nov. 2011, pp. 63-72.
Details. Download: PDF, slides (PDF), slides (PowerPoint), FailureDoc implementation.

“Bandsaw: Log-powered test scenario generation for distributed systems”
by Ivan Beschastnikh, Yuriy Brun, Michael D. Ernst, Arvind Krishnamurthy, and Thomas E. Anderson.
In SOSP WIP: Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Work In Progress Track, (Cascais, Portugal), Oct. 2011.
Details. Download: PDF.

“Leveraging existing instrumentation to automatically infer invariant-constrained models”
by Ivan Beschastnikh, Yuriy Brun, Sigurd Schneider, Michael Sloan, and Michael D. Ernst.
In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), Sep. 2011, pp. 267-277.
Details. Download: PDF, slides (PDF), Synoptic implementation, tool demo paper (PDF).
A tool demonstration appeared as “Synoptic: Studying logged behavior with inferred models” by Ivan Beschastnikh, Jenny Abrahamson, Yuriy Brun, and Michael D. Ernst. In ESEC/FSE 2011: The 8th joint meeting of the European Software Engineering Conference (ESEC) and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE), (Szeged, Hungary), Sep. 2011, pp. 448-451.
A previous version appeared as “Synoptic: Summarizing system logs with refinement” by Sigurd Schneider, Ivan Beschastnikh, Slava Chernyak, Michael D. Ernst, and Yuriy Brun. In SLAML 2010: Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML '10), (Vancouver, BC, Canada), Oct. 2010.

“Combined static and dynamic automated test generation”
by Sai Zhang, David Saff, Yingyi Bu, and Michael D. Ernst.
In ISSTA 2011, Proceedings of the 2011 International Symposium on Software Testing and Analysis, (Toronto, Canada), July 2011, pp. 353-363.
Details. Download: PDF, slides (PDF), slides (PowerPoint), implementation.

“Tunable static inference for Generic Universe Types”
by Werner Dietl, Michael D. Ernst, and Peter Müller.
In ECOOP 2011 — Object-Oriented Programming, 25th European Conference, (Lancaster, UK), July 2011, pp. 333-357.
Details. Download: PDF, slides (PDF), slides (ODP), Implementation and experiments.

“How do programs become more concurrent? A story of program transformations”
by Danny Dig, John Marrero, and Michael D. Ernst.
In Proceedings of the 4th International Workshop on Multicore Software Engineering, (Waikiki, Hawaii, USA), May 2011, pp. 43-50.
Details. Download: PDF.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-053, (Cambridge, MA), September 5, 2008.

“Inference of field initialization”
by Fausto Spoto and Michael D. Ernst.
In ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 2011, pp. 231-240.
Details. Download: PDF, slides (PDF), earlier TR with additional details.
a previous version with some additional details appeared as University of Washington Department of Computer Science and Engineering technical report UW-CSE-10-02-01, (Seattle, WA, USA), February 6, 2010.

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

“Always-available static and dynamic feedback”
by Michael Bayne, Richard Cook, and Michael D. Ernst.
In ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, (Waikiki, Hawaii, USA), May 2011, pp. 521-530.
Details. Download: PDF, slides (PDF), slides (PowerPoint), DuctileJ implementation.
A previous version appeared as “How tests and proofs impede one another: The need for always-on static and dynamic feedback” by Michael D. Ernst. In TAP 2010: 4th International Conference on Tests And Proofs (TAP), (Málaga, Spain), July 2010, pp. 1-2.
A previous version appeared as “How analysis can hinder source code manipulation — and what to do about it” by Michael D. Ernst. In SCAM 2009: Ninth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'09), (Edmonton, Canada), Sep. 2009.

“Refactoring using type constraints”
by Frank Tip, Robert M. Fuhrer, Adam Kieżun, Michael D. Ernst, Ittai Balaban, and Bjorn De Sutter.
ACM Transactions on Programming Languages and Systems, vol. 33, no. 3, May 2011, pp. 9:1-9:47.
Details. Download: PDF.
A previous version appeared as “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.

2010

“Speculative analysis: Exploring future development states of software”
by Yuriy Brun, Reid Holmes, Michael D. Ernst, and David Notkin.
In FoSER: Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), Nov. 2010, pp. 59-64.
Details. Download: PDF, slides (PDF), Quick Fix Scout implementation.

“Rethinking the economics of software engineering”
by Todd W. Schiller and Michael D. Ernst.
In FoSER: Workshop on the Future of Software Engineering Research, (Santa Fe, NM, USA), Nov. 2010, pp. 325-330.
Details. Download: PDF.

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

“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 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 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.

2009

“Featherweight Ownership and Immutability Generic Java (FOIGJ)”
by Alex Potanin, Paley Li, Yoav Zibin, and Michael D. Ernst.
VUW School of Engineering and Computer Science 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 SOSP 2009, Proceedings of the 22nd ACM Symposium on Operating Systems Principles, (Big Sky, MT, USA), Oct. 2009, pp. 87-102.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“Refactoring sequential Java code for concurrency via concurrent libraries”
by Danny Dig, John Marrero, and Michael D. Ernst.
In ICSE 2009, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 2009, pp. 397-407.
Details. Download: PDF, slides (PDF), slides (ODP), 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 2009, Proceedings of the 31st International Conference on Software Engineering, (Vancouver, BC, Canada), May 2009, pp. 199-209.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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.

“Parameter reference immutability: Formal definition, inference tool, and comparison”
by Shay Artzi, Jaime Quinonez, Adam Kieżun, and Michael D. Ernst.
Automated Software Engineering, vol. 16, no. 1, Mar. 2009, pp. 145-192.
Details. Download: PDF, slides (PDF), slides (PowerPoint).
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), Nov. 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.

2008

“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 2008, pp. 201-212.
Details. Download: PDF, talk slides (PDF), demo slides (PDF), ISSTA 2018 retrospective slides (PDF), ISSTA 2018 retrospective slides (Google Slides), 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 OOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, (Nashville, TN, USA), Oct. 2008, pp. 723-724.
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 2008. Tool demo.
A tool description appeared as “Compile-time type-checking for custom type qualifiers in Java” by Matthew M. Papi and Michael D. Ernst. In OOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, (Montreal, Canada), Oct. 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.

“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 2008, pp. 542-565.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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 2008, pp. 616-641.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Quinonez thesis, Javarifier implementation.
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 OOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, (Montreal, Canada), Oct. 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 2008, pp. 193-205.
Details. Download: PDF, 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.

“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.

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.

“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), Sep. 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), Sep. 2007, pp. 75-84.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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 OOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, (Nashville, TN, USA), Oct. 2008, pp. 725-726.
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.

“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 2007, pp. 41-46.
Details. Download: PDF.

“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 2007, pp. 27-30.
Details. Download: PDF.

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

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

2006

“The Groupthink specification exercise”
by Michael D. Ernst.
In ICSE Education and Training Track: Software Engineering Education in the Modern Age: Challenges and Possibilities, PostProceedings of ICSE '05 Education and Training Track, vol. 4309 of Lecture Notes in Computer Science, (St. Louis, MO, USA), Dec. 2006, pp. 89-107.
Details. Download: PDF, activity materials, optional voting software, ICSE 2005 slides (PDF), ICSE 2005 slides (PowerPoint).
A previous version appeared as “The Groupthink specification exercise” by Michael D. Ernst and John Chapin. In ICSE 2005, Proceedings of the 27th International Conference on Software Engineering, (St. Louis, MO, USA), May 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: 1st Workshop on Model-Based Testing and Object-Oriented Systems, (Portland, OR, USA), Oct. 2006, pp. 27-34.
Details. Download: PDF, slides (PDF), slides (PowerPoint).
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), Sep. 2006, pp. 59-68.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“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 2006, pp. 233-243.
Details. Download: PDF.
A previous version appeared as “Learning and repair techniques for self-healing systems” by Martin Rinard and Michael D. 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 2006, pp. 255-265.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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: International Workshop on Web Services — Modeling and Testing, (Palermo, Italy), June 2006, pp. 123-135.
Details. Download: PDF.

2005

“Learning from executions: Dynamic analysis for software engineering and program understanding”
by Michael D. Ernst and Jeff H. Perkins.
Nov. 2005. Tutorial at ASE 2005.
Details. Download: slides 1 (PDF), slides 2 (PDF), slides 3 (PDF), slides 4 (PDF).

“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), Nov. 2005, pp. 114-123.
Details. Download: PDF, slides (PDF), slides (PowerPoint), slides (PowerPoint).
A previous version appeared as MIT Laboratory for Computer Science technical report MIT-LCS-TR-991, (Cambridge, MA), June 7, 2005.

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

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

“Javari: Adding reference immutability to Java”
by Matthew S. Tschantz and Michael D. Ernst.
In OOPSLA 2005, Object-Oriented Programming Systems, Languages, and Applications, (San Diego, CA, USA), Oct. 2005, pp. 211-230.
Details. Download: PDF, slides (PowerPoint), extended version (PDF), Javari implementation.

“PASTE: ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering”
edited by Michael D. Ernst and Thomas Jensen.
Sep. 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 2005, pp. 602-629.
Details. Download: PDF.

“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 2005, pp. 504-527.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Eclat implementation, Randoop implementation.
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.
A previous version appeared in FMICS '03: Eighth International Workshop on Formal Methods for Industrial Critical Systems (FMICS 03), (Trondheim, Norway), June 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 FSE 2004: Proceedings of the ACM SIGSOFT 12th Symposium on the Foundations of Software Engineering, (Newport Beach, CA, USA), Nov. 2004, pp. 23-32.
Details. Download: PDF, 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), Oct. 2004, pp. 47-54.
Details. Download: PDF.

“Converting Java programs to use generic libraries”
by Alan Donovan, Adam Kieżun, Matthew S. Tschantz, and Michael D. Ernst.
In OOPSLA 2004, Object-Oriented Programming Systems, Languages, and Applications, (Vancouver, BC, Canada), Oct. 2004, pp. 15-34.
Details. Download: PDF, slides (PDF).
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 OOPSLA 2004, Object-Oriented Programming Systems, Languages, and Applications, (Vancouver, BC, Canada), Oct. 2004, pp. 35-49.
Details. Download: PDF, slides (PDF), Javari implementation.

“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, slides (PDF), slides (PowerPoint).
A previous version appeared in VMCAI 2003: Fourth International Conference on Verification, Model Checking and Abstract Interpretation, (New York, New York), Jan. 2003, pp. 283-297.
Additional details and case studies appeared as “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.

“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 2004, pp. 206-216.
Details. Download: PDF, PowerPoint, slides (PDF), slides (PowerPoint).
A previous version appeared as “Improving reliability and adaptability via program steering” by Lee Lin and Michael D. Ernst. In ISSRE Supplementary: Fourteenth International Symposium on Software Reliability Engineering, Supplementary Proceeding, (Denver, CO), Nov. 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 2004, pp. 76-85.
Details. Download: PDF, slides (PDF), slides (PowerPoint), Eclipse plug-in.

“Automatic mock object creation for test factoring”
by David Saff and Michael D. Ernst.
In PASTE 2004: ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'04), (Washington, DC, USA), June 2004, pp. 49-51.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“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 2004, pp. 440-464.
Details. Download: PDF.
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.

“Finding latent code errors via machine learning over program executions”
by Yuriy Brun and Michael D. Ernst.
In ICSE 2004, Proceedings of the 26th International Conference on Software Engineering, (Edinburgh, Scotland), May 2004, pp. 480-490.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

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

2003

“Reducing wasted development time via continuous testing”
by David Saff and Michael D. Ernst.
In ISSRE 2003: Fourteenth International Symposium on Software Reliability Engineering, (Denver, CO), Nov. 2003, pp. 281-292.
Details. Download: 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), Sep. 2003, pp. 287-296.
Details. Download: PDF, slides (PDF), slides (PowerPoint).
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.

“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.
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.

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

“WODA 2003: ICSE Workshop on Dynamic Analysis”
edited by Jonathan E. Cook and Michael D. Ernst.
May 2003.
Details. Download: PDF, 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.

“Improving test suites via operational abstraction”
by Michael Harder, Jeff Mellen, and Michael D. Ernst.
In ICSE 2003, Proceedings of the 25th International Conference on Software Engineering, (Portland, Oregon), May 2003, pp. 60-71.
Details. Download: PDF, talk slides (PDF), talk slides (PowerPoint).

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

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, implementation.
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.

“Graphs induced by Gray codes”
by Elizabeth L. Wilmer and Michael D. Ernst.
Discrete Mathematics, vol. 257, November 28, 2002, pp. 585-598.
Details. Download: PDF.
A previous version appeared in ALICE03, 1st Workshop on Algorithms for Listing, Counting, and Enumeration, (Baltimore, Maryland), January 11, 2003.

“Invariant inference for static checking: An empirical evaluation”
by Jeremy W. Nimmer and Michael D. Ernst.
In FSE 2002, Proceedings of the ACM SIGSOFT 10th International Symposium on the Foundations of Software Engineering, (Charleston, SC), Nov. 2002, pp. 11-20.
Details. Download: PDF.

“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 2002, pp. 232-242.
Details. Download: PDF, slides (PDF), slides (PowerPoint).
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.

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), Nov. 2001, pp. 736-743.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

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

“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 2001, pp. 699-702.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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 paper (PDF), ICSE 1999 talk slides (PowerPoint), ICSE 1999 talk slides (PDF), Daikon implementation.
A previous version appeared in ICSE '99: Proceedings of the 21st International Conference on Software Engineering, (Los Angeles, CA, USA), May 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, 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), Nov. 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 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 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 2000, pp. 449-458.
Details. Download: PDF, slides (PDF), slides (PowerPoint), 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, Daikon implementation.

1998

“Predicate dispatching: A unified theory of dispatch”
by Michael D. Ernst, Craig S. Kaplan, and Craig Chambers.
In ECOOP '98: the 12th European Conference on Object-Oriented Programming, (Brussels, Belgium), July 1998, pp. 186-211.
Details. Download: PDF, slides (PDF), implementation, manual.

1997

“Automatic SAT-compilation of planning problems”
by Michael D. Ernst, Todd D. Millstein, and Daniel S. Weld.
In IJCAI '97: IJCAI-97, Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, (Nagoya, Aichi, Japan), Aug. 1997, pp. 1169-1176.
Details. Download: PDF, Medic implementation.

1996

“Method and system for controlling unauthorized access to information distributed to users”
by Gideon A. Yuval and Michael D. Ernst.
December 17, 1996. Assigned to Microsoft Corporation.
Details. Download: Google Patents, PDF.

1995

“Playing Konane mathematically: A combinatorial game-theoretic analysis”
by Michael D. Ernst.
UMAP Journal, vol. 16, no. 2, Spring 1995, pp. 95-121.
Details. Download: PDF, talk slides (PowerPoint, 1/17/2001), implementation.
A previous version appeared as Microsoft Research technical report MSR-TR-95-24, (Redmond, WA), August 7, 1995.
A previous version appeared as “Playing Konane mathematically” by Michael D. Ernst and Elwyn Berlekamp. In Articles in Tribute to Martin Gardner, (Scott Kim, ed.), January 16, 1993, pp. 6-15, Atlanta International Museum of Art and Design.

“IR '95: Intermediate Representations Workshop Proceedings”
edited by Michael D. Ernst.
January 22, 1995. ACM SIGPLAN Notices 30(3), March 1995.
Details. Download: workshop website, ACM proceedings.
A previous version appeared as Microsoft Research technical report MSR-TR-95-01, (Redmond, WA), January 22, 1995.

“Slicing pointers and procedures (abstract)”
by Michael D. Ernst.
Microsoft Research technical report MSR-TR-95-23, (Redmond, WA), January 13, 1995.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

1994

“Serializing parallel programs by removing redundant computation”
by Michael D. Ernst.
MIT Laboratory for Computer Science technical report MIT/LCS/TR-638, (Cambridge, MA), August 21, 1994.
Details. Download: PDF.
A concurrently published technical report appeared as Microsoft Research technical report MSR-TR-94-15, (Redmond, WA), August 21, 1994.
A previous version appeared as a Masters thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), Sep. 1992.
A previous version appeared as “Serializing parallel programs (abstract)” by Michael D. Ernst. In Proceedings of the 1992 MIT Student Workshop on VLSI and Parallel Systems, July 21, 1992, pp. 13-1 to 13-2.

“Practical fine-grained static slicing of optimized code”
by Michael D. Ernst.
Microsoft Research technical report MSR-TR-94-14, (Redmond, WA), July 26, 1994.
Details. Download: PDF, slides (PDF), slides (PowerPoint).

“Heraclitean encryption”
by Michael D. Ernst and Gideon Yuval.
Microsoft Research technical report MSR-TR-94-13, (Redmond, WA), March 3, 1994.
Details. Download: PDF.

“Value dependence graphs: Representation without taxation”
by Daniel Weise, Roger F. Crew, Michael D. Ernst, and Bjarne Steensgaard.
In POPL '94: Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, (Portland, OR), Jan. 1994, pp. 297-310.
Details. Download: PDF.
A previous version appeared as Microsoft Research technical report MSR-TR-94-03, (Redmond, WA), April 13, 1994.

1992

“Intellectual property in computing: (How) should software be protected? An industry perspective”
by Michael D. Ernst.
MIT Artificial Intelligence Laboratory Memo AIM-1369, (Cambridge, Massachusetts), May 1992.
Details. Download: PDF.
A videotape appeared as “Intellectual property in computing: (How) should software be protected? An industry perspective” by Randall Davis and Michael D. Ernst. MIT Artificial Intelligence Laboratory Video AIV-7, (Cambridge, Massachusetts), Oct. 1990.

1989

“Adequate Models for Recursive Program Schemes”
by Michael D. Ernst.
Bachelors thesis, MIT Department of Electrical Engineering and Computer Science, (Cambridge, MA), June 1989.
Details. Download: PDF.

“Self-reference in English”
by Michael D. Ernst.
May 1989. The idea from this unpublished term paper was written up by Boolos without Ernst's knowledge, to appear as “Quotational Ambiguity,” by George Boolos, in On Quine, (Paulo Leonardi, ed.), pp. 283-296, Cambridge University Press, 1995. Boolos called the idea “Ernst's Paradox” but refused Ernst's request for coauthorship.
Details.

“ML typechecking is not efficient”
by Michael D. Ernst.
In Papers of the MIT ACM Undergraduate Conference, Apr. 1989.
Details.

“Image/map correspondence using curve matching”
by Michael D. Ernst and Bruce E. Flinchbaugh.
In AAAI Spring Symposium on Robot Navigation, (Stanford, CA), March 28-30, 1989. Also published as Texas Instruments Technical Report CSC-SIUL-89-12.
Details. Download: PDF.


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.)

Michael Ernst