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.
? Tutorial for this page

Blake Loring

dblp:204/3658 · DBLP profile ↗
← Back
4ranked-venue papers
2as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 3 · 2 first-authorComputer networks · 1 · 1 since 2021

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.

Software engineering, system software, and programming languages
2 papers
Program analysis · 64% Programming languages and type systems · 28% Software testing · 8%
Network and information security
1 paper
Web and mobile security · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
symbolic execution
0.512021
Oblique: Accelerating Page Loads Using Symbolic Execution · NSDI 2021
Program analysis › symbolic execution
dynamic symbolic execution
0.412019
Sound regular expression semantics for dynamic symbolic execution of JavaScript · PLDI 2019
Programming languages and type systems › language semantics
regular expression semantics
0.412019
Sound regular expression semantics for dynamic symbolic execution of JavaScript · PLDI 2019
Web and mobile security
web security
0.112021
Oblique: Accelerating Page Loads Using Symbolic Execution · NSDI 2021
Software testing
test generation
0.112019
Sound regular expression semantics for dynamic symbolic execution of JavaScript · PLDI 2019

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

symbolic execution · 1.4string constraints · 0.4refinement · 0.4
YearPublicationVenuePosition
2021 Oblique: Accelerating Page Loads Using Symbolic Execution
Ronny Ko, James W. Mickens, Blake Loring, Ravi Netravali
NSDI3
2019 Sound regular expression semantics for dynamic symbolic execution of JavaScript
abstract
Support for regular expressions in symbolic execution-based tools for test generation and bug finding is insufficient. Common aspects of mainstream regular expression engines, such as backreferences or greedy matching, are ignored or imprecisely approximated, leading to poor test coverage or missed bugs. In this paper, we present a model for the complete regular expression language of ECMAScript 2015 (ES6), which is sound for dynamic symbolic execution of the test and exec functions. We model regular expression operations using string constraints and classical regular expressions and use a refinement scheme to address the problem of matching precedence and greediness. We implemented our model in ExpoSE, a dynamic symbolic execution engine for JavaScript, and evaluated it on over 1,000 Node.js packages containing regular expressions, demonstrating that the strategy is effective and can significantly increase the number of successful regular expression queries and therefore boost coverage.
Blake Loring, Duncan Mitchell, Johannes Kinder
PLDI1
2018 Checking cryptographic API usage with composable annotations (short paper)
abstract
Developers of applications relying on cryptographic libraries can easily make mistakes in their use. Popular dynamic languages such as JavaScript make testing or verifying such applications particularly challenging. In this paper, we present our ongoing work toward a methodology for automatically checking security properties in JavaScript code. Our main idea is to attach security annotations to values that encode properties of interest. We illustrate our idea using examples and, as an initial step in our line of work, we present a formalization of security annotations in a statically typed lambda calculus. As next steps, we will translate our annotations to a dynamically typed formalization of JavaScript such as λJS and implement a runtime checked type extension using code instrumentation for full JavaScript.
Duncan Mitchell, L. Thomas van Binsbergen, Blake Loring, Johannes Kinder
PEPM3
2017 ExpoSE: practical symbolic execution of standalone JavaScript
abstract
JavaScript has evolved into a versatile ecosystem for not just the web, but also a wide range of server-side and client-side applications. With this increased scope, the potential impact of bugs increases. We introduce ExpoSE, a dynamic symbolic execution engine for Node.js applications. ExpoSE automatically generates test cases to find bugs and cover as many paths in the target program as possible. We discuss the specific challenges for symbolic execution arising from the widespread use of regular expressions in such applications. In particular, we make explicit the issues of capture groups, backreferences, and greediness in JavaScript's flavor of regular expressions, and our models improve over previous work that only partially addressed these. We evaluate ExpoSE on three popular JavaScript libraries that make heavy use of regular expressions, and we report a previously unknown bug in the Minimist library.
Blake Loring, Duncan Mitchell, Johannes Kinder
SPIN1