Contact

CSE 538
206-221-0965
mernstcs.washington.edu
Areas of interest: 

Software engineering, programming languages

2023

Inference of resource management specifications

N. Shadab, P. Gharat, S. Tiwari, M.D. Ernst, M. Kellogg, S. Lahiri, A. Lal, M. SridharanOOPSLA 2023, Object-Oriented Programming Systems, Languages, and Applications, 2023.

Pluggable type inference for free

M. Kellogg, D. Daskiewicz, L.Ngo Duc Nguyen, M. Ahmed, M.D. ErnstASE 2023: Proceedings of the 38th Annual International Conference on Automated Software Engineering, 2023.

2022

Call Me Maybe: Using NLP to automatically generate unit test cases respecting temporal constraints

A. Blasi, A. Gorla, M.D. Ernst, M. PezzèASE 2022: Proceedings of the 37th Annual International Conference on Automated Software Engineering, 2022: 1-11.
https://github.com/ariannab/callmemaybe implementation & replication package

Notes on Program Analysis

M.D. Ernst\urlhttps://homes.cs.washington.edu/ mernst/pubs/program-analysis-book.pdf, 2022.
 

Accumulation analysis (artifact)

M. Kellogg, N. Shadab, M. Sridharan, M.D. ErnstDARTS, Dagstuhl Artifacts Series 8:2, 2022: 22:1-22:3.

Accumulation analysis

M. Kellogg, N. Shadab, M. Sridharan, M.D. ErnstECOOP 2022 –- Object-Oriented Programming, 33rd European Conference, 2022: 10:1-10:31.

2021

MeMo: Automatically identifying metamorphic relations in Javadoc comments for test automation

A. Blasi, A. Gorla, M.D. Ernst, M. Pezzè, A. CarzanigaJournal of Systems and Software 181, 2021: 111041:1–13.

Checking conformance of applications against GUI policies

Z. Zhang, Y. Feng, M.D. Ernst, S. Porst, I. DilligESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2021: 95-106.

Lightweight and modular resource leak verification

M. Kellogg, N. Shadab, M. Sridharan, M.D. ErnstESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2021: 181–192.

Verifying determinism in sequential programs

R. Mudduluru, J. Waataja, S. Millstein, M.D. ErnstICSE 2021, Proceedings of the 43rd International Conference on Software Engineering, 2021: 37-49.

Verifying determinism in sequential programs (extended version)

R. Mudduluru, J. Waataja, S. Millstein, M.D. ErnstUniversity of Washington Paul G. Allen School of Computer Science and Engineering:UW-CSE-2021-02-01, 2021.
 

2020

Revisiting the relationship between fault detection, test adequacy criteria, and test set size

Y.T. Chen, R. Gopinath, A. Tadakamalla, M.D. Ernst, R. Holmes, G. Fraser, P. Ammann, R. JustASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, 2020: 237-249.

Continuous compliance

M. Kellogg, M. Schäf, S. Tasiran, M.D. ErnstASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, 2020: 511-523.

Dependent-test-aware regression testing techniques

W. Lam, A. Shi, R. Oei, S. Zhang, M.D. Ernst, T. XieISSTA 2020, Proceedings of the 2020 International Symposium on Software Testing and Analysis, 2020: 298-311.

Verifying Object Construction

M. Kellogg, M. Ran, M. Sridharan, M. Schäf, M.D. ErnstICSE 2020, Proceedings of the 42nd International Conference on Software Engineering, 2020: 1447-1458.

Where should I comment my code? A dataset and model for predicting locations that need comments

A. Louis, S.Kumar Dash, E.T. Barr, M.D. Ernst, C. SuttonICSE NIER, Proceedings of the 42nd International Conference on Software Engineering, New Ideas and Emerging Results Track, 2020: 21-24.

Visualizing Distributed System Executions

I. Beschastnikh, P. Liu, A. Xing, P. Wang, Y. Brun, M.D. ErnstACM Transactions on Software Engineering and Methodology 29:2, 2020: 9:1–9:38.

2019

Teaching rigorous distributed systems with efficient model checking

E. Michael, D. Woos, T. Anderson, M.D. Ernst, Z. TatlockEuroSys, 2019: 1-15.
 

An empirical study of fault localization families and their combinations

D. Zou, J. Liang, Y. Xiong, M.D. Ernst, L. ZhangIEEE Transactions on Software Engineering 47, 2019: 332-347.

Modular verification of web page layout

P. Panchekha, M.D. Ernst, Z. Tatlock, S. KamilProceedings of the ACM on Programming Languages 3:151, 2019: 26. OOPSLA
https://cassius.uwplse.org/ Troika, VizAssert, and Cassius tools

2018

Comparing developer-provided to user-provided tests for fault localization and automated program repair

R. Just, C. Parnin, I. Drosos, M.D. ErnstISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, 2018: 287-297.

Lightweight verification of array indexing

M. Kellogg, V. Dort, S. Millstein, M.D. ErnstISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, 2018: 3-14.

Translating code comments to procedure specifications

