Dave Herman

Dave Principal Researcher and Director of Strategy
Mozilla Research
San Francisco, CA

PhD, 2010
Advisor: Mitchell Wand
Programming Research Laboratory
College of Computer and Information Science
Northeastern University

Email: dherman@ccs.neu.edu
Web: http://calculist.org
Twitter: @littlecalculist

My research interests include programming language design and specification, hybrid and multi-paradigm languages, hygienic macro systems, embedded and domain-specific languages, advanced control constructs, program analysis, and expressive programs with expressible proofs.

I am a member of Ecma TC39, the technical committee specifying and standardizing the next version of ECMAScript, better known as JavaScript.

Papers

Sweeten Your JavaScript: Hygienic Macros for ES5, Tim Disney, Nathan Faubion, David Herman, and Cormac Flanagan. DLS, 2014. Paper [bib, pdf].

@inproceedings { DisneyFaubionHermanFlanagan14:SweetJS,
    title = {Sweeten Your {J}ava{S}cript: Hygienic Macros for {ES5}},
    author = {Tim Disney and Nathan Faubion and David Herman and Cormac Flanagan},
    booktitle = {Proceedings of the Dynamic Languages Symposium},
    year = 2014,
    month = oct,
    location = {Portland, OR}
}    

Typed Objects in JavaScript, Nicholas D. Matsakis, David Herman, and Dmitry Lomov. DLS, 2014. Paper [bib, pdf].

@inproceedings { MatsakisHermanLomov14:TypedObjects,
    title = {Typed Objects in {J}ava{S}cript},
    author = {Nicholas D. Matsakis and David Herman and Dmitry Lomov},
    booktitle = {Proceedings of the Dynamic Languages Symposium},
    year = 2014,
    month = oct,
    location = {Portland, OR}
}    

Protecting Users by Confining JavaScript with COWL, Deian Stefan, Edward Z. Yang, Petr Marchenko, Alejandro Russo, Dave Herman, Brad Karp, and David Mazières. OSDI, 2014. Paper [bib, pdf].

