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

Shu-yu Guo

dblp:04/6975 · DBLP profile ↗
← Back
5ranked-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-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
Concurrent programming · 44% Programming languages and type systems · 37% Program verification · 7%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems
language semantics
0.412020
Repairing and mechanising the JavaScript relaxed memory model · PLDI 2020
Concurrent programming
memory models
0.412020
Repairing and mechanising the JavaScript relaxed memory model · PLDI 2020
Concurrent programming › memory models
weak memory models
0.412020
Repairing and mechanising the JavaScript relaxed memory model · PLDI 2020
Programming languages and type systems › type inference
dynamic type inference
0.112012
Fast and precise hybrid type inference for JavaScript · PLDI 2012
Programming languages and type systems
type inference
0.112012
Fast and precise hybrid type inference for JavaScript · PLDI 2012
Program verification
mechanized verification
0.112020
Repairing and mechanising the JavaScript relaxed memory model · PLDI 2020
Compilers and program optimization › compiler correctness
compiler optimization correctness
0.112011
The essence of compiling with traces · POPL 2011
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.112011
The essence of compiling with traces · POPL 2011

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

mechanization · 0.4axiomatic memory model · 0.4run-time type barriers · 0.1points-to analysis · 0.1operational semantics · 0.1bisimulation · 0.1
YearPublicationVenuePosition
2020 Repairing and mechanising the JavaScript relaxed memory model
abstract
Modern JavaScript includes the SharedArrayBuffer feature, which provides access to true shared memory concurrency. SharedArrayBuffers are simple linear buffers of bytes, and the JavaScript specification defines an axiomatic relaxed memory model to describe their behaviour. While this model is heavily based on the C/C++11 model, it diverges in some key areas. JavaScript chooses to give a well-defined semantics to data-races, unlike the "undefined behaviour" of C/C++11. Moreover, the JavaScript model is mixed-size. This means that its accesses are not to discrete locations, but to (possibly overlapping) ranges of bytes.
Conrad Watt, Christopher Pulte, Anton Podkopaev, Guillaume Barbier, Stephen Dolan, Shaked Flur, Jean Pichon-Pharabod, Shu-yu Guo
PLDI8
2018 EMME: A Formal Tool for ECMAScript Memory Model Evaluation
Cristian Mattarei, Clark W. Barrett, Shu-yu Guo, Bradley Nelson, Ben Smith
TACAS (2)3
2015 Optimization Coaching for JavaScript
abstract
The performance of dynamic object-oriented programming languages such as JavaScript depends heavily on highly optimizing just-in-time compilers. Such compilers, like all compilers, can silently fall back to generating conservative, low-performance code during optimization. As a result, programmers may inadvertently cause performance issues on users' systems by making seemingly inoffensive changes to programs. This paper shows how to solve the problem of silent optimization failures. It specifically explains how to create a so-called optimization coach for an object-oriented just-in-time-compiled programming language. The development and evaluation build on the SpiderMonkey JavaScript engine, but the results should generalize to a variety of similar platforms.
Vincent St-Amour, Shu-yu Guo
ECOOP2
2012 Fast and precise hybrid type inference for JavaScript
abstract
JavaScript performance is often bound by its dynamically typed nature. Compilers do not have access to static type information, making generation of efficient, type-specialized machine code difficult. We seek to solve this problem by inferring types. In this paper we present a hybrid type inference algorithm for JavaScript based on points-to analysis. Our algorithm is fast, in that it pays for itself in the optimizations it enables. Our algorithm is also precise, generating information that closely reflects the program's actual behavior even when analyzing polymorphic code, by augmenting static analysis with run-time type barriers.
Brian Hackett, Shu-yu Guo
PLDI2
2011 The essence of compiling with traces
abstract
The technique of trace-based just-in-time compilation was introduced by Bala et al. and was further developed by Gal et al. It currently enjoys success in Mozilla Firefox's JavaScript engine. A trace-based JIT compiler leverages run-time profiling to optimize frequently-executed paths while enabling the optimized code to ``bail out'' to the original code when the path has been invalidated. This optimization strategy differs from those of other JIT compilers and opens the question of which trace optimizations are sound. In this paper we present a framework for reasoning about the soundness of trace optimizations, and we show that some traditional optimization techniques are sound when used in a trace compiler while others are unsound. The converse is also true: some trace optimizations are sound when used in a traditional compiler while others are unsound. So, traditional and trace optimizations form incomparable sets. Our setting is an imperative calculus for which tracing is explicitly spelled out in the semantics. We define optimization soundness via a notion of bisimulation, and we show that sound optimizations lead to confluence and determinacy of stores.
Shu-yu Guo, Jens Palsberg
POPL1