A. Blasi, A. Goffi, K. Kuznetsov, A. Gorla, M.D. Ernst, M. Pezzè, S.Delgado CastellanosISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, 2018: 242-253.

Verifying that web pages have accessible layout

P. Panchekha, A. Geller, M.D. Ernst, Z. Tatlock, S. KamilPLDI 2018: Proceedings of the ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation, 2018: 1-14.
https://cassius.uwplse.org/ VizAssert and Cassius tools

NL2Bash: A corpus and semantic parser for natural language interface to the Linux operating system

X.Victoria Lin, C. Wang, L. Zettlemoyer, M.D. ErnstLREC: Language Resources and Evaluation Conference, 2018.

Generalized data structure synthesis

C. Loncaric, M.D. Ernst, E. TorlakICSE 2018, Proceedings of the 40th International Conference on Software Engineering, 2018: 958-968.

2017

Automatic formal verification for EPICS

J. Jacky, S. Banerian, M.D. Ernst, C. Loncaric, S. Pernsteiner, Z. Tatlock, E. TorlakICALEPCS 2017: 16th International Conference on Accelerator and Large Experimental Physics Control Systems, 2017.

SpaceSearch: A library for building and verifying solver-aided tools

K. Weitz, S. Lyubomirsky, S. Heule, E. Torlak, M.D. Ernst, Z. TatlockICFP 2017: Proceedings of the 22nd ACM SIGPLAN International Conference on Functional Programming, 2017: 25:1–25:28.
 

Verifying Invariants of Lock-free Data Structures with Rely-Guarantee and Refinement Types

C.S. Gordon, M.D. Ernst, D. Grossman, M. ParkinsonACM Transactions on Pro\-gramming Languages and Systems 39:3, 2017: 11:1–11:54.
 

Evaluating and improving fault localization

S. Pearson, J. Campos, R. Just, G. Fraser, R. Abreu, M.D. Ernst, D. Pang, B. KellerICSE 2017, Proceedings of the 39th International Conference on Software Engineering, 2017: 609-620.

Natural language is a programming language: Applying natural language processing to software development

M.D. ErnstSNAPL 2017: the 2nd Summit oN Advances in Programming Languages, 2017: 4:1–4:14.
 

Translating Code Comments to Procedure Specifications

A. Goffi, A. Gorla, M.D. Ernst, M. Pezzè, S.Delgado Castellanos, A. Blasi, B. Keller, 2017.
 

Program synthesis from natural language using recurrent neural networks

X.Victoria Lin, C. Wang, D. Pang, K. Vu, L. Zettlemoyer, M.D. ErnstUniversity of Washington Department of Computer Science and Engineering:UW-CSE-17-03-01, 2017.

2016

Scalable verification of Border Gateway Protocol configurations with an SMT solver

K. Weitz, D. Woos, E. Torlak, M.D. Ernst, A. Krishnamurthy, Z. TatlockOOPSLA 2016, Object-Oriented Programming Systems, Languages, and Applications, 2016: 765-780.

Evaluating & improving fault localization techniques

S. Pearson, J. Campos, R. Just, G. Fraser, R. Abreu, M.D. Ernst, D. Pang, B. KellerUniversity of Washington Department of Computer Science and Engineering:UW-CSE-16-08-03, 2016. Revised February 2017

Debugging distributed systems: Challenges and options for validation and debugging

I. Beschastnikh, P. Wang, Y. Brun, M.D. ErnstCommunications of the ACM 59:8, 2016: 32–37.
https://bestchai.bitbucket.io/shiviz/ online deployment (try it!) https://github.com/DistributedClocks/shiviz ShiVector and ShiViz source code https://bestchai.bitbucket.io/shiviz-demo/ video demo (YouTube)

Formal Semantics and Automated Verification for the Border Gateway Protocol

K. Weitz, D. Woos, E. Torlak, M.D. Ernst, A. Krishnamurthy, Z. TatlockNetPL 2016: ACM SIGCOMM Workshop on Networking and Programming Languages (NetPL 2016), 2016.

Investigating safety of a radiotherapy machine using system models with pluggable checkers

S. Pernsteiner, C. Loncaric, E. Torlak, Z. Tatlock, X. Wang, M.D. Ernst, J. JackyCAV 2016: 28th International Conference on Computer Aided Verification, 2016: 23-41.
 

Automatic generation of oracles for exceptional behaviors

A. Goffi, A. Gorla, M.D. Ernst, M. PezzèISSTA 2016, Proceedings of the 2016 International Symposium on Software Testing and Analysis, 2016: 213–224.

Fast synthesis of fast collections

C. Loncaric, E. Torlak, M.D. ErnstPLDI 2016: Proceedings of the ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation, 2016: 355-368.

Semantics for locking specifications

M.D. Ernst, D. Macedonio, M. Merro, F. SpotoNFM 2016: 8th NASA Formal Methods Symposium, 2016: 355-372.

Locking discipline inference and checking

M.D. Ernst, A. Lovato, D. Macedonio, F. Spoto, J. ThaineICSE 2016, Proceedings of the 38th International Conference on Software Engineering, 2016: 1133-1144.