@inproceedings { StefanYangMarchenkoRussoHermanKarpMazieres14:COWL,
    title = {Protecting Users by Confining {J}ava{S}cript with {COWL}},
    author = {Deian Stefan and Edward Z. Yang and Petr Marchenko and Alejandro Russo and Dave Herman and Brad Karp and David Mazi{\`e}res},
    booktitle = {11th USENIX Symposium on Operating Systems Design and Implementation ({OSDI} 14)},
    year = 2014,
    month = oct,
    pages = {131--146},
    location = {Broomfield, CO}
}    

HPar: A Practical Parallel Parser for HTML — Taming HTML Complexities for Parallel Parsing, Zhijia Zhao, Michael Bebenita, David Herman, Jianhua Sun, and Xipeng Shen. TACO, 2013. Paper [bib, pdf].

@article { ZhaoBebenitaHermanSunShen13:HPar,
    title = {HPar: A Practical Parallel Parser for {HTML}---Taming HTML Complexities for Parallel Parsing},
    author = {Zhijia Zhao and Michael Bebenita and David Herman and Jianhua Sun and Xipeng Shen},
    journal = {ACM Transactions on Architecture and Code Optimization},
    issue_date = {December 2013},
    year = {2013},
    month = dec,
    articleno = {44},
    pages = {44:1--44:25},
    numpages = {25},
    publisher = {ACM},
    address = {New York, NY}
}    

Dependent Types for JavaScript, Ravi Chugh, David Herman, and Ranjit Jhala. OOPSLA, 2012. Paper [bib, pdf].

@inproceedings { ChughHermanJhala12:DJS,
    title = {Dependent Types for {J}ava{S}cript},
    author = {Ravi Chugh and David Herman and Ranjit Jhala},
    booktitle = {Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications},
    year = 2012,
    month = oct,
    location = {Tucson, AZ}
}    

Status Report: Dependent Types for JavaScript, Ravi Chugh, David Herman, and Ranjit Jhala. STOP, 2012. Paper [bib, pdf].

@inproceedings { ChughHermanJhala12:DJSStatus,
    title = {Status Report: Dependent Types for {J}ava{S}cript},
    author = {Ravi Chugh and David Herman and Ranjit Jhala},
    booktitle = {Proceedings of the International Workshop on Scripts to Programs},
    year = 2012,
    month = jun,
    location = {Beijing, China}
}    

A Theory of Typed Hygienic Macros, David Herman. Northeastern University, 2010. Dissertation [bib, pdf]. Defense [key, pdf].

@phdthesis { Herman10:Theory,
    title = {A Theory of Typed Hygienic Macros},
    author = {David Herman},
    school = {Northeastern University},
    address = {Boston, MA},
    year = 2010,
    month = may
}

A Few Principles of Macro Design, David Herman and David Van Horn. Scheme Workshop, 2008. Paper [bib, pdf].

@inproceedings { HermanVanHorn08:Design,
    title = {A Few Principles of Macro Design},
    author = {David Herman and David Van Horn},
    booktitle = {{S}cheme {W}orkshop '08: Proceedings of the Ninth 
                 Scheme and Functional Programming Workshop},
    year = 2008,
    month = sep,
    location = {Victoria, British Columbia}
}    

Implementing Continuation Marks in JavaScript, John Clements, Ayswarya Sundaram, and David Herman. Scheme Workshop, 2008. Paper [bib, pdf].

@inproceedings { ClementsAyswaryaHerman08:cmjs,
    title = {Implementing Continuation Marks in {J}ava{S}cript},
    author = {John Clements and Ayswarya Sundaram and David Herman},
    booktitle = {{S}cheme {W}orkshop '08: Proceedings of the Ninth 
                 Scheme and Functional Programming Workshop},
    year = 2008,
    month = sep,
    location = {Victoria, British Columbia}
}    

A Theory of Hygienic Macros. David Herman and Mitchell Wand. European Symposium On Programming (ESOP), 2008. Paper [bib, pdf].

@inproceedings{ HermanWand08:Hygiene,
    title = {A Theory of Hygienic Macros},
    author = {David Herman and Mitchell Wand},
    booktitle = {{ESOP} '08: Proceedings of the Seventeenth
                 European Symposium On Programming},
    year = 2008,
    month = mar,
    location = {Budapest, Hungary},
}

Status Report: Specifying JavaScript with ML. David Herman and Cormac Flanagan. ML Workshop, 2007. Paper [bib, pdf]. Talk [pdf].

@inproceedings{ HermanFlanagan07:JavaScript,
    title = {Status Report: Specifying {J}ava{S}cript with {ML}},
    author = {David Herman and Cormac Flanagan},
    booktitle = {{ML} '07: Proceedings of the 2007 Workshop on {ML}},
    year = 2007,
    month = oct,
    location = {Freiburg, Germany},
    pages = {47--52},
    isbn = {978-1-59593-676-9}
}

Functional Pearl: The Great Escape, or how to jump the border without getting caught. David Herman. International Conference on Functional Programming (ICFP), 2007. Paper [bib, pdf]. Code [sml]. Proofs [coq].

@inproceedings{ Herman07:GreatEscape,
    title = {Functional Pearl: The Great Escape.
             Or, How to Jump the Border Without Getting Caught},
    author = {David Herman},
    booktitle = {{ICFP} '07: Proceedings of the Twelfth {ACM SIGPLAN}
                 International Conference on Functional Programming},
    year = 2007,
    month = oct,
    location = {Freiburg, Germany},
    pages = {157--164},
    isbn = {978-1-59593-815-2}
}

Space-Efficient Gradual Typing. David Herman, Aaron Tomb, and Cormac Flanagan. Trends in Functional Programming (TFP), 2007. Best Student Paper Award. Paper [bib, pdf]. Talk [ppt, pdf]

@inproceedings{ HermanTombFlanagan07:SpaceEfficient,
    title = {Space-Efficient Gradual Typing},
    author = {David Herman and Aaron Tomb and Cormac Flanagan},
    booktitle = {{TFP} '07: The Eighth Symposium on
                 Trends in Functional Programming},
    year = 2007,
    month = apr,
    location = {New York, NY},
    pages = {404--419},
}

Improving the Static Analysis of Embedded Programs via Partial Evaluation. David Herman and Philippe Meunier. International Conference on Functional Programming (ICFP), 2004. [bib, ps, pdf]

@inproceedings{ HermanMeunier04:StaticAnalysis,
    title = {Improving the Static Analysis of Embedded Languages
             via Partial Evaluation},
    author = {David Herman and Philippe Meunier},
    booktitle = {{ICFP} '04: Proceedings of the Ninth {ACM SIGPLAN}
                 International Conference on Functional Programming},
    year = 2004,
    month = sep,
    location = {Snowbird, UT},
    pages = {16--27},
    isbn = {1-58113-905-5}
}