Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.

David Herman

dblp:54/160 · DBLP profile ↗
← Back
8ranked-venue papers
3as first author
0since 2021 · last 2014
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 3 first-authorHuman-computer interaction and ubiquitous computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Network and information security
1 paper
Web and mobile security · 50% Systems and software security · 50%
Software engineering, system software, and programming languages
1 paper
Programming languages and type systems · 100%

Topics — the 5 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Systems and software security
information flow control
0.212014
Protecting Users by Confining JavaScript with COWL · OSDI 2014
Web and mobile security › javascript security
javascript isolation
0.212014
Protecting Users by Confining JavaScript with COWL · OSDI 2014
Programming languages and type systems › type theory
dependent types
0.112012
Dependent types for JavaScript · OOPSLA 2012
Programming languages and type systems › type systems
refinement types
0.112012
Dependent types for JavaScript · OOPSLA 2012
Programming languages and type systems
dynamic languages
0.012012
Dependent types for JavaScript · OOPSLA 2012

Methods — techniques the papers use, named apart from their topics

COWL · 0.2
YearPublicationVenuePosition
2014 Sweeten your JavaScript: hygienic macros for ES5
abstract
Lisp and Scheme have demonstrated the power of macros to enable programmers to evolve and craft languages. In languages with more complex syntax, macros have had less success. In part, this has been due to the difficulty in building expressive hygienic macro systems for such languages. JavaScript in particular presents unique challenges for macro systems due to ambiguities in the lexing stage that force the JavaScript lexer and parser to be intertwined.
Tim Disney, Nathan Faubion, David Herman, Cormac Flanagan
DLS3
2014 Typed objects in JavaScript
abstract
JavaScript's typed arrays have proven to be a crucial API for many JS applications, particularly those working with large amounts of data or emulating other languages. Unfortunately, the current typed array API offers no means of abstraction. Programmers are supplied with a simple byte buffer that can be viewed as an array of integers or floats, but nothing more.
Nicholas D. Matsakis, David Herman, Dmitry Lomov
DLS2
2014 Protecting Users by Confining JavaScript with COWL
Deian Stefan, Edward Z. Yang, Petr Marchenko, Alejandro Russo, David Herman, Brad Karp, David Mazières
OSDI5
2012 Dependent types for JavaScript
abstract
We present Dependent JavaScript (DJS), a statically typed dialect of the imperative, object-oriented, dynamic language. DJS supports the particularly challenging features such as run-time type-tests, higher-order functions, extensible objects, prototype inheritance, and arrays through a combination of nested refinement types, strong updates to the heap, and heap unrolling to precisely track prototype hierarchies. With our implementation of DJS, we demonstrate that the type system is expressive enough to reason about a variety of tricky idioms found in small examples drawn from several sources, including the popular book JavaScript: The Good Parts and the SunSpider benchmark suite.
Ravi Chugh, David Herman, Ranjit Jhala
OOPSLA2
2008 A Theory of Hygienic Macros
David Herman, Mitchell Wand
ESOP1
2007 Functional pearl: the great escape or, how to jump the border without getting caught
abstract
Filinski showed that callcc and a single mutable reference cell are sufficient to express the delimited control operators shift and reset. However, this implementation interacts poorly with dynamic bindings like exception handlers. We present a variation on Filinski's encoding of delimited continuations that behaves appropriately in the presence of exceptions and give an implementation in Standard ML of New Jersey. We prove the encoding correct with respect to the semantics of delimited dynamic binding.
David Herman
ICFP1
2004 Improving the static analysis of embedded languages via partial evaluation
David Herman, Philippe Meunier
ICFP1
1989 Building Routine Planning Systems and Explaining Their Behaviour
B. Chandrasekaran 0001, John R. Josephson, Anne M. Keuneke, David Herman
Int. J. Man Mach. Stud.4