Debugging distributed systems: Challenges and options for validation and debugging

I. Beschastnikh, P. Wang, Y. Brun, M.D. ErnstACM Queue 14:2, 2016: 91-110.
https://bestchai.bitbucket.io/shiviz/ online deployment (try it!) https://github.com/DistributedClocks/shiviz ShiVector and ShiViz source code https://bestchai.bitbucket.io/shiviz-demo/ video demo (YouTube)

Planning for change in a formal verification of the Raft consensus protocol

D. Woos, J.R. Wilcox, S. Anton, Z. Tatlock, M.D. Ernst, T. AndersonCPP 2016: 5th ACM SIGPLAN Conference on Certified Programs and Proofs, 2016: 154-165.

Bagpipe: Verified BGP configuration checking

K. Weitz, D. Woos, E. Torlak, M.D. Ernst, A. Krishnamurthy, Z. TatlockUniversity of Washington Department of Computer Science and Engineering:UW-CSE-16-01-01, 2016.

2015

Explaining visual changes in web interfaces

B. Burg, A.J. Ko, M.D. ErnstUIST 2015: Proceedings of the 28th ACM Symposium on User Interface Software and Technology, 2015: 259–268.

Static analysis of implicit control flow: Resolving Java reflection and Android intents

P. Barros, R. Just, S. Millstein, P. Vines, W. Dietl, M. d'Amorim, M.D. ErnstASE 2015: Proceedings of the 30th Annual International Conference on Automated Software Engineering, 2015: 669-679.

Boolean formulas for the static identification of injection attacks in Java

M.D. Ernst, A. Lovato, D. Macedonio, C. Spiridon, F. SpotoLPAR 2015: Proceedings of the 20th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, 2015: 130–145.

Development history granularity transformations

K. Muşlu, L. Swart, Y. Brun, M.D. ErnstASE 2015: Proceedings of the 30th Annual International Conference on Automated Software Engineering, 2015: 697-702.

Locking discipline inference and checking

M.D. Ernst, A. Lovato, D. Macedonio, F. Spoto, J. ThaineUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-09-02, 2015.

Boolean formulas for the static identification of injection attacks in Java

M.D. Ernst, A. Lovato, D. Macedonio, C. Spiridon, F. SpotoUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-09-03, 2015.
 

Semantics for locking specifications

M.D. Ernst, D. Macedonio, M. Merro, F. SpotoUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-09-01, 2015.

Lessons learned in game development for crowdsourced software formal verification

D. Dean, S. Guarino, L. Eusebi, A. Keplinger, T. Pavlik, R. Watro, A. Cammarata, J. Murray, K. McLaughlin, J. Cheng, T. Maddern3GSE: USENIX Summit on Gaming, Games, and Gamification in Security Education, 2015.

Static analysis of implicit control flow: Resolving Java reflection and Android intents (extended version)

P. Barros, R. Just, S. Millstein, P. Vines, W. Dietl, M. d'Amorim, M.D. ErnstUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-08-01, 2015.

Proactive detection of inadequate diagnostic messages for software configuration errors

S. Zhang, M.D. ErnstISSTA 2015, Proceedings of the 2015 International Symposium on Software Testing and Analysis, 2015: 12–23.

Verdi: A framework for implementing and formally verifying distributed systems

J.R. Wilcox, D. Woos, P. Panchekha, Z. Tatlock, X. Wang, M.D. Ernst, T. AndersonPLDI 2015: Proceedings of the ACM SIGPLAN 2015 Conference on Programming Language Design and Implementation, 2015: 357–368.

Static analysis of implicit control flow: Resolving Java reflection and Android intents

P. Barros, R. Just, S. Millstein, P. Vines, W. Dietl, M. d'Amorim, M.D. ErnstUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-05-01, 2015.

Toward a dependability case language and workflow for a radiation therapy system

M.D. Ernst, D. Grossman, J. Jacky, C. Loncaric, S. Pernsteiner, Z. Tatlock, E. Torlak, X. WangSNAPL 2015: the Inaugural Summit oN Advances in Programming Languages, 2015: 103–112.

When tests collide: Evaluating and coping with the impact of test dependence

W. Lam, S. Zhang, M.D. ErnstUniversity of Washington Department of Computer Science and Engineering:UW-CSE-15-03-01, 2015.

A data programming CS1 course

R. Anderson, M.D. Ernst, R. Ordóñez, P. Pham, B. TribelhornSIGCSE: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 2015: 150–155.

2014

Are mutants a valid substitute for real faults in software testing?

R. Just, D. Jalali, L. Inozemtseva, M.D. Ernst, R. Holmes, G. FraserFSE 2014: Proceedings of the ACM SIGSOFT 22nd Symposium on the Foundations of Software Engineering, 2014: 654–665.

Collaborative verification of information flow for a high-assurance app store

M.D. Ernst, R. Just, S. Millstein, W. Dietl, S. Pernsteiner, F. Roesner, K. Koscher, P. Barros, R. Bhoraskar, S. Han, P. Vines, E.X. WuCCS 2014: Proceedings of the 21st ACM Conference on Computer and Communications Security, 2014: 1092–1104.

