My research interests include static and dynamic program analysis, programming language design in general, theoretical computer science, and foundations of software technology.
Within this area, I focus on analyzing higher-order functional programs by enforcing program behavior and managing access control. In particular, my research interests aim at analysis techniques for JavaScript, which make substantial use of contract monitoring, effect monitoring, and dynamic effect inference to provide static and dynamic program guarantees.
Much of my previous work concerns the development of TreatJS, a language-embedded higher-order contract system for JavaScript. TreatJS provides many novel aspects of both an applied and theoretical nature. Moreover, I developed a language-embedded sandbox for JavaScript, which allows running JavaScript code in isolation to the host application, and I contributed to the theory of regular expressions, formal languages, and automaton theory.
- Contract Systems
- Static and dynamic program analysis
- Higher-order Programming Languages
- Formal Languages
- Information Security
- JavaScript
For more information, see my Research Statement.
Projects
- TreatJS: Higher-Order Contracts for JavaScript
- TreatJS-Sandbox: Transacton-based Sandboxing of JavaScript
- Transparent Object Proxies for JavaScript
- Regular Expression Inequalities
- JSConTest2 - Efficient Access Analysis Using JavaScript Proxies
- TbDA - Type-based Dependency Analysis
Publications
-
Matthias Keil
Higher-order contracts for JavaScript (Ph.D. Thesis)
Faculty of Engineering, University of Freiburg, 2018
Book -
Matthias Keil, Peter Thiemann
Static Contract Simplification (Technical Report)
Institute for Computer Science, University of Freiburg, 2017
Paper, BibTex -
Matthias Keil, Peter Thiemann
Transaction-based Sandboxing for JavaScript (Technical Report)
Institute for Computer Science, University of Freiburg, 2016
Paper, BibTex -
Matthias Keil, Omer Farooq, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies for JavaScript (Extended Abstract)
Software Engineering-Konferenz, SE 2016
Vienna, Austria, February 24 - February 25, 2016
Paper, BibTex -
Matthias Keil, Peter Thiemann
On Contracts and Sandboxes for JavaScript
18. Kolloquium Programmiersprachen und Grundlagen der Programmierung, KPS 2015
Pörtschach am Wörthersee, Austria, October 5 - October 7, 2015
Paper, BibTex -
Matthias Keil, Peter Thiemann
Blame Assignment for Higher-Order Contracts with Intersection and Union
The 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015
Vancouver, British Columbia, Canada, August 31 - September 2, 2015
Paper, BibTex -
Matthias Keil, Peter Thiemann
TreatJS: Higher-Order Contracts for JavaScripts
The European Conference on Object-Oriented Programming, ECOOP 2015
Prague, Czech Republic, July 5-10, 2015
Paper, BibTex -
Matthias Keil, Peter Thiemann
TreatJS: Higher-Order Contracts for JavaScripts (Technical Report)
Institute for Computer Science, University of Freiburg, 2015
Paper, BibTex -
Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies for JavaScript
The European Conference on Object-Oriented Programming, ECOOP 2015
Prague, Czech Republic, July 5-10, 2015
Paper, BibTex -
Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies for JavaScript (Technical Report)
Institute for Computer Science, University of Freiburg, 2015
Paper, BibTex -
Matthias Keil, Peter Thiemann
Symbolic Solving of Extended Regular Expression Inequalities
IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2014
India International Centre, New Delhi, India, December 15-17, 2014
Paper, BibTex -
Matthias Keil, Peter Thiemann
Symbolic Solving of Extended Regular Expression Inequalities (Technical Report)
Institute for Computer Science, University of Freiburg, 2014
Paper, BibTex -
Matthias Keil, Peter Thiemann
On the Proxy Identity Crisis (Position Paper)
Institute for Computer Science, University of Freiburg, 2013
Paper, BibTex -
Matthias Keil, Peter Thiemann
Efficient Dynamic Access Analysis Using JavaScript Proxies
Dynamic Languages Symposium 2013, DLS'13
Indianapolis, Indiana, USA, October 28, 2013
Paper, BibTex -
Matthias Keil, Peter Thiemann
Efficient Dynamic Access Analysis Using JavaScript Proxies (Technical Report)
Institute for Computer Science, University of Freiburg, 2013
Paper, BibTex -
Matthias Keil, Peter Thiemann
Type-based Dependency Analysis for JavaScript
ACM SIGPLAN Eighth Workshop on Programming Languages and Analysis for Security, PLAS'13
Seattle, WA, USA, June 20, 2013
Paper, BibTex -
Matthias Keil, Peter Thiemann
Type-based Dependency Analysis for JavaScript (Technical Report)
Institute for Computer Science, University of Freiburg, 2013
Paper, BibTex
For a complete list of my publications, see my DBLP page, my ACM Portal author page, my publications on arXiv.org, my conf.researchr.org profile, or my Google Scholar publications page.
Talks
-
Transparent Object Proxies for JavaScript
Software Engineering-Konferenz, SE 2016
Vienna, Austria, February 24, 2016
Slides, Print, Handout -
On Contracts, Sandboxes, and Proxies for JavaScript
18. Kolloquium Programmiersprachen und Grundlagen der Programmierung, KPS 2015
Pörtschach am Wörthersee, Austria, October 5, 2015
Slides, Print, Handout -
Blame Assignment for Higher-Order Contracts with Intersection and Union
The 20th ACM SIGPLAN International Conference on Functional Programming, ICFP 2015
Vancouver, British Columbia, Canada, August 31 - September 2, 2015
Slides, Print, Handout -
On Contracts and Sandboxes for JavaScript
Invited talk at the Software Lab, TU Darmstadt
Darmstadt, Germany, August 2015
Slides, Print, Handout -
TreatJS: Higher-Order Contracts for JavaScripts
The European Conference on Object-Oriented Programming, ECOOP 2015
Prague, Czech Republic, July 5-10, 2015
Slides, Print, Handout -
Symbolic Solving of Extended Regular Expression Inequalities
IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2014
India International Centre, New Delhi, India, December 15-17, 2014
Slides, Print, Handout -
TreatJS: Higher-Order Contracts for JavaScript
Dagstuhl Seminar on Scripting Languages and Frameworks: Analysis and Verification
Wadern, Germany, June 2014
Slides, Print, Handout -
Efficient Dynamic Access Analysis Using JavaScript Proxies
Dynamic Languages Symposium 2013, DLS'13
Indianapolis, Indiana, USA, October 28, 2013
Slides -
Type-based Dependency Analysis for JavaScript
ACM SIGPLAN Eighth Workshop on Programming Languages and Analysis for Security, PLAS'13
Seattle, WA, USA, June 20, 2013
Slides -
Type-Based Dependency Analysis
RS³ Topic Workshop on Concurrent Noninterference
Darmstadt, Germany, June 2012
Slides, Print, Handout
Artifacts
- Matthias Keil, Peter Thiemann
TreatJS: Higher-Order Contracts for JavaScripts
The European Conference on Object-Oriented Programming, ECOOP 2015 Artifacts
Prague, Czech Republic, July 5-10, 2015
Paper, BibTex - Matthias Keil, Sankha Narayan Guria, Andreas Schlegel, Manuel Geffken, Peter Thiemann
Transparent Object Proxies in JavaScript
The European Conference on Object-Oriented Programming, ECOOP 2015 Artifacts
Prague, Czech Republic, July 5-10, 2015
Paper, BibTex
Theses
- Higher-Order Contracts for JavaScript
Dissertation, University of Freiburg, 2018 - Sicherheitsanalyse auf der Basis von Datenflusstheorie
Master Thesis, University of Freiburg, 2011 - Redundanzmechanismen für Storage-Area-Networks
Bachelor Thesis, University of Freiburg, 2008
Committees
- External Review Committee Member for ECOOP 2016
The European Conference on Object-Oriented Programming, ECOOP 2016 - Artifact Evaluation Committee Member for ECOOP 2016 Artifacts
The European Conference on Object-Oriented Programming, ECOOP 2016