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

Shangyin Tan

dblp:280/5457 · DBLP profile ↗
← Back
6ranked-venue papers
0as first author
5since 2021 · last 2024
0000-0001-9559-7417ORCID · corroborated

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

Software engineering, systems software and programming languages · 4 · 3 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Human-computer interaction and ubiquitous computing · 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
5 papers
Program analysis · 41% Compilers and program optimization · 24% Programming languages and type systems · 16%
Network and information security
1 paper
Blockchain and cryptocurrency security · 50% Systems and software security · 50%

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

TopicWeightPapersLastEvidence papers
Program analysis
symbolic execution
1.632023
Compiling Parallel Symbolic Execution with Continuations · ICSE 2023
LLSC: a parallel symbolic execution compiler for LLVM IR · ESEC/SIGSOFT FSE 2021
Compiling symbolic execution with staging and algebraic effects · Proc. ACM Program. Lang. 2020
Program analysis › symbolic execution
parallel symbolic execution
1.222023
Compiling Parallel Symbolic Execution with Continuations · ICSE 2023
LLSC: a parallel symbolic execution compiler for LLVM IR · ESEC/SIGSOFT FSE 2021
Systems and software security › vulnerability discovery › fuzzing
smart contract fuzzing
0.712023
ItyFuzz: Snapshot-Based Fuzzer for Smart Contract · ISSTA 2023
Blockchain and cryptocurrency security
smart contract security
0.712023
ItyFuzz: Snapshot-Based Fuzzer for Smart Contract · ISSTA 2023
Compilers and program optimization › compiler construction
compilation techniques
0.712023
Compiling Parallel Symbolic Execution with Continuations · ICSE 2023
Programming languages and type systems › program manipulation
continuation-passing style
0.712023
Compiling Parallel Symbolic Execution with Continuations · ICSE 2023
Software testing
fuzzing
0.712023
ItyFuzz: Snapshot-Based Fuzzer for Smart Contract · ISSTA 2023
Program synthesis and code generation › interactive program synthesis
interactive code generation
0.612022
INTENT: Interactive Tensor Transformation Synthesis · UIST 2022
Compilers and program optimization
code generation
0.512021
LLSC: a parallel symbolic execution compiler for LLVM IR · ESEC/SIGSOFT FSE 2021
Programming languages and type systems › computational effects
algebraic effects
0.412020
Compiling symbolic execution with staging and algebraic effects · Proc. ACM Program. Lang. 2020
Compilers and program optimization
partial evaluation
0.412020
Compiling symbolic execution with staging and algebraic effects · Proc. ACM Program. Lang. 2020
Usability and user experience research › psychology of programming
program comprehension
0.212022
INTENT: Interactive Tensor Transformation Synthesis · UIST 2022

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