Cascade: A universal type qualifier inference tool

M. Vakilian, A. Phaosawasdi, M.D. Ernst, R.E. JohnsonUniversity of Illinois at Urbana-Champaign, 2014.

Defects4J: A Database of existing faults to enable controlled testing studies for Java programs

R. Just, D. Jalali, M.D. ErnstISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014: 437–440. Tool demo

Efficient mutation analysis by propagating and partitioning infected execution states

R. Just, M.D. Ernst, G. FraserISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014: 315–326.

Empirically revisiting the test independence assumption

S. Zhang, D. Jalali, J. Wuttke, K. Muşlu, W. Lam, M.D. Ernst, D. NotkinISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014: 385–396.

A type system for format strings

K. Weitz, G. Kim, S. Srisakaokul, M.D. ErnstISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014: 127–137.

A format string checker for Java

K. Weitz, G. Kim, S. Srisakaokul, M.D. ErnstISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014: 441–444.
 

Inferring models of concurrent systems from logs of their behavior with CSight

I. Beschastnikh, Y. Brun, M.D. Ernst, A. KrishnamurthyICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014: 468–479.

Case studies and tools for contract specifications

T.W. Schiller, K. Donohue, F. Coward, M.D. ErnstICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014: 596–607.

User scripting on Android using BladeDroid

R. Bhoraskar, D. Langenegger, P. He, R. Cheng, W. Scott, M.D. ErnstAPSys 2014: 5th Asia-Pacific Workshop on Systems, 2014: 9:1–9:7.

Shedding light on distributed system executions

J. Abrahamson, I. Beschastnikh, Y. Brun, M.D. ErnstICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014: 598–599.

Which configuration option should I change?

S. Zhang, M.D. ErnstICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014: 152–163.

User scripting on Android using BladeDroid

R. Bhoraskar, D. Langenegger, P. He, M.D. ErnstNSDI 2014: 11th USENIX Symposium on Networked Systems Design and Implementation, 2014.
 

Introductory programming meets the real world: Using real problems and data in CS1

R. Anderson, M.D. Ernst, R. Ordóñez, P. Pham, S.A. WolfmanSIGCSE: Proceedings of the 45th ACM Technical Symposium on Computer Science Education, 2014: 465–466.

Are mutants a valid substitute for real faults in software testing?

R. Just, D. Jalali, L. Inozemtseva, M.D. Ernst, R. Holmes, G. FraserUniversity of Washington Department of Computer Science and Engineering:UW-CSE-14-02-02, 2014.
 

Inferring models of concurrent systems from logs of their behavior with CSight

I. Beschastnikh, Y. Brun, M.D. Ernst, A. KrishnamurthyUniversity of British Columbia, 2014. \urlhttps://hdl.handle.net/2429/46122

Empirically revisiting the test independence assumption

S. Zhang, D. Jalali, J. Wuttke, K. Muşlu, W. Lam, M.D. Ernst, D. NotkinUniversity of Washington Department of Computer Science and Engineering:UW-CSE-14-01-01, 2014.

2013

Type Annotations specification (JSR 308)

M.D. Ernst, 2013.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Type Annotations specification (JSR 308)

M.D. Ernst, 2013.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Interactive record/replay for web application debugging

B. Burg, R. Bailey, A.J. Ko, M.D. ErnstUIST 2013: Proceedings of the 26th ACM Symposium on User Interface Software and Technology, 2013: 473–484.

Making offline analyses continuous

K. Muşlu, Y. Brun, M.D. Ernst, D. NotkinESEC/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), 2013: 323–333.

Making Offline Analyses Continuous

K. Muşlu, Y. Brun, M.D. Ernst, D. Notkinthe 9th joint meeting of the European Software Engineering Conference and the Symposium on the Foundations of Software Engineering (FSE), 2013.

JavaUI: Effects for controlling UI object access

C.S. Gordon, W. Dietl, M.D. Ernst, D. GrossmanECOOP 2013 –- Object-Oriented Programming, 27th European Conference, 2013: 179–204.

Automatically repairing broken workflows for evolving GUI applications

S. Zhang, H. Lü, M.D. ErnstISSTA 2013, Proceedings of the 2013 International Symposium on Software Testing and Analysis, 2013: 45–55.

Rely-guarantee references for refinement types over aliased mutable data

C.S. Gordon, M.D. Ernst, D. GrossmanPLDI 2013: Proceedings of the ACM SIGPLAN 2013 Conference on Programming Language Design and Implementation, 2013: 73–84.

Unifying FSM-inference algorithms through declarative specification

I. Beschastnikh, Y. Brun, J. Abrahamson, M.D. Ernst, A. KrishnamurthyICSE 2013, Proceedings of the 35th International Conference on Software Engineering, 2013: 252–261.

Automated diagnosis of software configuration errors

S. Zhang, M.D. ErnstICSE 2013, Proceedings of the 35th International Conference on Software Engineering, 2013: 312–321.

Immutability

A. Potanin, J. Östlund, Y. Zibin, M.D. ErnstAliasing in Object-Oriented ProgrammingSpringer-Verlag 7850, 2013: 233–269.

