VLDB 2026 Research / reviewers in the wild / expert
Brendan Eich
dblp:80/6754
· DBLP profile ↗
6ranked-venue papers
1as first author
0since 2021 · last 2020
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 5 · 1 first-authorSystems, architecture and hardware · 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.
| Software engineering, system software, and programming languages
2 papers |
Runtime systems and virtual machines · 59% Compilers and program optimization · 34% Programming languages and type systems · 7% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Performance modeling and evaluation · 67% Electronic design automation · 33% |
Topics — the 9 heaviest of 9, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Electronic design automation
benchmark generation |
0.1 | 1 | 2011 | Automated construction of JavaScript benchmarks · OOPSLA 2011 |
Performance modeling and evaluation
benchmarking |
0.1 | 1 | 2011 | Automated construction of JavaScript benchmarks · OOPSLA 2011 |
Performance modeling and evaluation
workload characterization |
0.1 | 1 | 2011 | Automated construction of JavaScript benchmarks · OOPSLA 2011 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Runtime systems and virtual machines › dynamic compilation › just-in-time compilation
trace-based compilation |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Compilers and program optimization › program specialization
type specialization |
0.1 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Compilers and program optimization › dynamic optimization
dynamic language optimization |
0.0 | 1 | 2011 | Automated construction of JavaScript benchmarks · OOPSLA 2011 |
Runtime systems and virtual machines › virtual machine implementation
javascript engine |
0.0 | 1 | 2011 | Automated construction of JavaScript benchmarks · OOPSLA 2011 |
Programming languages and type systems
dynamic languages |
0.0 | 1 | 2009 | Trace-based just-in-time type specialization for dynamic languages · PLDI 2009 |
Methods — techniques the papers use, named apart from their topics
record and replay · 0.2instrumentation · 0.2type specialization · 0.1trace compilation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2020 | JavaScript: the first 20 yearsabstractHow a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells the story of the creation, design, evolution, and standardization of the JavaScript language over the period of 1995--2015. But the story is not only about the technical details of the language. It is also the story of how people and organizations competed and collaborated to shape the JavaScript language which dominates the Web of 2020. Allen Wirfs-Brock, Brendan Eich |
Proc. ACM Program. Lang. | 2 |
| 2011 | Compartmental memory management in a modern web browserabstractSince their inception, the usage pattern of web browsers has changed substantially. Rather than sequentially navigating static web sites, modern web browsers often manage a large number of simultaneous tabs displaying dynamic web content, each of which might be running a substantial amount of client-side JavaScript code. This environment introduced a new degree of parallelism that was not fully embraced by the underlying JavaScript virtual machine architecture. We propose a novel abstraction for multiple disjoint JavaScript heaps, which we call compartments. We use the notion of document origin to cluster objects into separate compartments.Objects within a compartment can reference each other directly. Objects across compartments can only reference each other through wrappers. Our approach reduces garbage collection pause times by permitting collection of sub-heaps (compartments), and we can use cross-compartment wrappers to enforce cross origin object access policy. Gregor Wagner, Andreas Gal, Christian Wimmer, Brendan Eich, Michael Franz |
ISMM | 4 |
| 2011 | Automated construction of JavaScript benchmarksabstractJavaScript is a highly dynamic language for web-based applications. Innovative implementation techniques for improving its speed and responsiveness have been developed in recent years. Industry benchmarks such as WebKit SunSpider are often cited as a measure of the efficacy of these techniques. However, recent studies have shown that these benchmarks fail to accurately represent the dynamic nature of modern JavaScript applications, and so may be poor predictors of real-world performance. Worse, they may guide the development of optimizations which are unhelpful for real applications. Our goal is to develop a tool and techniques to automate the creation of realistic and representative benchmarks from existing web applications. We propose a record-and-replay approach to capture JavaScript sessions which has sufficient fidelity to accurately recreate key characteristics of the original application, and at the same time is sufficiently flexible that a recording produced on one platform can be replayed on a different one. We describe JSBench, a flexible tool for workload capture and benchmark generation, and demonstrate its use in creating eight benchmarks based on popular sites. Using a variety of runtime metrics collected with instrumented versions of Firefox, Internet Explorer, and Safari, we show that workloads created by JSBench match the behavior of the original web applications. Gregor Richards, Andreas Gal, Brendan Eich, Jan Vitek |
OOPSLA | 3 |
| 2009 | Trace-based just-in-time type specialization for dynamic languagesabstractDynamic languages such as JavaScript are more difficult to compile than statically typed ones. Since no concrete type information is available, traditional compilers need to emit generic code that can handle all possible type combinations at runtime. We present an alternative compilation technique for dynamically-typed languages that identifies frequently executed loop traces at run-time and then generates machine code on the fly that is specialized for the actual dynamic types occurring on each path through the loop. Our method provides cheap inter-procedural type specialization, and an elegant and efficient way of incrementally compiling lazily discovered alternative paths through nested loops. We have implemented a dynamic compiler for JavaScript based on our technique and we have measured speedups of 10x and more for certain benchmark programs. Andreas Gal, Brendan Eich, Mike Shaver, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Mason Chang, Michael Franz |
PLDI | 2 |
| 2009 | Tracing for web 3.0: trace compilation for the next generation web applicationsabstractToday's web applications are pushing the limits of modern web browsers. The emergence of the browser as the platform of choice for rich client-side applications has shifted the use of in-browser JavaScript from small scripting programs to large computationally intensive application logic. For many web applications, JavaScript performance has become one of the bottlenecks preventing the development of even more interactive client side applications. While traditional just-in-time compilation is successful for statically typed virtual machine based languages like Java, compiling JavaScript turns out to be a challenging task. Many JavaScript programs and scripts are short-lived, and users expect a responsive browser during page loading. This leaves little time for compilation of JavaScript to generate machine code.We present a trace-based just-in-time compiler for JavaScript that uses run-time profiling to identify frequently executed code paths, which are compiled to executable machine code. Our approach increases execution performance by up to 116% by decomposing complex JavaScript instructions into a simple Forth-based representation, and then recording the actually executed code path through this low-level IR. Giving developers more computational horsepower enables a new generation of innovative web applications. Mason Chang, Edwin W. Smith, Rick Reitmaier, Michael Bebenita, Andreas Gal, Christian Wimmer, Brendan Eich, Michael Franz |
VEE | 7 |
| 2005 | JavaScript at ten yearsabstractThis talk presents the tumultuous history of JavaScript, from its first appearance in Netscape 2 beta releases in the fall of 1995 through the present, with emphasis on the unvarnished, real-world side of designing, implementing, shipping, and standardizing a functional programming language used by millions of people. JavaScript was conceived of as an "object-based scripting language", but its inspiration came originally from Scheme, with an admixture of Self. Designing a language to fit the constraints of the target audience of HTML authors, the embedding browser application, and the market conditions of that time was challenging. We discuss what worked and what did not, and how the language evolved due to competition and de jure standardization. The talk ranges widely over the history of the web, including the recent renaissance of JavaScript and its development in the ECMA standards group. We close by presenting new work likely to appear in the next version of the language. Brendan Eich |
ICFP | 1 |