snapshot · 1.3dataflow waypoint · 1.3comparison waypoint · 1.3within-subjects user study · 1.1program inference · 1.1partial evaluation · 0.7generative programming · 0.7symbolic execution · 0.5constraint solving · 0.5algebraic effects · 0.4
YearPublicationVenuePosition
2024 SlimFit: Memory-Efficient Fine-Tuning of Transformer-based Models Using Training Dynamics
abstract
Arash Ardakani, Altan Haan, Shangyin Tan, Doru Thom Popovici, Alvin Cheung, Costin Iancu, Koushik Sen. Proceedings of the 2024 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (Volume 1: Long Papers). 2024.
Arash Ardakani, Altan Haan, Shangyin Tan, Doru-Thom Popovici, Alvin Cheung, Costin Iancu, Koushik Sen
NAACL-HLT3
2023 Compiling Parallel Symbolic Execution with Continuations
abstract
Symbolic execution is a powerful program analysis and testing technique. Symbolic execution engines are usually implemented as interpreters, and the induced interpretation over-head can dramatically inhibit performance. Alternatively, implementation choices based on instrumentation provide a limited ability to transform programs. However, the use of compilation and code generation techniques beyond simple instrumentation remains underexplored for engine construction, leaving potential performance gains untapped. In this paper, we show how to tap some of these gains using sophisticated compilation techniques: We present Gensym, an optimizing symbolic-execution compiler that generates symbolic code which explores paths and generates tests in parallel. The key insight of GensYmis to compile symbolic execution tasks into cooperative concurrency via continuation-passing style, which further enables efficient parallelism. The design and implementation of Gensym is based on partial evaluation and generative programming techniques, which make it high-level and performant at the same time. We compare the performance of Gensym against the prior symbolic-execution compiler LLSC and the state-of-the-art symbolic interpreter KLEE. The results show an average 4.6× speedup for sequential execution and 9.4× speedup for parallel execution on 20 benchmark programs.
Guannan Wei 0001, Songlin Jia, Ruiqi Gao, Haotian Deng 0001, Shangyin Tan, Oliver Bracevac, Tiark Rompf
ICSE5
2023 ItyFuzz: Snapshot-Based Fuzzer for Smart Contract
abstract
Smart contracts are critical financial instruments, and their security is of utmost importance. However, smart contract programs are difficult to fuzz due to the persistent blockchain state behind all transactions. Mutating sequences of transactions are complex and often lead to a suboptimal exploration for both input and program spaces. In this paper, we introduce a novel snapshot-based fuzzer ItyFuzz for testing smart contracts. In ItyFuzz, instead of storing sequences of transactions and mutating from them, we snapshot states and singleton transactions. To explore interesting states, ItyFuzz introduces a dataflow waypoint mechanism to identify states with more potential momentum. ItyFuzz also incorporates comparison waypoints to prune the space of states. By maintaining snapshots of the states, ItyFuzz can synthesize concrete exploits like reentrancy attacks quickly. Because ItyFuzz has second-level response time to test a smart contract, it can be used for on-chain testing, which has many benefits compared to local development testing. Finally, we evaluate ItyFuzz on real-world smart contracts and some hacked on-chain DeFi projects. ItyFuzz outperforms existing fuzzers in terms of instructional coverage and can find and generate realistic exploits for on-chain projects quickly.
Chaofan Shou, Shangyin Tan, Koushik Sen
ISSTA2
2022 INTENT: Interactive Tensor Transformation Synthesis
abstract
There is a growing interest in adopting Deep Learning (DL) given its superior performance in many domains. However, modern DL frameworks such as TensorFlow often come with a steep learning curve. In this work, we propose INTENT, an interactive system that infers user intent and generates corresponding TensorFlow code on behalf of users. INTENT helps users understand and validate the semantics of generated code by rendering individual tensor transformation steps with intermediate results and element-wise data provenance. Users can further guide INTENT by marking certain TensorFlow operators as desired or undesired, or directly manipulating the generated code. A within-subjects user study with 18 participants shows that users can finish programming tasks in TensorFlow more successfully with only half the time, compared with a variant of INTENT that has no interaction or visualization support.
Zhanhui Zhou, Man To Tang, Qiping Pan, Shangyin Tan, Xinyu Wang 0006, Tianyi Zhang 0001
UIST4
2021 LLSC: a parallel symbolic execution compiler for LLVM IR
abstract
We present LLSC, a prototype compiler for nondeterministic parallel symbolic execution of the LLVM intermediate representation (IR). Given an LLVM IR program, LLSC generates code preserving the symbolic execution semantics and orchestrating solver invocations. The generated code runs efficiently, since the code has eliminated the interpretation overhead and explores multiple paths in parallel. To the best of our knowledge, LLSC is the first compiler for fork-based symbolic execution semantics that can generate parallel execution code.
Guannan Wei 0001, Shangyin Tan, Oliver Bracevac, Tiark Rompf
ESEC/SIGSOFT FSE2
2020 Compiling symbolic execution with staging and algebraic effects
abstract
Building effective symbolic execution engines poses challenges in multiple dimensions: an engine must correctly model the program semantics, provide flexibility in symbolic execution strategies, and execute them efficiently. This paper proposes a principled approach to building correct, flexible, and efficient symbolic execution engines, directly rooted in the semantics of the underlying language in terms of a high-level definitional interpreter. The definitional interpreter induces algebraic effects to abstract over semantic variants of symbolic execution, e.g., collecting path conditions as a state effect and path exploration as a nondeterminism effect. Different handlers of these effects give rise to different symbolic execution strategies, making execution strategies orthogonal to the symbolic execution semantics, thus improving flexibility. Furthermore, by annotating the symbolic definitional interpreter with binding-times and specializing it to the input program via the first Futamura projection, we obtain a "symbolic compiler", generating efficient instrumented code having the symbolic execution semantics. Our work reconciles the interpretation- and instrumentation-based approaches to building symbolic execution engines in a uniform framework. We illustrate our approach on a simple imperative language step-by-step and then scale up to a significant subset of LLVM IR. We also show effect handlers for common path selection strategies. Evaluating our prototype's performance shows speedups of 10~30x over the unstaged counterpart, and ~2x over KLEE, a state-of-the-art symbolic interpreter for LLVM IR.
Guannan Wei 0001, Oliver Bracevac, Shangyin Tan, Tiark Rompf
Proc. ACM Program. Lang.3