Unifying FSM-inference algorithms through declarative specification

I. Beschastnikh, Y. Brun, J. Abrahamson, M.D. Ernst, A. KrishnamurthyUniversity of Washington Department of Computer Science and Engineering:UW-CSE-13-03-01, 2013.
 

2012

HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars

A. Kieżun, V. Ganesh, S. Artzi, P.J. Guo, P. Hooimeijer, M.D. ErnstACM Transactions on Software Engineering and Methodology 21:4, 2012: 25:1–25:28.

Speculative analysis of integrated development environment recommendations

K. Muşlu, Y. Brun, R. Holmes, M.D. Ernst, D. NotkinOOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, 2012: 669–682.

Reducing the barriers to writing verified specifications

T.W. Schiller, M.D. ErnstOOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, 2012: 95–112.

Unifying FSM-inference algorithms through declarative specification

I. Beschastnikh, Y. Brun, J. Abrahamson, M.D. Ernst, A. KrishnamurthyUniversity of Washington Department of Computer Science and Engineering:UW-CSE-12-08-02, 2012.
 

Finding errors in multithreaded GUI applications

S. Zhang, H. Lü, M.D. ErnstISSTA 2012, Proceedings of the 2012 International Symposium on Software Testing and Analysis, 2012: 243–253.

CBCD: Cloned Buggy Code Detector

J. Li, M.D. ErnstICSE 2012, Proceedings of the 34th International Conference on Software Engineering, 2012: 310–320.

A type system for regular expressions

E. Spishak, W. Dietl, M.D. ErnstFTfJP: 14th Workshop on Formal Techniques for Java-like Programs, 2012: 20–26.

Verification games: Making verification fun

W. Dietl, S. Dietzel, M.D. Ernst, N. Mote, B. Walker, S. Cooper, T. Pavlik, Z. PopovićFTfJP: 14th Workshop on Formal Techniques for Java-like Programs, 2012: 42–49.

Inference and checking of object ownership

W. Huang, W. Dietl, A. Milanova, M.D. ErnstECOOP 2012 –- Object-Oriented Programming, 26th European Conference, 2012: 181–206.

Improving IDE Recommendations by Considering Global Implications of Existing Recommendations

K. Muşlu, Y. Brun, R. Holmes, M.D. Ernst, D. NotkinProceedings of the 34th International Conference on Software Engineering (New Ideas and Emerging Results Track), 2012.

Predicting Development Trajectories to Prevent Collaboration Conflicts

Y. Brun, K. Muşlu, R. Holmes, M.D. Ernst, D. NotkinProceedings of the 2012 Computer Supported Cooperative Work Working Conference on the Future of Collaborative Software Development, 2012.

Predicting development trajectories to prevent collaboration conflicts

Y. Brun, K. Muşlu, R. Holmes, M.D. Ernst, D. NotkinFutureCSD 2012: The Future of Collaborative Software Development, 2012.

Static lock capabilities for deadlock freedom

C.S. Gordon, M.D. Ernst, D. GrossmanTLDI 2012: The seventh ACM SIGPLAN Workshop on Types in Language Design and Implementation, 2012: 67–78.

2011

Mining temporal invariants from partially ordered logs

I. Beschastnikh, Y. Brun, M.D. Ernst, A. Krishnamurthy, T.E. AndersonSIGOPS Operating Systems Review 45:3, 2011: 39–46.

Scaling up automated test generation: Automatically generating maintainable regression unit tests for programs

B. Robinson, M.D. Ernst, J.H. Perkins, V. Augustine, N. LiASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, 2011: 23–32.

Automated documentation inference to explain failed tests

S. Zhang, C. Zhang, M.D. ErnstASE 2011: Proceedings of the 26th Annual International Conference on Automated Software Engineering, 2011: 63–72.

Type Annotations specification (JSR 308)

M.D. Ernst, 2011.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Mining temporal invariants from partially ordered logs

I. Beschastnikh, Y. Brun, M.D. Ernst, A. Krishnamurthy, T.E. AndersonSLAML 2011: Workshop on Managing Large-Scale Systems via the Analysis of System Logs and the Application of Machine Learning Techniques (SLAML '11), 2011. Article No. 3
 

Bandsaw: Log-powered test scenario generation for distributed systems

I. Beschastnikh, Y. Brun, M.D. Ernst, A. Krishnamurthy, T.E. AndersonSOSP WIP: Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Work In Progress Track, 2011.

Static lock capabilities for deadlock freedom

C.S. Gordon, M.D. Ernst, D. GrossmanUniversity of Washington Department of Computer Science and Engineering:UW-CSE-11-10-01, 2011.
 

Leveraging existing instrumentation to automatically infer invariant-constrained models

I. Beschastnikh, Y. Brun, S. Schneider, M. Sloan, M.D. ErnstESEC/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), 2011: 267–277.

Proactive detection of collaboration conflicts

Y. Brun, R. Holmes, M.D. Ernst, D. NotkinESEC/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), 2011: 168–178.

HAMPI: a string solver for testing, analysis and vulnerability detection

