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.

Esben Andreasen

dblp:143/2610 · also Esben Sparre Andreasen · DBLP profile ↗
← Back
5ranked-venue papers
2as first author
0since 2021 · last 2016
—ORCID · none

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

Software engineering, systems software and programming languages · 5 · 2 first-author

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
3 papers
Program analysis · 62% Debugging and program repair · 20% Software testing · 12%

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

TopicWeightPapersLastEvidence papers
Debugging and program repair
fault localization
0.322016
Feedback-directed instrumentation for deployed JavaScript applications · ICSE 2016
Determinacy in static analysis for jQuery · OOPSLA 2014
Program analysis › concurrent program analysis
determinacy analysis
0.212014
Determinacy in static analysis for jQuery · OOPSLA 2014
Program analysis › dynamic language analysis
javascript analysis
0.212014
Determinacy in static analysis for jQuery · OOPSLA 2014
Program analysis
library analysis
0.212014
Determinacy in static analysis for jQuery · OOPSLA 2014
Program analysis › data flow analysis
static dataflow analysis
0.212014
Determinacy in static analysis for jQuery · OOPSLA 2014
Program analysis
symbolic execution
0.212014
SymJS: automatic symbolic testing of JavaScript web applications · SIGSOFT FSE 2014
Software testing
test generation
0.212014
SymJS: automatic symbolic testing of JavaScript web applications · SIGSOFT FSE 2014
Runtime systems and virtual machines › dynamic language implementation
javascript runtime
0.112016
Feedback-directed instrumentation for deployed JavaScript applications · ICSE 2016

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

feedback-directed instrumentation · 0.2symbolic virtual machine · 0.2string-numeric solver · 0.2dynamic taint analysis · 0.2constant propagation · 0.2branch pruning · 0.2
YearPublicationVenuePosition
2016 Trace Typing: An Approach for Evaluating Retrofitted Type Systems
abstract
Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity, or performance. In such cases, type system developers must strike a delicate balance between disallowing certain coding patterns to keep the type system simple, or including them at the expense of additional complexity and effort. Thus far, the process for designing retrofitted type systems has been largely ad hoc, because evaluating multiple variations of a type system on large bodies of existing code is a significant undertaking. We present trace typing: a framework for automatically and quantitatively evaluating variations of a retrofitted type system on large code bases. The trace typing approach involves gathering traces of program executions, inferring types for instances of variables and expressions occurring in a trace, and merging types according to merge strategies that reflect specific (combinations of) choices in the source-level type system design space. We evaluated trace typing through several experiments. We compared several variations of type systems retrofitted onto JavaScript, measuring the number of program locations with type errors in each case on a suite of over fifty thousand lines of JavaScript code. We also used trace typing to validate and guide the design of a new retrofitted type system that enforces fixed object layout for JavaScript objects. Finally, we leveraged the types computed by trace typing to automatically identify tag tests --- dynamic checks that refine a type --- and examined the variety of tests identified.
Esben Andreasen, Colin S. Gordon, Satish Chandra 0001, Manu Sridharan, Frank Tip, Koushik Sen
ECOOP1
2016 Feedback-directed instrumentation for deployed JavaScript applications
abstract
Many bugs in JavaScript applications manifest themselves as objects that have incorrect property values when a failure occurs. For this type of error, stack traces and log files are often insufficient for diagnosing problems. In such cases, it is helpful for developers to know the control flow path from the creation of an object to a crashing statement. Such crash paths are useful for understanding where the object originated and whether any properties of the object were corrupted since its creation.
Magnus Madsen, Frank Tip, Esben Andreasen, Koushik Sen, Anders Møller
ICSE3
2014 String Analysis for Dynamic Field Access
abstract
In JavaScript, and scripting languages in general, dynamic field access is a commonly used feature. Unfortunately, current static analysis tools either completely ignore dynamic field access or use overly conservative approximations that lead to poor precision and scalability. We present new string domains to reason about dynamic field access in a static analysis tool. A key feature of the domains is that the equal, concatenate and join operations take $\mathcal{O}$ (1) time. Experimental evaluation on four common JavaScript libraries, including jQuery and Prototype, shows that traditional string domains are insufficient. For instance, the commonly used constant string domain can only ensure that at most 21% dynamic field accesses are without false positives. In contrast, our string domain $\mathcal{H}$ ensures no false positives for up to 90% of all dynamic field accesses. We demonstrate that a dataflow analysis equipped with the $\mathcal{H}$ domain gains significant precision resulting in an analysis speedup of more than 1.5x for 7 out of 10 benchmark programs.
Magnus Madsen, Esben Andreasen
CC2
2014 Determinacy in static analysis for jQuery
abstract
Static analysis for JavaScript can potentially help programmers find errors early during development. Although much progress has been made on analysis techniques, a major obstacle is the prevalence of libraries, in particular jQuery, which apply programming patterns that have detrimental consequences on the analysis precision and performance. Previous work on dynamic determinacy analysis has demonstrated how information about program expressions that always resolve to a fixed value in some call context may lead to significant scalability improvements of static analysis for such code. We present a static dataflow analysis for JavaScript that infers and exploits determinacy information on-the-fly, to enable analysis of some of the most complex parts of jQuery. The analysis combines selective context and path sensitivity, constant propagation, and branch pruning, based on a systematic investigation of the main causes of analysis imprecision when using a more basic analysis.
Esben Andreasen, Anders Møller
OOPSLA1
2014 SymJS: automatic symbolic testing of JavaScript web applications
abstract
We present SymJS, a comprehensive framework for automatic testing of client-side JavaScript Web applications. The tool contains a symbolic execution engine for JavaScript, and an automatic event explorer for Web pages. Without any user intervention, SymJS can automatically discover and explore Web events, symbolically execute the associated JavaScript code, refine the execution based on dynamic feedbacks, and produce test cases with high coverage. The symbolic engine contains a symbolic virtual machine, a string-numeric solver, and a symbolic executable DOM model. SymJS's innovations include a novel symbolic virtual machine for JavaScript Web, symbolic+dynamic feedback directed event space exploration, and dynamic taint analysis for enhancing event sequence construction. We illustrate the effectiveness of SymJS on standard JavaScript benchmarks and various real-life Web applications. On average SymJS achieves over 90% line coverage for the benchmark programs, significantly outperforming existing methods.
Esben Andreasen, Indradeep Ghosh
SIGSOFT FSE2