Contact
CSE 538
206-221-0965
mernstcs.washington.edu
Areas of interest:
Software engineering, programming languages
Programming Language Design Immutability (Side-effects) Static Analysis Security Refactoring Bug Prediction Invariant Detection Dynamic Analysis Software Engineering Verification Artificial Intelligence Theory Miscellaneous
Programming Language Design
Annotations on Java types
, 2014 . Proposed Final Draft.Type Annotations specification (JSR 308)
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
Type Annotations specification (JSR 308)
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
A type system for regular expressions
FTfJP: 14th Workshop on Formal Techniques for Java-like Programs, 2012
: 20–26.
, https://checkerframework.org/manual/#regex-checker Regex Checker implementation
https://homes.cs.washington.edu/~mernst/pubs/regex-types-ftfjp2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/regex-types-ftfjp2012-slide... slides (PDF)
Type Annotations specification (JSR 308)
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
Tunable static inference for Generic Universe Types
ECOOP 2011 –- Object-Oriented Programming, 25th European Conference, 2011
: 333–357.
, https://ece.uwaterloo.ca/~wdietl/inference/ Implementation and experiments
https://homes.cs.washington.edu/~mernst/pubs/tunable-typeinf-ecoop2011.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/tunable-typeinf-ecoop2011-s... slides (PDF)
Always-available static and dynamic feedback
ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011
: 521–530.
, https://github.com/mernst/ductilej DuctileJ implementation
https://homes.cs.washington.edu/~mernst/pubs/ductile-icse2011.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/ductile-icse2011-slides.pdf slides (PDF)
Building and using pluggable type-checkers
ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011
: 681–690.
, https://checkerframework.org/ implementation
https://homes.cs.washington.edu/~mernst/pubs/pluggable-checkers-icse2011... PDF
https://homes.cs.washington.edu/~mernst/pubs/pluggable-checkers-icse2011... slides (PDF)
Ownership and immutability in generic Java
OOPSLA 2010, Object-Oriented Programming Systems, Languages, and Applications, 2010
: 598–617.
, https://ecs.wgtn.ac.nz/foswiki/pub/Main/TechnicalReportSeries/ECSTR10-16... TR with proofs
https://homes.cs.washington.edu/~mernst/pubs/ownership-immutability-oops... PDF
Featherweight Ownership and Immutability Generic Java (FOIGJ)
VUW School of Engineering and Computer Science:09-13, 2009
.
, Type Annotations specification (JSR 308)
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
Practical pluggable types for Java
ISSTA 2008, Proceedings of the 2008 International Symposium on Software Testing and Analysis, 2008
: 201–212.
, https://homes.cs.washington.edu/~mernst/pubs/pluggable-types-issta2008-s... talk slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/pluggable-types-demo-slides... demo slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/pluggable-checkers-retrospe... ISSTA 2018 retrospective slides (PDF)
https://docs.google.com/presentation/d/1-DRyBQq-Afmu0nZnb7BK2vd95Nmr13O5... ISSTA 2018 retrospective slides (Google Slides)
https://groups.csail.mit.edu/pag/pubs/pluggable-checkers-papi-mengthesis... Papi thesis (PDF)
https://checkerframework.org/ Checker Framework implementation
https://homes.cs.washington.edu/~mernst/pubs/pluggable-checkers-issta200... PDF
Annotations on Java types: JSR 308 working document
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
JSR 308: Annotations on Java types
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
JSR 308: Annotations on Java types
https://checkerframework.org/jsr308/ current status and implementation
https://jcp.org/en/jsr/detail?id=308 original proposal
Using predicate fields in a highly flexible industrial control system
OOPSLA 2005, Object-Oriented Programming Systems, Languages, and Applications, 2005
: 319–330.
, Predicate dispatching: A unified theory of dispatch
ECOOP '98: the 12th European Conference on Object-Oriented Programming, 1998
: 186–211.
, ftp://ftp.cs.washington.edu/homes/chambers/gud.tar.gz implementation
https://projectsweb.cs.washington.edu/research/projects/cecil/www/Gud/ma... manual
https://homes.cs.washington.edu/~mernst/pubs/dispatching-ecoop98.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/dispatching-ecoop98-slides.pdf slides (PDF)
IR '95: Intermediate Representations Workshop Proceedings
, 1995
. \em ACM SIGPLAN Notices 30(3), March 1995
https://homes.cs.washington.edu/~mernst/meetings/ir95/ workshop website
https://dl.acm.org/citation.cfm?id=202530 ACM proceedings
Immutability (Side-effects)
Parameter reference immutability: Formal definition, inference tool, and comparison
Automated Software Engineering 16:1, 2009
: 145–192.
, https://homes.cs.washington.edu/~mernst/pubs/mutability-ase2007-slides.pdf slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/mutability-ase2007-slides.pptx slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/mutability-jase2009.pdf PDF
Inference of reference immutability
ECOOP 2008 –- Object-Oriented Programming, 22nd European Conference, 2008
: 616–641.
, https://groups.csail.mit.edu/pag/pubs/infer-refimmutability-quinonez-men... Quinonez thesis
https://types.cs.washington.edu/javari/javarifier/ Javarifier implementation
https://homes.cs.washington.edu/~mernst/pubs/infer-refimmutability-ecoop... PDF
Tools for enforcing and inferring reference immutability in Java
OOPSLA Companion: Object-Oriented Programming Systems, Languages, and Applications, 2007
: 866–867.
, https://types.cs.washington.edu/javari/ Javari implementation
https://homes.cs.washington.edu/~mernst/pubs/refimmut-tools-oopsla2007.pdf PDF
Object and reference immutability using Java generics
ESEC/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.
, https://checkerframework.org/manual/#igj-checker IGJ implementation
https://homes.cs.washington.edu/~mernst/pubs/immutability-generics-fse20... PDF
Javari: Adding reference immutability to Java
OOPSLA 2005, Object-Oriented Programming Systems, Languages, and Applications, 2005
: 211–230.
, https://groups.csail.mit.edu/pag/pubs/tschantz-refimmut-mengthesis.pdf extended version (PDF)
https://types.cs.washington.edu/javari/ Javari implementation
https://homes.cs.washington.edu/~mernst/pubs/ref-immutability-oopsla2005... PDF
https://homes.cs.washington.edu/~mernst/pubs/ref-immutability-oopsla2005... slides (PowerPoint)
A practical type system and language for reference immutability
OOPSLA 2004, Object-Oriented Programming Systems, Languages, and Applications, 2004
: 35–49.
, https://types.cs.washington.edu/javari/ Javari implementation
https://homes.cs.washington.edu/~mernst/pubs/ref-immutability-oopsla2004... PDF
https://homes.cs.washington.edu/~mernst/pubs/ref-immutability-oopsla2004... slides (PDF)
Static Analysis
Inference of resource management specifications
OOPSLA 2023, Object-Oriented Programming Systems, Languages, and Applications, 2023
.
, https://checkerframework.org/ implementation
Pluggable type inference for free
ASE 2023: Proceedings of the 38th Annual International Conference on Automated Software Engineering, 2023
.
, https://checkerframework.org/ implementation
Nothing is better than the Optional type. Really. Nothing is better.
Java Magazine, 2022
.
, https://homes.cs.washington.edu/~mernst/advice/nothing-is-better-than-op... original version
https://blogs.oracle.com/javamagazine/post/optional-class-null-pointer-d... Java Magazine version
Notes on Program Analysis
\urlhttps://homes.cs.washington.edu/ mernst/pubs/program-analysis-book.pdf, 2022
.
, Fast synthesis of fast collections
PLDI 2016: Proceedings of the ACM SIGPLAN 2016 Conference on Programming Language Design and Implementation, 2016
: 355-368.
, https://github.com/CozySynthesizer/cozy Cozy implementation
Semantics for locking specifications
NFM 2016: 8th NASA Formal Methods Symposium, 2016
: 355-372.
, https://checkerframework.org/ checking implementation
https://homes.cs.washington.edu/~mernst/pubs/locking-semantics-nfm2016.pdf PDF
Locking discipline inference and checking
ICSE 2016, Proceedings of the 38th International Conference on Software Engineering, 2016
: 1133-1144.
, https://checkerframework.org/ checking implementation
https://homes.cs.washington.edu/~mernst/pubs/locking-inference-checking-... PDF
Static analysis of implicit control flow: Resolving Java reflection and Android intents
ASE 2015: Proceedings of the 30th Annual International Conference on Automated Software Engineering, 2015
: 669-679.
, https://homes.cs.washington.edu/~mernst/pubs/implicit-control-flow-tr150... extended version
https://types.cs.washington.edu/sparta/ SPARTA toolset
https://checkerframework.org/ Checker Framework
https://homes.cs.washington.edu/~mernst/pubs/implicit-control-flow-ase20... PDF
https://homes.cs.washington.edu/~mernst/pubs/implicit-control-flow-ase20... slides (PDF)
Boolean formulas for the static identification of injection attacks in Java
LPAR 2015: Proceedings of the 20th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, 2015
: 130–145.
, https://homes.cs.washington.edu/~mernst/pubs/detect-injections-lpar2015.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/detect-injections-lpar2015-... slides (PDF)
Semantics for locking specifications
University of Washington Department of Computer Science and Engineering:UW-CSE-15-09-01, 2015
.
, Boolean formulas for the static identification of injection attacks in Java
University of Washington Department of Computer Science and Engineering:UW-CSE-15-09-03, 2015
.
, Locking discipline inference and checking
University of Washington Department of Computer Science and Engineering:UW-CSE-15-09-02, 2015
.
, Static analysis of implicit control flow: Resolving Java reflection and Android intents (extended version)
University of Washington Department of Computer Science and Engineering:UW-CSE-15-08-01, 2015
.
, https://types.cs.washington.edu/sparta/ SPARTA toolset
https://checkerframework.org/ Checker Framework
Static analysis of implicit control flow: Resolving Java reflection and Android intents
University of Washington Department of Computer Science and Engineering:UW-CSE-15-05-01, 2015
.
, https://types.cs.washington.edu/sparta/ SPARTA toolset
https://checkerframework.org/ Checker Framework
Efficient mutation analysis by propagating and partitioning infected execution states
ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014
: 315–326.
, https://mutation-testing.org/ Major mutation framework and experimental data
https://homes.cs.washington.edu/~mernst/pubs/state-infection-issta2014.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/state-infection-issta2014-s... slides (PDF)
Defects4J: A Database of existing faults to enable controlled testing studies for Java programs
ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014
: 437–440. Tool demo
, https://defects4j.org/ Defects4J website
https://homes.cs.washington.edu/~mernst/pubs/bug-database-issta2014.pdf PDF
A format string checker for Java
ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014
: 441–444.
, A type system for format strings
ISSTA 2014, Proceedings of the 2014 International Symposium on Software Testing and Analysis, 2014
: 127–137.
, https://homes.cs.washington.edu/~mernst/pubs/format-string-issta2014-dem... demo paper (PDF)
https://checkerframework.org/manual/#formatter-checker Format String Checker implementation
https://homes.cs.washington.edu/~mernst/pubs/format-string-issta2014.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/format-string-issta2014-sli... slides (PDF)
JavaUI: Effects for controlling UI object access
ECOOP 2013 –- Object-Oriented Programming, 27th European Conference, 2013
: 179–204.
, https://homes.cs.washington.edu/~mernst/pubs/gui-thread-tr20130401.pdf technical report (PDF)
https://checkerframework.org/manual/#guieffect-checker JavaUI implementation
https://github.com/csgordon/javaui older implementation and annotated subject programs
https://homes.cs.washington.edu/~mernst/pubs/gui-thread-ecoop2013.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/gui-thread-ecoop2013-slides... slides (PDF)
Rely-guarantee references for refinement types over aliased mutable data
PLDI 2013: Proceedings of the ACM SIGPLAN 2013 Conference on Programming Language Design and Implementation, 2013
: 73–84.
, https://homes.cs.washington.edu/~mernst/pubs/rely-guarantee-ref-tr130302... technical report
https://github.com/csgordon/rgref/ implementation
https://homes.cs.washington.edu/~mernst/pubs/rely-guarantee-ref-pldi2013... PDF
https://homes.cs.washington.edu/~mernst/pubs/rely-guarantee-ref-pldi2013... slides (PDF)
Immutability
Aliasing in Object-Oriented Programming, Springer-Verlag 7850, 2013
: 233–269.
, HAMPI: A solver for word equations over strings, regular expressions, and context-free grammars
ACM Transactions on Software Engineering and Methodology 21:4, 2012
: 25:1–25:28.
, https://people.csail.mit.edu/akiezun/hampi/ HAMPI implementation and experiments
https://homes.cs.washington.edu/~mernst/pubs/string-solver-tosem2012.pdf ISSTA 2009 slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/string-solver-tosem2012.pdf PDF
ReIm & ReImInfer: Checking and inference of reference immutability and method purity
OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, 2012
: 879–896.
, https://www.cs.rpi.edu/~huangw5/cf-inference/ implementation
https://homes.cs.washington.edu/~mernst/pubs/infer-refimmutability-oopsl... PDF
https://homes.cs.washington.edu/~mernst/pubs/infer-refimmutability-oopsl... slides (PDF)
Inference and checking of object ownership
ECOOP 2012 –- Object-Oriented Programming, 26th European Conference, 2012
: 181–206.
, https://www.cs.rpi.edu/~huangw5/cf-inference/ implementation
https://homes.cs.washington.edu/~mernst/pubs/infer-ownership-ecoop2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/infer-ownership-ecoop2012-s... slides (PDF)
Static lock capabilities for deadlock freedom
TLDI 2012: The seventh ACM SIGPLAN Workshop on Types in Language Design and Implementation, 2012
: 67–78.
, https://homes.cs.washington.edu/~mernst/pubs/lock-capabilities-tldi2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/lock-capabilities-tldi2012-... slides (PDF)
Static lock capabilities for deadlock freedom
University of Washington Department of Computer Science and Engineering:UW-CSE-11-10-01, 2011
.
, HAMPI: a string solver for testing, analysis and vulnerability detection
CAV 2011: 23rd International Conference on Computer Aided Verification, 2011
: 1–19.
, Inference of field initialization
ICSE 2011, Proceedings of the 33rd International Conference on Software Engineering, 2011
: 231–240.
, ftp://ftp.cs.washington.edu/tr/2010/02/UW-CSE-10-02-01.PDF earlier TR with additional details
https://homes.cs.washington.edu/~mernst/pubs/initialization-icse2011.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/initialization-icse2011-sli... slides (PDF)
HAMPI: A solver for string constraints
ISSTA 2009, Proceedings of the 2009 International Symposium on Software Testing and Analysis, 2009
: 105–116.
, https://people.csail.mit.edu/akiezun/hampi/ HAMPI implementation and experiments
https://homes.cs.washington.edu/~mernst/pubs/string-solver-issta2009.pdf PDF
Static deadlock detection for Java libraries
ECOOP 2005 –- Object-Oriented Programming, 19th European Conference, 2005
: 602–629.
, Selecting, refining, and evaluating predicates for program analysis
MIT Laboratory for Computer Science:MIT-LCS-TR-914, 2003
.
, An empirical analysis of C preprocessor use
IEEE Transactions on Software Engineering 28:12, 2002
: 1146–1170.
, https://homes.cs.washington.edu/~mernst/pubs/macros.tar.gz implementation
https://homes.cs.washington.edu/~mernst/pubs/c-preprocessor-tse2002.pdf PDF
Slicing pointers and procedures (abstract)
Microsoft Research:MSR-TR-95-23, 1995
.
, https://homes.cs.washington.edu/~mernst/pubs/slicing-9705-slides.pdf slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/slicing-9705-slides.ppt slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/slicing-tr9523.pdf PDF
Serializing parallel programs by removing redundant computation
MIT Laboratory for Computer Science:MIT/LCS/TR-638, 1994
.
, Practical fine-grained static slicing of optimized code
Microsoft Research:MSR-TR-94-14, 1994
.
, https://homes.cs.washington.edu/~mernst/pubs/slicing-9705-slides.pdf slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/slicing-9705-slides.ppt slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/slicing-tr9414.pdf PDF
Value dependence graphs: Representation without taxation
POPL '94: Proceedings of the 21st Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1994
: 297–310.
, Security
Checking conformance of applications against GUI policies
ESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2021
: 95-106.
, https://docs.google.com/presentation/d/1CsPMaomfsL53KON1nWfI3vVN8bKmzLMJ... slides (Google Slides)
https://github.com/izgzhen/ui-checker implementation
Automatic trigger generation for rule-based smart homes
PLAS 2016: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, 2016
: 97-102.
, https://docs.google.com/a/cs.washington.edu/presentation/d/1lW9zagndSkCd... slides (Google Slides)
https://homes.cs.washington.edu/~mernst/pubs/trigger-generation-plas2016... PDF
https://homes.cs.washington.edu/~mernst/pubs/trigger-generation-plas2016... slides (PDF)
Collaborative verification of information flow for a high-assurance app store
CCS 2014: Proceedings of the 21st ACM Conference on Computer and Communications Security, 2014
: 1092–1104.
, https://types.cs.washington.edu/sparta/ SPARTA toolset and experimental data
https://homes.cs.washington.edu/~mernst/pubs/infoflow-ccs2014.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/infoflow-ccs2014-slides.pdf slides (PDF)
Automatically patching errors in deployed software
SOSP 2009, Proceedings of the 22nd ACM Symposium on Operating Systems Principles, 2009
: 87–102.
, https://homes.cs.washington.edu/~mernst/pubs/automatic-patching-sosp2009... PDF
https://homes.cs.washington.edu/~mernst/pubs/automatic-patching-sosp2009... Slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/automatic-patching-sosp2009... Slides (PowerPoint)
Automatic creation of SQL injection and cross-site scripting attacks
ICSE 2009, Proceedings of the 31st International Conference on Software Engineering, 2009
: 199–209.
, https://groups.csail.mit.edu/pag/ardilla/ Experimental data
https://homes.cs.washington.edu/~mernst/pubs/create-attacks-icse2009.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/create-attacks-icse2009-sli... slides (PDF)
Quantitative information flow as network flow capacity
PLDI 2008: Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, 2008
: 193–205.
, https://people.csail.mit.edu/smcc/projects/secret-flow/flowcheck.html Flowcheck implementation
https://groups.csail.mit.edu/pag/pubs/secret-max-flow-pldi2008.pdf PDF
A simulation-based proof technique for dynamic information flow
PLAS 2007: ACM SIGPLAN Workshop on Programming Languages and Analysis for Security, 2007
: 41–46.
, Quantitative information-flow tracking for C and related languages
MIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2006-076, 2006
.
, https://groups.csail.mit.edu/pag/pubs/secret-tracking-tr076.pdf PDF
https://dspace.mit.edu/handle/1721.1/34892 DSpace
Bug Prediction
Which warnings should I fix first?
ESEC/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.
, Prioritizing warnings by analyzing software history
MSR 2007: International Workshop on Mining Software Repositories, 2007
: 27–30.
, Formalizing lightweight verification of software component composition
SAVCBS 2004: Specification and Verification of Component-Based Systems, 2004
: 47–54.
, Early identification of incompatibilities in multi-component upgrades
ECOOP 2004 –- Object-Oriented Programming, 18th European Conference, 2004
: 440–464.
, Finding latent code errors via machine learning over program executions
ICSE 2004, Proceedings of the 26th International Conference on Software Engineering, 2004
: 480–490.
, https://homes.cs.washington.edu/~mernst/pubs/machlearn-errors-icse2004.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/machlearn-errors-icse2004-s... slides (PDF)
Predicting problems caused by component upgrades
ESEC/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.
, Invariant Detection
The Daikon system for dynamic detection of likely invariants
https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/daikon-tool-scp2007.pdf PDF
Efficient incremental algorithms for dynamic detection of likely invariants
FSE 2004: Proceedings of the ACM SIGSOFT 12th Symposium on the Foundations of Software Engineering, 2004
: 23–32.
, https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/invariants-incremental-fse2... PDF
https://homes.cs.washington.edu/~mernst/pubs/invariants-incremental-fse2... slides (PDF)
Dynamically discovering likely program invariants to support program evolution
IEEE Transactions on Software Engineering 27:2, 2001
: 99–123.
, https://homes.cs.washington.edu/~mernst/pubs/invariants-icse99.pdf ICSE 1999 paper (PDF)
https://homes.cs.washington.edu/~mernst/pubs/invariants-icse99-slides.ppt ICSE 1999 talk slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/invariants-icse99-slides.pdf ICSE 1999 talk slides (PDF)
https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/invariants-tse2001.pdf PDF
Dynamically Discovering Likely Program Invariants
University of Washington Department of Computer Science and Engineering, 2000
.
, https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/invariants-ernst-phdthesis.pdf PDF
Quickly detecting relevant program invariants
ICSE 2000, Proceedings of the 22nd International Conference on Software Engineering, 2000
: 449–458.
, https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/invariants-relevance-icse20... PDF
Dynamically discovering pointer-based program invariants
University of Washington Department of Computer Science and Engineering:UW-CSE-99-11-02, 1999
. Revised March 17, 2000
, https://plse.cs.washington.edu/daikon/ Daikon implementation
https://homes.cs.washington.edu/~mernst/pubs/invariants-pointers-tr99110... PDF
Dynamic Analysis
Synoptic: Summarizing system logs with refinement
SLAML 2010: Workshop on Managing Systems via Log Analysis and Machine Learning Techniques (SLAML '10), 2010
.
, https://github.com/ModelInference/synoptic implementation
Combined static and dynamic mutability analysis
MIT Computer Science and Artificial Intelligence Laboratory:MIT-CSAIL-TR-2006-065, 2006
.
, Dynamic inference of abstract types
ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, 2006
: 255–265.
, https://plse.cs.washington.edu/daikon/ DynComp implementation (distributed as part of Daikon)
https://homes.cs.washington.edu/~mernst/pubs/abstract-type-issta2006.pdf PDF
Inference and enforcement of data structure consistency specifications
ISSTA 2006, Proceedings of the 2006 International Symposium on Software Testing and Analysis, 2006
: 233–243.
, Detection of web service substitutability and composability
WS-MaTe: International Workshop on Web Services –- Modeling and Testing, 2006
: 123–135.
, Learning from executions: Dynamic analysis for software engineering and program understanding
https://homes.cs.washington.edu/~mernst/pubs/dynamic-tutorial-ase2005-ma... slides 1 (PDF)
https://homes.cs.washington.edu/~mernst/pubs/dynamic-tutorial-ase2005-ja... slides 2 (PDF)
https://homes.cs.washington.edu/~mernst/pubs/dynamic-tutorial-ase2005-co... slides 3 (PDF)
https://homes.cs.washington.edu/~mernst/pubs/dynamic-tutorial-ase2005-da... slides 4 (PDF)
Improving adaptability via program steering
ISSTA 2004, Proceedings of the 2004 International Symposium on Software Testing and Analysis, 2004
: 206–216.
, https://homes.cs.washington.edu/~mernst/pubs/steering-issta2004.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/steering-issta2004.ppt slides (PowerPoint)
Predicting problems caused by component upgrades
MIT Laboratory for Computer Science:941, 2004
. Revision of first author's Master's thesis
, Summary: Workshop on Dynamic Analysis (WODA 2003)
ACM SIGSOFT Software Engineering Notes 28:6, 2003
: 27.
, WODA 2003: ICSE Workshop on Dynamic Analysis
, 2003
.
https://www.cs.nmsu.edu/~jcook/woda2003/ workshop website
https://homes.cs.washington.edu/~mernst/pubs/woda2003-proceedings.pdf PDF
Static and dynamic analysis: Synergy and duality
WODA 2003: Workshop on Dynamic Analysis, 2003
: 24–27.
, https://homes.cs.washington.edu/~mernst/pubs/staticdynamic-paste2004-sli... slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/staticdynamic-paste2004-sli... slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/staticdynamic-woda2003.pdf PDF
Software Engineering
Natural language is a programming language: Applying natural language processing to software development
SNAPL 2017: the 2nd Summit oN Advances in Programming Languages, 2017
: 4:1–4:14.
, Debugging distributed systems: Challenges and options for validation and debugging
Communications 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)
Debugging distributed systems: Challenges and options for validation and debugging
ACM 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)
Explaining visual changes in web interfaces
UIST 2015: Proceedings of the 28th ACM Symposium on User Interface Software and Technology, 2015
: 259–268.
, https://github.com/burg/replay-staging/ Timelapse implementation
https://homes.cs.washington.edu/~mernst/pubs/dom-tracing-uist2015.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/dom-tracing-uist2015-slides... slides (PDF)
Reducing feedback delay of software development tools via continuous analysis
IEEE Transactions on Software Engineering 41:8, 2015
: 745–763.
, https://homes.cs.washington.edu/~mernst/pubs/offline-continuous-esecfse2... ESEC/FSE 2013 slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/offline-continuous-esecfse2... ESEC/FSE 2013 slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/offline-continuous-tse2015.pdf PDF
Using declarative specification to improve the understanding, extensibility, and comparison of model-inference algorithms
IEEE Transactions on Software Engineering 41:4, 2015
: 408–428.
, https://homes.cs.washington.edu/~mernst/pubs/fsm-inference-declarative-i... ICSE 2013 slides (PDF)
https://github.com/ModelInference/synoptic InvariMint implementation
https://homes.cs.washington.edu/~mernst/pubs/fsm-inference-declarative-t... PDF
A data programming CS1 course
SIGCSE: Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 2015
: 150–155.
, https://homes.cs.washington.edu/~mernst/teaching/data-programming/ Data Programming class at UW
https://homes.cs.washington.edu/~mernst/pubs/data-programming-sigcse2015... PDF
User scripting on Android using BladeDroid
APSys 2014: 5th Asia-Pacific Workshop on Systems, 2014
: 9:1–9:7.
, Shedding light on distributed system executions
ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014
: 598–599.
, 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)
https://homes.cs.washington.edu/~mernst/pubs/shivector-shiviz-icse2014.pdf PDF
Case studies and tools for contract specifications
ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014
: 596–607.
, https://plse.cs.washington.edu/code-contracts/ data and tools
https://homes.cs.washington.edu/~mernst/pubs/contract-specifications-ics... PDF
https://homes.cs.washington.edu/~mernst/pubs/contract-specifications-ics... slides (PDF)
Inferring models of concurrent systems from logs of their behavior with CSight
ICSE 2014, Proceedings of the 36th International Conference on Software Engineering, 2014
: 468–479.
, https://github.com/ModelInference/synoptic CSight implementation
https://homes.cs.washington.edu/~mernst/pubs/concurrent-models-icse2014.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/concurrent-models-icse2014-... slides (PDF)
User scripting on Android using BladeDroid
NSDI 2014: 11th USENIX Symposium on Networked Systems Design and Implementation, 2014
.
, Introductory programming meets the real world: Using real problems and data in CS1
SIGCSE: Proceedings of the 45th ACM Technical Symposium on Computer Science Education, 2014
: 465–466.
, https://homes.cs.washington.edu/~mernst/teaching/data-programming/ Data Programming class at UW
https://homes.cs.washington.edu/~mernst/pubs/data-programming-sigcse2014... PDF
Inferring models of concurrent systems from logs of their behavior with CSight
University of British Columbia, 2014
. \urlhttps://hdl.handle.net/2429/46122
, https://github.com/ModelInference/synoptic CSight implementation
Interactive record/replay for web application debugging
UIST 2013: Proceedings of the 26th ACM Symposium on User Interface Software and Technology, 2013
: 473–484.
, https://github.com/burg/replay-staging/ Timelapse implementation
https://homes.cs.washington.edu/~mernst/pubs/record-replay-uist2013.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/record-replay-uist2013-slid... slides (PDF)
Early detection of collaboration conflicts and risks
IEEE Transactions on Software Engineering 39:10, 2013
: 1358–1375.
, https://homes.cs.washington.edu/~mernst/pubs/vc-conflicts-fse2011-slides... ESEC/FSE 2011 slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/vc-conflicts-fse2011-toolde... tool demo paper (PDF)
https://github.com/brunyuriy/crystalvc Crystal implementation
https://homes.cs.washington.edu/~mernst/pubs/vc-conflicts-tse2013.pdf PDF
Making offline analyses continuous
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), 2013
: 323–333.
, https://bitbucket.org/kivancmuslu/solstice/ Solstice implementation
Unifying FSM-inference algorithms through declarative specification
ICSE 2013, Proceedings of the 35th International Conference on Software Engineering, 2013
: 252–261.
, https://homes.cs.washington.edu/~mernst/pubs/fsm-inference-declarative-t... TR UW-CSE-13-03-01
https://github.com/ModelInference/synoptic InvariMint implementation
Unifying FSM-inference algorithms through declarative specification
University of Washington Department of Computer Science and Engineering:UW-CSE-13-03-01, 2013
.
, Reducing the barriers to writing verified specifications
OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, 2012
: 95–112.
, https://plse.cs.washington.edu/veriweb/ study materials
https://homes.cs.washington.edu/~mernst/pubs/veriweb-oopsla2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/veriweb-oopsla2012-slides.pdf slides (PDF)
Speculative analysis of integrated development environment recommendations
OOPSLA 2012, Object-Oriented Programming Systems, Languages, and Applications, 2012
: 669–682.
, https://github.com/brunyuriy/quick-fix-scout implementation
https://homes.cs.washington.edu/~mernst/pubs/quick-fix-scout-oopsla2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/quick-fix-scout-oopsla2012-... slides (PDF)
Unifying FSM-inference algorithms through declarative specification
University of Washington Department of Computer Science and Engineering:UW-CSE-12-08-02, 2012
.
, CBCD: Cloned Buggy Code Detector
ICSE 2012, Proceedings of the 34th International Conference on Software Engineering, 2012
: 310–320.
, https://homes.cs.washington.edu/~mernst/pubs/buggy-clones-tr110502.pdf TR UW-CSE-11-05-02
https://homes.cs.washington.edu/~mernst/pubs/buggy-clones-icse2012.pdf PDF
Predicting development trajectories to prevent collaboration conflicts
FutureCSD 2012: The Future of Collaborative Software Development, 2012
.
, https://homes.cs.washington.edu/~mernst/pubs/speculate-predict-fcsd2012-... poster (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/speculate-predict-fcsd2012.pdf PDF
Mining temporal invariants from partially ordered logs
SIGOPS Operating Systems Review 45:3, 2011
: 39–46.
, Mining temporal invariants from partially ordered logs
SLAML 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
SOSP WIP: Proceedings of the 23rd ACM Symposium on Operating Systems Principles, Work In Progress Track, 2011
.
, Leveraging existing instrumentation to automatically infer invariant-constrained models
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), 2011
: 267–277.
, https://github.com/ModelInference/synoptic Synoptic implementation
https://homes.cs.washington.edu/~mernst/pubs/synoptic-fse2011-tool-demo.pdf tool demo paper (PDF)
https://homes.cs.washington.edu/~mernst/pubs/synoptic-fse2011.pdf PDF
Proactive detection of collaboration conflicts
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), 2011
: 168–178.
, https://github.com/brunyuriy/crystalvc Crystal implementation
https://people.cs.umass.edu/~brun/video/Brun11esecfse/ video of talk
https://homes.cs.washington.edu/~mernst/pubs/vc-conflicts-fse2011-toolde... tool demo paper (PDF)
Speculative analysis: Exploring future development states of software
FoSER: Workshop on the Future of Software Engineering Research, 2010
: 59–64.
, https://github.com/brunyuriy/quick-fix-scout Quick Fix Scout implementation
https://homes.cs.washington.edu/~mernst/pubs/speculation-foser2010.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/speculation-foser2010-slide... slides (PDF)
Rethinking the economics of software engineering
FoSER: Workshop on the Future of Software Engineering Research, 2010
: 325–330.
, The Groupthink specification exercise
ICSE Education and Training Track: Software Engineering Education in the Modern Age: Challenges and Possibilities, PostProceedings of ICSE '05 Education and Training Track, Springer 4309, 2006
: 89–107.
, https://homes.cs.washington.edu/~mernst/pubs/groupthink-specification-ex... activity materials
https://homes.cs.washington.edu/~mernst/software/UpopVote.zip optional voting software
https://homes.cs.washington.edu/~mernst/pubs/groupthink-icse2005-slides.pdf ICSE 2005 slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/groupthink-icse2005-slides.ppt ICSE 2005 slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/groupthink-2006.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/groupthink-2006-2up.pdf 2-up PDF
PASTE: ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
, 2005
.
https://homes.cs.washington.edu/~mernst/meetings/paste2005/ workshop website
The Groupthink specification exercise
ICSE 2005, Proceedings of the 27th International Conference on Software Engineering, 2005
: 617–618.
, Panel: Perspectives on software engineering
ICSE 2001, Proceedings of the 23rd International Conference on Software Engineering, 2001
: 699–702.
, https://homes.cs.washington.edu/~notkin/icse2001panel.htm slides (for all panelists)
https://homes.cs.washington.edu/~mernst/pubs/se-perspectives-panel-icse2... PDF
Verification
Accumulation analysis
ECOOP 2022 –- Object-Oriented Programming, 33rd European Conference, 2022
: 10:1-10:31.
, https://docs.google.com/presentation/d/1cEk5wH9L1a5a9bXof3BmA7DN6Nwx9NIV... slides (Google Slides)
https://checkerframework.org/ implementation
https://doi.org/10.5281/zenodo.5771196 artifact
Accumulation analysis (artifact)
DARTS, Dagstuhl Artifacts Series 8:2, 2022
: 22:1-22:3.
, https://checkerframework.org/ implementation
https://drops.dagstuhl.de/opus/volltexte/2022/16220/artifact/DARTS-8-2-2... artifact
Lightweight and modular resource leak verification
ESEC/FSE 2021: The ACM 29th joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), 2021
: 181–192.
, https://docs.google.com/presentation/d/1MBBVh0wbaQnlxKwsPwMPEFVIMaH2tj6N... slides (Google Slides)
https://www.youtube.com/watch?v=bY5K3kRg3aw talk video (YouTube)
https://checkerframework.org/ implementation
https://doi.org/10.5281/zenodo.4902321 scripts and data
Verifying determinism in sequential programs
ICSE 2021, Proceedings of the 43rd International Conference on Software Engineering, 2021
: 37-49.
, https://homes.cs.washington.edu/~mernst/pubs/determinism-tr210201.pdf extended version (PDF)
https://github.com/t-rasmud/checker-framework/tree/nondet-checker implementation
https://doi.org/10.5281/zenodo.4536285 experimental data
Verifying determinism in sequential programs (extended version)
University of Washington Paul G. Allen School of Computer Science and Engineering:UW-CSE-2021-02-01, 2021
.
, Continuous compliance
ASE 2020: Proceedings of the 35th Annual International Conference on Automated Software Engineering, 2020
: 511-523.
, https://doi.org/10.5281/zenodo.3976221 scripts and data
https://github.com/awslabs/aws-kms-compliance-checker KMS checker
https://github.com/awslabs/aws-crypto-policy-compliance-checker crypto checker
https://github.com/kelloggm/bucket-compliance-checker bucket checker
https://github.com/kelloggm/no-literal-checker no literal checker
Verifying Object Construction
ICSE 2020, Proceedings of the 42nd International Conference on Software Engineering, 2020
: 1447-1458.
, https://docs.google.com/presentation/d/16aeJkvQqFqFkfs6Y1X6iwvGCsus37muE... slides (Google Slides)
https://checkerframework.org/ implementation
https://doi.org/10.5281/zenodo.3634993 scripts and data
Modular verification of web page layout
Proceedings of the ACM on Programming Languages 3:151, 2019
: 26. OOPSLA
, https://cassius.uwplse.org/ Troika, VizAssert, and Cassius tools
Lightweight verification of array indexing
ISSTA 2018, Proceedings of the 2018 International Symposium on Software Testing and Analysis, 2018
: 3-14.
, https://checkerframework.org/ implementation
Verifying that web pages have accessible layout
PLDI 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
Automatic formal verification for EPICS
ICALEPCS 2017: 16th International Conference on Accelerator and Large Experimental Physics Control Systems, 2017
.
, https://www.youtube.com/watch?v=CFSnkB5z0GA talk video (YouTube)
SpaceSearch: A library for building and verifying solver-aided tools
ICFP 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
ACM Transactions on Pro\-gramming Languages and Systems 39:3, 2017
: 11:1–11:54.
, Scalable verification of Border Gateway Protocol configurations with an SMT solver
OOPSLA 2016, Object-Oriented Programming Systems, Languages, and Applications, 2016
: 765-780.
, https://www.youtube.com/watch?v=eKB5Vj0PsIk talk video
https://bagpipe.uwplse.org Bagpipe homepage
Formal Semantics and Automated Verification for the Border Gateway Protocol
NetPL 2016: ACM SIGCOMM Workshop on Networking and Programming Languages (NetPL 2016), 2016
.
, https://github.com/uwplse/uwplse-bagpipe Bagpipe implementation
Investigating safety of a radiotherapy machine using system models with pluggable checkers
CAV 2016: 28th International Conference on Computer Aided Verification, 2016
: 23-41.
, Planning for change in a formal verification of the Raft consensus protocol
CPP 2016: 5th ACM SIGPLAN Conference on Certified Programs and Proofs, 2016
: 154-165.
, https://verdi.uwplse.org/ Verdi website
https://github.com/uwplse/verdi Verdi implementation
https://github.com/uwplse/verdi/tree/cpp2015 Raft implementation and proofs
https://homes.cs.washington.edu/~mernst/pubs/raft-proof-cpp2016.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/raft-proof-cpp2016-slides.pdf slides (PDF)
Bagpipe: Verified BGP configuration checking
University of Washington Department of Computer Science and Engineering:UW-CSE-16-01-01, 2016
.
, https://github.com/uwplse/uwplse-bagpipe Bagpipe implementation
https://homes.cs.washington.edu/~mernst/pubs/bgp-configuration-tr160101.pdf PDF
Lessons learned in game development for crowdsourced software formal verification
3GSE: USENIX Summit on Gaming, Games, and Gamification in Security Education, 2015
.
, Verdi: A framework for implementing and formally verifying distributed systems
PLDI 2015: Proceedings of the ACM SIGPLAN 2015 Conference on Programming Language Design and Implementation, 2015
: 357–368.
, https://verdi.uwplse.org/verdi_slides.pdf slides (PDF)
https://verdi.uwplse.org/ Verdi website
https://github.com/uwplse/verdi Verdi implementation
https://homes.cs.washington.edu/~mernst/pubs/verify-distsystem-pldi2015.pdf PDF
Toward a dependability case language and workflow for a radiation therapy system
SNAPL 2015: the Inaugural Summit oN Advances in Programming Languages, 2015
: 103–112.
, https://homes.cs.washington.edu/~mernst/pubs/dependability-case-snapl201... PDF
https://homes.cs.washington.edu/~mernst/pubs/dependability-case-snapl201... slides (PDF)
Verification games: Making verification fun
FTfJP: 14th Workshop on Formal Techniques for Java-like Programs, 2012
: 42–49.
, https://homes.cs.washington.edu/~mernst/pubs/verigames-ftfjp2012.pdf PDF
https://homes.cs.washington.edu/~mernst/pubs/verigames-ftfjp2012-slides.pdf slides (PDF)
Verification for legacy programs
VSTTE 2005: Verified Software: Theories, Tools, Experiments, 2005
.
, https://homes.cs.washington.edu/~mernst/pubs/legacy-verification-vstte20... PDF
https://homes.cs.washington.edu/~mernst/pubs/legacy-verification-vstte20... slides (PDF)
An overview of JML tools and applications
Software Tools for Technology Transfer 7:3, 2005
: 212–232.
, Using simulated execution in verifying distributed algorithms
Software Tools for Technology Transfer 6:1, 2004
: 67–76.
, https://homes.cs.washington.edu/~mernst/pubs/simexecution-vmcai2003-slid... slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/simexecution-vmcai2003-slid... slides (PowerPoint)
https://homes.cs.washington.edu/~mernst/pubs/simexecution-sttt2004.pdf PDF
Using simulated execution in verifying distributed algorithms
VMCAI 2003: Fourth International Conference on Verification, Model Checking and Abstract Interpretation, 2003
: 283–297.
, Invariant inference for static checking: An empirical evaluation
FSE 2002, Proceedings of the ACM SIGSOFT 10th International Symposium on the Foundations of Software Engineering, 2002
: 11–20.
, Automatic generation of program specifications
ISSTA 2002, Proceedings of the 2002 International Symposium on Software Testing and Analysis, 2002
: 232–242.
, Verifying distributed algorithms via dynamic analysis and theorem proving
MIT Laboratory for Computer Science:841, 2002
.
, Static verification of dynamically detected program invariants: Integrating Daikon and ESC/Java
RV 2001: Proceedings of the First Workshop on Runtime Verification, 2001
.
, Artificial Intelligence
Automatic SAT-compilation of planning problems
IJCAI '97: IJCAI-97, Proceedings of the Fifteenth International Joint Conference on Artificial Intelligence, 1997
: 1169–1176.
, ftp://ftp.cs.washington.edu/pub/ai/medic.tar.gz Medic implementation
https://homes.cs.washington.edu/~mernst/pubs/satcompile-ijcai97.pdf PDF
Image/map correspondence using curve matching
AAAI Spring Symposium on Robot Navigation, 1989
. Also published as Texas Instruments Technical Report CSC-SIUL-89-12
, Theory
Graphs induced by Gray codes
Discrete Mathematics 257, 2002
: 585–598.
, Method and system for controlling unauthorized access to information distributed to users
, 1996 . Assigned to Microsoft CorporationPlaying Konane mathematically: A combinatorial game-theoretic analysis
UMAP Journal 16:2, 1995
: 95–121.
, https://homes.cs.washington.edu/~mernst/pubs/konane-talk.ppt talk slides (PowerPoint, 1/17/2001)
https://homes.cs.washington.edu/~mernst/software/games.tar.gz implementation
https://homes.cs.washington.edu/~mernst/pubs/konane-tr9524.pdf PDF
Heraclitean encryption
Microsoft Research:MSR-TR-94-13, 1994
.
, Adequate Models for Recursive Program Schemes
MIT Department of Electrical Engineering and Computer Science, 1989
.
, ML typechecking is not efficient
Papers of the MIT ACM Undergraduate Conference, 1989
.
, Miscellaneous
The HaLoop approach to large-scale iterative data analysis
The VLDB Journal 21:2, 2012
: 169–190.
, https://homes.cs.washington.edu/~mernst/pubs/haloop-vldb2010-slides.pdf VLDB 2010 slides (PDF)
https://homes.cs.washington.edu/~mernst/pubs/haloop-vldb2010-slides.ppt VLDB 2010 slides (PowerPoint)
https://code.google.com/archive/p/haloop/ HaLoop implementation
https://homes.cs.washington.edu/~mernst/pubs/haloop-vldb2012.pdf PDF
Intellectual property in computing: (How) should software be protected? An industry perspective
MIT Artificial Intelligence Laboratory:AIM-1369, 1992
.
, https://homes.cs.washington.edu/~mernst/pubs/ipcolloq-press-release.pdf press release
https://homes.cs.washington.edu/~mernst/pubs/ipcolloq-transcript-aim1369... PDF