V. Ganesh, A. Kieżun, S. Artzi, P.J. Guo, P. Hooimeijer, M.D. ErnstCAV 2011: 23rd International Conference on Computer Aided Verification, 2011: 1–19.
 

Combined static and dynamic automated test generation

S. Zhang, D. Saff, Y. Bu, M.D. ErnstISSTA 2011, Proceedings of the 2011 International Symposium on Software Testing and Analysis, 2011: 353–363.

Tunable static inference for Generic Universe Types

W. Dietl, M.D. Ernst, P. MüllerECOOP 2011 –- Object-Oriented Programming, 25th European Conference, 2011: 333–357.

Refactoring using type constraints

F. Tip, R.M. Fuhrer, A. Kieżun, M.D. Ernst, I. Balaban, B. De SutterACM Transactions on Pro\-gramming Languages and Systems 33:3, 2011: 9:1–9:47.

Building and using pluggable type-checkers

W. Dietl, S. Dietzel, M.D. Ernst, K. Muşlu, T. SchillerICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011: 681–690.

Always-available static and dynamic feedback

M. Bayne, R. Cook, M.D. ErnstICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011: 521–530.

Inference of field initialization

F. Spoto, M.D. ErnstICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011: 231–240.

How do programs become more concurrent? A story of program transformations

D. Dig, J. Marrero, M.D. ErnstProceedings of the 4th International Workshop on Multicore Software Engineering, 2011: 43–50.

2010

Speculative analysis: Exploring future development states of software

Y. Brun, R. Holmes, M.D. Ernst, D. NotkinFoSER: Workshop on the Future of Software Engineering Research, 2010: 59–64.

Rethinking the economics of software engineering

T.W. Schiller, M.D. ErnstFoSER: Workshop on the Future of Software Engineering Research, 2010: 325–330.

Ownership and immutability in generic Java

Y. Zibin, A. Potanin, P. Li, M. Ali, M.D. ErnstOOPSLA 2010, Object-Oriented Programming Systems, Languages, and Applications, 2010: 598–617.

Synoptic: Summarizing system logs with refinement

S. Schneider, I. Beschastnikh, S. Chernyak, M.D. Ernst, Y. BrunSLAML 2010: Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML '10), 2010.

Finding bugs in web applications using dynamic test generation and explicit state model checking

S. Artzi, A. Kieżun, J. Dolby, F. Tip, D. Dig, A. Paradkar, M.D. ErnstIEEE Transactions on Software Engineering 36:4, 2010: 474–494.

2009

Featherweight Ownership and Immutability Generic Java (FOIGJ)

A. Potanin, P. Li, Y. Zibin, M.D. ErnstVUW School of Engineering and Computer Science:09-13, 2009.

Automatically patching errors in deployed software

J.H. Perkins, S. Kim, S. Larsen, S. Amarasinghe, J. Bachrach, M. Carbin, C. Pacheco, F. Sherwood, S. Sidiroglou, G. Sullivan, W.F. Wong, Y. Zibin, M.D. Ernst, M. RinardSOSP 2009, Proceedings of the 22nd ACM Symposium on Operating Systems Principles, 2009: 87–102.

HAMPI: A solver for string constraints

A. Kieżun, V. Ganesh, P.J. Guo, P. Hooimeijer, M.D. ErnstISSTA 2009, Proceedings of the 2009 International Symposium on Software Testing and Analysis, 2009: 105–116.

Refactoring sequential Java code for concurrency via concurrent libraries

D. Dig, J. Marrero, M.D. ErnstICSE 2009, Proceedings of the 31st International Conference on Software Engineering, 2009: 397–407.

Automatic creation of SQL injection and cross-site scripting attacks

A. Kieżun, P.J. Guo, K. Jayaraman, M.D. ErnstICSE 2009, Proceedings of the 31st International Conference on Software Engineering, 2009: 199–209.

2008

Type Annotations specification (JSR 308)

M.D. Ernst, 2008.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Practical pluggable types for Java

M.M. Papi, M. Ali, T.Luis Correa, J.H. Perkins, M.D. ErnstISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, 2008: 201–212.

ReCrash: Making software failures reproducible by preserving object states

S. Artzi, S. Kim, M.D. ErnstECOOP 2008 –- Object-Oriented Programming, 22nd European Conference, 2008: 542–565.

Inference of reference immutability

J. Quinonez, M.S. Tschantz, M.D. ErnstECOOP 2008 –- Object-Oriented Programming, 22nd European Conference, 2008: 616–641.

Quantitative information flow as network flow capacity

S. McCamant, M.D. ErnstPLDI 2008: Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, 2008: 193–205.

Theories in practice: Easy-to-write specifications that catch bugs

D. Saff, M. Boshernitsan, M.D. ErnstMIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2008-002, 2008.

2007

The Daikon system for dynamic detection of likely invariants

M.D. Ernst, J.H. Perkins, P.J. Guo, S. McCamant, C. Pacheco, M.S. Tschantz, C. Xiao 69:1–3, 2007: 35–45.

JSR 308: Annotations on Java types

