Demo Data from SIGIR 2026 / reviewers in the wild / expert
Youngju Song
dblp:201/4837
· DBLP profile ↗
9ranked-venue papers
3as first author
6since 2021 · last 2025
0000-0001-7093-3824ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 9 · 3 first-author · 6 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
8 papers |
Program verification · 46% Compilers and program optimization · 25% Programming languages and type systems · 21% | |
| Theoretical computer science
1 paper |
Logic in computer science · 100% |
Topics — the 22 heaviest of 23, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization
verified compilation |
1.6 | 3 | 2025 | Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer Casting · Proc. ACM Program. Lang. 2025 CompCertM: CompCert with C-assembly linking and lightweight modular verification · Proc. ACM Program. Lang. 2020 Crellvm: verified credible compilation for LLVM · PLDI 2018 |
Programming languages and type systems
language semantics |
1.3 | 2 | 2023 | DimSum: A Decentralized Approach to Multi-language Semantics and Verification · Proc. ACM Program. Lang. 2023 Stuttering for Free · Proc. ACM Program. Lang. 2023 |
Program verification › modular verification
compositional compiler verification |
1.1 | 2 | 2023 | DimSum: A Decentralized Approach to Multi-language Semantics and Verification · Proc. ACM Program. Lang. 2023 CompCertM: CompCert with C-assembly linking and lightweight modular verification · Proc. ACM Program. Lang. 2020 |
Programming languages and type systems › language semantics › memory model semantics
integer-pointer casts |
0.9 | 1 | 2025 | Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer Casting · Proc. ACM Program. Lang. 2025 |
Concurrent programming
memory models |
0.9 | 1 | 2025 | Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer Casting · Proc. ACM Program. Lang. 2025 |
Program verification
program logic |
0.9 | 1 | 2025 | Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer Casting · Proc. ACM Program. Lang. 2025 |
Program verification
concurrent program verification |
0.7 | 1 | 2023 | Fair Operational Semantics · Proc. ACM Program. Lang. 2023 |
Program verification › refinement
contextual refinement |
0.7 | 1 | 2023 | Conditional Contextual Refinement · Proc. ACM Program. Lang. 2023 |
Program verification › temporal logic verification
fairness verification |
0.7 | 1 | 2023 | Fair Operational Semantics · Proc. ACM Program. Lang. 2023 |
Programming languages and type systems › language semantics › formal semantics
multi-language semantics |
0.7 | 1 | 2023 | DimSum: A Decentralized Approach to Multi-language Semantics and Verification · Proc. ACM Program. Lang. 2023 |
Program verification › program logic › separation logic
relational separation logic |
0.7 | 1 | 2023 | Conditional Contextual Refinement · Proc. ACM Program. Lang. 2023 |
Program verification › program logic
separation logic |
0.7 | 1 | 2023 | Conditional Contextual Refinement · Proc. ACM Program. Lang. 2023 |
Program verification
simulation proof |
0.7 | 1 | 2023 | Stuttering for Free · Proc. ACM Program. Lang. 2023 |
Logic in computer science
program logic |
0.7 | 1 | 2023 | Fair Operational Semantics · Proc. ACM Program. Lang. 2023 |
Logic in computer science › program logic
separation logic |
0.7 | 1 | 2023 | Fair Operational Semantics · Proc. ACM Program. Lang. 2023 |
Compilers and program optimization
compiler correctness |
0.5 | 2 | 2023 | Taming undefined behavior in LLVM · PLDI 2017 DimSum: A Decentralized Approach to Multi-language Semantics and Verification · Proc. ACM Program. Lang. 2023 |
Compilers and program optimization › verified compilation
translation validation |
0.3 | 1 | 2018 | Crellvm: verified credible compilation for LLVM · PLDI 2018 |
Compilers and program optimization › compiler correctness
compiler optimization correctness |
0.3 | 1 | 2017 | Taming undefined behavior in LLVM · PLDI 2017 |
Compilers and program optimization
intermediate representation |
0.3 | 1 | 2017 | Taming undefined behavior in LLVM · PLDI 2017 |
Program verification › proof assistants
coq |
0.2 | 1 | 2023 | Stuttering for Free · Proc. ACM Program. Lang. 2023 |
Program verification › formal proof
mechanized proof |
0.2 | 1 | 2023 | Stuttering for Free · Proc. ACM Program. Lang. 2023 |
Concurrent programming › memory models
weak memory models |
0.2 | 1 | 2023 | Fair Operational Semantics · Proc. ACM Program. Lang. 2023 |
Methods — techniques the papers use, named apart from their topics
thread-local simulation relations · 1.3resource algebras · 1.3fair operational semantics · 1.3formal memory models · 0.9end-to-end verification · 0.9stuttering simulation · 0.7modular semantics · 0.7mechanized proof · 0.7coq mechanization · 0.7combinators · 0.7
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Archmage and CompCertCast: End-to-End Verification Supporting Integer-Pointer CastingabstractAlthough there have been many approaches for developing formal memory models that support integerpointer casts, previous approaches share the drawback that they are not designed for end-to-end verification ,failing to support some important source-level coding patterns, justify some backend optimizations, or lack a source-level logic for program verification. This paper presents Archmage, a framework for integer-pointer casting designed for end-to-end verification,supporting a wide range of source-level coding patterns, backend optimizations, and a formal notion of out-ofmemory. To facilitate end-to-end verification via Archmage, we also present two systems based on Archmage: CompCertCast, an extension of CompCert with Archmage to bring a full verified compilation chain to integer-pointer casting programs, and Archmage logic, a source-level logic for reasoning about integerpointer casts. We design CompCertCast such that the overhead from formally supporting integer-pointer casts is mitigated, and illustrate the effectiveness of Archmage logic by verifying an xor-based linked-list implementation, Together, our paper presents the first practical end-to-end verification chain for programs containing integer-pointer casts. Minki Cho, Youngju Song, Chung-Kil Hur |
Proc. ACM Program. Lang. | 6 |
| 2024 | Refinement Composition LogicabstractOne successful approach to verifying programs is refinement, where one establishes that the implementation ( e.g. , in C) behaves as specified in its mathematical specification. In this approach, the end result (a whole implementation refines a whole specification) is often established via composing multiple “small” refinements. In this paper, we focus on the task of composing refinements. Our key observation is a novel correspondence between the task of composing refinements and the task of proving entailments in modern separation logic. This correspondence is useful. First, it unlocks tools and abstract constructs developed for separation logic, greatly streamlining the composition proof. Second, it uncovers a fundamentally new verification strategy. We address the key challenge in establishing the correspondence with a novel use of angelic non-determinism . Guided by the correspondence, we develop RCL (Refinement Composition Logic) , a logic dedicated to composing refinements. All our results are formalized in Coq. Youngju Song |
Proc. ACM Program. Lang. | 1 |
| 2023 | Stuttering for FreeabstractOne of the most common tools for proving behavioral refinements between transition systems is the method of simulation proofs, which has been explored extensively over the past several decades. Stuttering simulations are an extension of traditional simulations—used, for example, in CompCert—in which either the source or target of the simulation is permitted to “stutter” (stay in place) while the other side steps forward. In the interest of ensuring soundness, however, existing stuttering simulations restrict proofs to only perform a finite number of stuttering steps before making synchronous progress —a step of reasoning in which both sides of the simulation progress forward together. This restriction guarantees that a terminating program cannot be proven to simulate a non-terminating one. In this paper, we observe that the requirement to eventually achieve synchronous progress is burdensome and, what’s more, unnecessary: it is possible to ensure soundness of stuttering simulations while only requiring asynchronous progress (progress on both sides of the simulation that may be achieved with only stuttering steps). Building on this observation, we develop a new simulation technique we call FreeSim (short for “freely-stuttering simulations”), mechanized in Coq, and we demonstrate its effectiveness on a range of interesting case studies. These include a simplification of the meta-theory of CompCert, as well as the DTrees library, which enriches the ITrees (Interaction Trees) library with dual non-determinism. Minki Cho, Youngju Song, Lennard Gäher, Derek Dreyer |
Proc. ACM Program. Lang. | 2 |
| 2023 | Fair Operational SemanticsabstractFairness properties, which state that a sequence of bad events cannot happen infinitely before a good event takes place, are often crucial in program verification. However, general methods for expressing and reasoning about various kinds of fairness properties are relatively underdeveloped compared to those for safety properties. This paper proposes FOS (Fair Operational Semantics), a theory capable of expressing arbitrary notions of fairness as an operational semantics and reasoning about these notions of fairness. In addition, FOS enables thread-local reasoning about fairness by providing thread-local simulation relations equipped with separation- logic-style resource algebras. We verify a ticket lock implementation and a client of the ticket lock under weak memory concurrency as an example, which requires reasoning about different notions of fairness including fairness of a scheduler, fairness of the ticket lock implementation, and even fairness of weak memory. The theory of FOS, as well as the examples in the paper, are fully formalized in Coq. Minki Cho, Soonwon Moon, Youngju Song, Chung-Kil Hur |
Proc. ACM Program. Lang. | 5 |
| 2023 | DimSum: A Decentralized Approach to Multi-language Semantics and VerificationabstractPrior work on multi-language program verification has achieved impressive results, including the compositional verification of complex compilers. But the existing approaches to this problem impose a variety of restrictions on the overall structure of multi-language programs (e.g. fixing the source language, fixing the set of involved languages, fixing the memory model, or fixing the semantics of interoperation). In this paper, we explore the problem of how to avoid such global restrictions. Concretely, we present DimSum : a new, decentralized approach to multi-language semantics and verification, which we have implemented in the Coq proof assistant. Decentralization means that we can define and reason about languages independently from each other (as independent modules communicating via events), but also combine and translate between them when necessary (via a library of combinators). We apply DimSum to a high-level imperative language Rec (with an abstract memory model and function calls), a low-level assembly language Asm (with a concrete memory model, arbitrary jumps, and syscalls), and a mathematical specification language Spec. We evaluate DimSum on two case studies: an Asm library extending Rec with support for pointer comparison, and a coroutine library for Rec written in Asm. In both cases, we show how DimSum allows the Asm libraries to be abstracted to Rec-level specifications, despite the behavior of the Asm libraries not being syntactically expressible in Rec itself. We also verify an optimizing multi-pass compiler from Rec to Asm, showing that it is compatible with these Asm libraries. Michael Sammler, Simon Spies, Youngju Song, Emanuele D'Osualdo, Robbert Krebbers, Deepak Garg 0001, Derek Dreyer |
Proc. ACM Program. Lang. | 3 |
| 2023 | Conditional Contextual RefinementabstractMuch work in formal verification of low-level systems is based on one of two approaches: refinement or separation logic. These two approaches have complementary benefits: refinement supports the use of programs as specifications, as well as transitive composition of proofs, whereas separation logic supports conditional specifications, as well as modular ownership reasoning about shared state. A number of verification frameworks employ these techniques in tandem, but in all such cases the benefits of the two techniques remain separate. For example, in frameworks that use relational separation logic to prove contextual refinement, the relational separation logic judgment does not support transitive composition of proofs, while the contextual refinement judgment does not support conditional specifications. In this paper, we propose Conditional Contextual Refinement (or CCR, for short), the first verification system to not only combine refinement and separation logic in a single framework but also to truly marry them together into a unified mechanism enjoying all the benefits of refinement and separation logic simultaneously. Specifically, unlike in prior work, CCR’s refinement specifications are both conditional (with separation logic pre- and post-conditions) and transitively composable. We implement CCR in Coq and evaluate its effectiveness on a range of interesting examples. Youngju Song, Minki Cho, Chung-Kil Hur, Michael Sammler, Derek Dreyer |
Proc. ACM Program. Lang. | 1 |
| 2020 | CompCertM: CompCert with C-assembly linking and lightweight modular verificationabstractSupporting multi-language linking such as linking C and handwritten assembly modules in the verified compiler CompCert requires a more compositional verification technique than that used in CompCert just supporting separate compilation. The two extensions, CompCertX and Compositional CompCert, supporting multi-language linking take different approaches. The former simplifies the problem by imposing restrictions that the source modules should have no mutual dependence and be verified against certain well-behaved specifications. On the other hand, the latter develops a new verification technique that directly solves the problem but at the expense of significantly increasing the verification cost. In this paper, we develop a novel lightweight verification technique, called RUSC (Refinement Under Self-related Contexts), and demonstrate how RUSC can solve the problem without any restrictions but still with low verification overhead. For this, we develop CompCertM, a full extension of the latest version of CompCert supporting multi-language linking. Moreover, we demonstrate the power of RUSC as a program verification technique by modularly verifying interesting programs consisting of C and handwritten assembly against their mathematical specifications. Youngju Song, Minki Cho, Jeehoon Kang, Chung-Kil Hur |
Proc. ACM Program. Lang. | 1 |
| 2018 | Crellvm: verified credible compilation for LLVMabstractProduction compilers such as GCC and LLVM are large complex software systems, for which achieving a high level of reliability is hard. Although testing is an effective method for finding bugs, it alone cannot guarantee a high level of reliability. To provide a higher level of reliability, many approaches that examine compilers' internal logics have been proposed. However, none of them have been successfully applied to major optimizations of production compilers. Jeehoon Kang, Yoonseung Kim, Youngju Song, Juneyoung Lee, Mark Dongyeon Shin, Sungkeun Cho, Joonwon Choi, Chung-Kil Hur, Kwangkeun Yi |
PLDI | 3 |
| 2017 | Taming undefined behavior in LLVMabstractA central concern for an optimizing compiler is the design of its intermediate representation (IR) for code. The IR should make it easy to perform transformations, and should also afford efficient and precise static analysis. In this paper we study an aspect of IR design that has received little attention: the role of undefined behavior. The IR for every optimizing compiler we have looked at, including GCC, LLVM, Intel's, and Microsoft's, supports one or more forms of undefined behavior (UB), not only to reflect the semantics of UB-heavy programming languages such as C and C++, but also to model inherently unsafe low-level operations such as memory stores and to avoid over-constraining IR semantics to the point that desirable transformations become illegal. The current semantics of LLVM's IR fails to justify some cases of loop unswitching, global value numbering, and other important "textbook" optimizations, causing long-standing bugs. We present solutions to the problems we have identified in LLVM's IR and show that most optimizations currently in LLVM remain sound, and that some desirable new transformations become permissible. Our solutions do not degrade compile time or performance of generated code. Juneyoung Lee, Yoonseung Kim, Youngju Song, Chung-Kil Hur, Sanjoy Das, David Majnemer, John Regehr, Nuno P. Lopes |
PLDI | 3 |