M.D. Ernst, D. Coward, 2007.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Tools for enforcing and inferring reference immutability in Java

T.Luis Correa, J. Quinonez, M.D. ErnstOOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, 2007: 866–867.

Which warnings should I fix first?

S. Kim, M.D. ErnstESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2007: 45–54.

Object and reference immutability using Java generics

Y. Zibin, A. Potanin, M. Ali, S. Artzi, A. Kieżun, M.D. ErnstESEC/FSE 2007: Proceedings of the 11th European Software Engineering Conference and the 15th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2007: 75–84.

A simulation-based proof technique for dynamic information flow

S. McCamant, M.D. ErnstPLAS 2007: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, 2007: 41–46.

Prioritizing warnings by analyzing software history

S. Kim, M.D. ErnstMSR 2007: International Workshop on Mining Software Repositories, 2007: 27–30.

Refactoring for parameterizing Java classes

A. Kieżun, M.D. Ernst, F. Tip, R.M. FuhrerICSE 2007, Proceedings of the 29th International Conference on Software Engineering, 2007: 437–446.

2006

The Groupthink specification exercise

M.D. ErnstICSE Education and Training Track: Software Engineering Education in the Modern Age: Challenges and Possibilities, PostProceedings of ICSE '05 Education and Training TrackSpringer 4309, 2006: 89–107.

Quantitative information-flow tracking for C and related languages

S. McCamant, M.D. ErnstMIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2006-076, 2006.

JSR 308: Annotations on Java types

M.D. Ernst, D. Coward, 2006.
https://checkerframework.org/jsr308/ current status and implementation https://jcp.org/en/jsr/detail?id=308 original proposal

Finding the needles in the haystack: Generating legal test inputs for object-oriented programs

S. Artzi, M.D. Ernst, A. Kieżun, C. Pacheco, J.H. PerkinsM-TOOS: 1st Workshop on Model-Based Testing and Object-Oriented Systems, 2006: 27–34.

Combined static and dynamic mutability analysis

S. Artzi, M.D. Ernst, D. Glasser, A. KieżunMIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2006-065, 2006.

An empirical comparison of automated generation and classification techniques for object-oriented unit testing

M. d'Amorim, C. Pacheco, D. Marinov, T. Xie, M.D. ErnstASE 2006: Proceedings of the 21st Annual International Conference on Automated Software Engineering, 2006: 59–68.

Feedback-directed random test generation

C. Pacheco, S.K. Lahiri, M.D. Ernst, T. BallMicrosoft Research:MSR-TR-2006-125, 2006.

Refactoring for parameterizing Java classes

A. Kieżun, M.D. Ernst, F. Tip, R.M. FuhrerMIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2006-061, 2006.

Inference and enforcement of data structure consistency specifications

B. Demsky, M.D. Ernst, P.J. Guo, S. McCamant, J.H. Perkins, M. RinardISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, 2006: 233–243.

Dynamic inference of abstract types

P.J. Guo, J.H. Perkins, S. McCamant, M.D. ErnstISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, 2006: 255–265.

Detection of web service substitutability and composability

M.D. Ernst, R. Lencevicius, J.H. PerkinsWS-MaTe: International Workshop on Web Services –- Modeling and Testing, 2006: 123–135.

2005

Automatic test factoring for Java

D. Saff, S. Artzi, J.H. Perkins, M.D. ErnstASE 2005: Proceedings of the 20th Annual International Conference on Automated Software Engineering, 2005: 114–123.

Using predicate fields in a highly flexible industrial control system

S. Artzi, M.D. ErnstOOPSLA 2005, Object-Oriented Programming Systems, Languages, and Applications, 2005: 319–330.

Eclat: Automatic generation and classification of test inputs

C. Pacheco, M.D. ErnstECOOP 2005 –- Object-Oriented Programming, 19th European Conference, 2005: 504–527.

Static deadlock detection for Java libraries

A. Williams, W. Thies, M.D. ErnstECOOP 2005 –- Object-Oriented Programming, 19th European Conference, 2005: 602–629.

An overview of JML tools and applications

L. Burdy, Y. Cheon, D. Cok, M.D. Ernst, J. Kiniry, G.T. Leavens, R.K.M. Leino, E. PollSoftware Tools for Technology Transfer 7:3, 2005: 212–232.

The Groupthink specification exercise

M.D. Ernst, J. ChapinICSE 2005, Proceedings of the 27th International Conference on Software Engineering, 2005: 617–618.

2004

Efficient incremental algorithms for dynamic detection of likely invariants

J.H. Perkins, M.D. ErnstFSE 2004: Proceedings of the ACM SIGSOFT 12th Symposium on the Foundations of Software Engineering, 2004: 23–32.

Formalizing lightweight verification of software component composition

S. McCamant, M.D. ErnstSAVCBS 2004: Specification and Verification of Component-Based Systems, 2004: 47–54.

Converting Java programs to use generic libraries

A. Donovan, A. Kieżun, M.S. Tschantz, M.D. ErnstOOPSLA 2004, Object-Oriented Programming Systems, Languages, and Applications, 2004: 15–34.

Improving adaptability via program steering

L. Lin, M.D. ErnstISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, 2004: 206–216.

An experimental evaluation of continuous testing during development

D. Saff, M.D. ErnstISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, 2004: 76–85.

Early identification of incompatibilities in multi-component upgrades

S. McCamant, M.D. ErnstECOOP 2004 –- Object-Oriented Programming, 18th European Conference, 2004: 440–464.

Automatic mock object creation for test factoring

D. Saff, M.D. ErnstPASTE 2004: ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'04), 2004: 49–51.

Finding latent code errors via machine learning over program executions

Y. Brun, M.D. ErnstICSE 2004, Proceedings of the 26th International Conference on Software Engineering, 2004: 480–490.

Continuous testing in Eclipse

D. Saff, M.D. Ernst2nd Eclipse Technology Exchange Workshop (eTX), 2004.

Predicting problems caused by component upgrades

S. McCamant, M.D. ErnstMIT Laboratory for Computer Science:941, 2004. Revision of first author's Master's thesis

2003

Summary: Workshop on Dynamic Analysis (WODA 2003)

J.E. Cook, M.D. ErnstACM SIGSOFT Software Engineering Notes 28:6, 2003: 27.

Reducing wasted development time via continuous testing

D. Saff, M.D. ErnstISSRE 2003: Fourteenth International Symposium on Software Reliability Engineering, 2003: 281–292.

Predicting problems caused by component upgrades

S. McCamant, M.D. ErnstESEC/FSE 2003: Proceedings of the 9th European Software Engineering Conference and the 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering, 2003: 287–296.

Selecting, refining, and evaluating predicates for program analysis

N. Dodoo, L. Lin, M.D. ErnstMIT Laboratory for Computer Science:MIT-LCS-TR-914, 2003.

Improving test suites via operational abstraction

M. Harder, J. Mellen, M.D. ErnstICSE 2003, Proceedings of the 25th International Conference on Software Engineering, 2003: 60–71.

Using simulated execution in verifying distributed algorithms

T.N. Win, M.D. Ernst, S.J. Garland, D. Kırlı, N. LynchVMCAI 2003: Fourth International Conference on Verification, Model Checking and Abstract Interpretation, 2003: 283–297.

2002

An empirical analysis of C preprocessor use

M.D. Ernst, G.J. Badros, D. NotkinIEEE Transactions on Software Engineering 28:12, 2002: 1146–1170.

Graphs induced by Gray codes

E.L. Wilmer, M.D. ErnstDiscrete Mathematics 257, 2002: 585–598.

Invariant inference for static checking: An empirical evaluation

J.W. Nimmer, M.D. ErnstFSE 2002, Proceedings of the ACM SIGSOFT 10th International Symposium on the Foundations of Software Engineering, 2002: 11–20.

Automatic generation of program specifications

J.W. Nimmer, M.D. ErnstISSTA 2002, Proceedings of the 2002 International Symposium on Software Testing and Analysis, 2002: 232–242.

2001

Automated support for program refactoring using invariants

Y. Kataoka, M.D. Ernst, W.G. Griswold, D. NotkinICSM 2001: Proceedings of the International Conference on Software Maintenance, 2001: 736–743.

Panel: Perspectives on software engineering

D. Notkin, M. Donner, M.D. Ernst, M. Gorlick,  ICSE 2001, Proceedings of the 23rd International Conference on Software Engineering, 2001: 699–702.

2000

Dynamically Discovering Likely Program Invariants

M.D. ErnstUniversity of Washington Department of Computer Science and Engineering, 2000.

Quickly detecting relevant program invariants

M.D. Ernst, A. Czeisler, W.G. Griswold, D. NotkinICSE 2000, Proceedings of the 22nd International Conference on Software Engineering, 2000: 449–458.

1999

Dynamically discovering pointer-based program invariants

M.D. Ernst, W.G. Griswold, Y. Kataoka, D. NotkinUniversity of Washington Department of Computer Science and Engineering:UW-CSE-99-11-02, 1999. Revised March 17, 2000

1998

1997

Automatic SAT-compilation of planning problems

M.D. Ernst, T.D. Millstein, D.S. WeldIJCAI '97: IJCAI-97, Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, 1997: 1169–1176.

1996

1995

1994

Heraclitean encryption

M.D. Ernst, G. YuvalMicrosoft Research:MSR-TR-94-13, 1994.

Value dependence graphs: Representation without taxation

D. Weise, R.F. Crew, M.D. Ernst, B. SteensgaardPOPL '94: Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1994: 297–310.

1992

1989

Adequate Models for Recursive Program Schemes

M.D. ErnstMIT Department of Electrical Engineering and Computer Science, 1989.

Self-reference in English

M.D. Ernst, 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 \em 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.
 

ML typechecking is not efficient

M.D. ErnstPapers of the MIT ACM Undergraduate Conference, 1989.
 

Image/map correspondence using curve matching

M.D. Ernst, B.E. FlinchbaughAAAI Spring Symposium on Robot Navigation, 1989. Also published as Texas Instruments Technical Report CSC-SIUL-89-12