EDBT 2026 Demo / reviewers in the wild / expert
Zhaozhong Ni
dblp:62/1456
· DBLP profile ↗
5ranked-venue papers
1as first author
1since 2021 · last 2024
0009-0000-6138-8780ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 1 first-author · 1 since 2021Artificial intelligence and machine learning · 1Systems, architecture and hardware · 1 · 1 since 2021Theory of computation · 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
4 papers |
Program verification · 67% Programming languages and type systems · 33% | |
| Network and information security
2 papers |
Hardware security and side channels · 92% Systems and software security · 8% |
Topics — the 11 heaviest of 11, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Hardware security and side channels
trusted execution environments |
0.8 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Program verification › system verification › systems code verification
hypervisor verification |
0.8 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Programming languages and type systems › language-based security
memory safety |
0.2 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Programming languages and type systems
rust |
0.2 | 1 | 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave Hypervisor · ASPLOS (2) 2024 |
Systems and software security › security verification
proof-carrying code |
0.1 | 1 | 2006 | Certified assembly programming with embedded code pointers · POPL 2006 |
Program verification › program logic
hoare logic |
0.1 | 1 | 2006 | Certified assembly programming with embedded code pointers · POPL 2006 |
Program verification › code-level verification
machine code verification |
0.1 | 1 | 2006 | Modular verification of assembly code with stack-based control abstractions · PLDI 2006 |
Program verification
proof-carrying code |
0.1 | 2 | 2006 | A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002 Modular verification of assembly code with stack-based control abstractions · PLDI 2006 |
Program verification › proof-carrying code
foundational proof-carrying code |
0.0 | 1 | 2002 | A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002 |
Programming languages and type systems › type systems › static typing
typed assembly language |
0.0 | 1 | 2002 | A Syntactic Approach to Foundational Proof-Carrying Code · LICS 2002 |
Program verification › program logic
separation logic |
0.0 | 1 | 2006 | Certified assembly programming with embedded code pointers · POPL 2006 |
Methods — techniques the papers use, named apart from their topics
rust · 1.5formal verification · 1.5coq · 0.2separation logic · 0.1hoare logic · 0.1hoare-style framework · 0.1typing derivation · 0.0coq proof assistant · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Verifying Rust Implementation of Page Tables in a Software Enclave HypervisorabstractAs trusted execution environments (TEE) have become the corner stone for secure cloud computing, it is critical that they are reliable and enforce proper isolation, of which a key ingredient is spatial isolation. Many TEEs are implemented in software such as hypervisors for flexibility, and in a memory-safe language, namely Rust to alleviate potential memory bugs. Still, even if memory bugs are absent from the TEE, it may contain semantic errors such as mis-configurations in its memory subsystem which breaks spatial isolation. Zhenyang Dai, Vilhelm Sjöberg, Xupeng Li, Yu Chen 0004, Wenhao Wang 0001, Yuekai Jia, Sean Noble Anderson, Laila Elbeheiry, Shubham Sondhi, Yu Zhang 0313, Zhaozhong Ni, Shoumeng Yan, Ronghui Gu, Zhengyu He |
ASPLOS (2) | 12 |
| 2006 | Modular verification of assembly code with stack-based control abstractionsabstractRuntime stacks are critical components of any modern software--they are used to implement powerful control structures such as function call/return, stack cutting and unwinding, coroutines, and thread context switch. Stack operations, however, are very hard to reason about: there are no known formal specifications for certifying C-style setjmp/longjmp, stack cutting and unwinding, or weak continuations (in C--). In many proof-carrying code (PCC) systems, return code pointers and exception handlers are treated as general first-class functions (as in continuation-passing style) even though both should have more limited scopes.In this paper we show that stack-based control abstractions follow a much simpler pattern than general first-class code pointers. We present a simple but flexible Hoare-style framework for modular verification of assembly code with all kinds of stackbased control abstractions, including function call/return, tail call, setjmp/longjmp, weak continuation, stack cutting, stack unwinding, multi-return function call, coroutines, and thread context switch. Instead of presenting a specific logic for each control structure, we develop all reasoning systems as instances of a generic framework. This allows program modules and their proofs developed in different PCC systems to be linked together. Our system is fully mechanized. We give the complete soundness proof and a full verification of several examples in the Coq proof assistant. Xinyu Feng 0001, Zhong Shao 0001, Alexander Vaynberg, Sen Xiang, Zhaozhong Ni |
PLDI | 5 |
| 2006 | Certified assembly programming with embedded code pointersabstractEmbedded code pointers (ECPs) are stored handles of functions and continuations commonly seen in low-level binaries as well as functional or higher-order programs. ECPs are known to be very hard to support well in Hoare-logic style verification systems. As a result, existing proof-carrying code (PCC) systems have to either sacrifice the expressiveness or the modularity of program specifications, or resort to construction of complex semantic models. In Reynolds's LICS'02 paper, supporting ECPs is listed as one of the main open problems for separation logic.In this paper we present a simple and general technique for solving the ECP problem for Hoare-logic-based PCC systems. By adding a small amount of syntax to the assertion language, we show how to combine semantic consequence relation with syntactic proof techniques. The result is a new powerful framework that can perform modular reasoning on ECPs while still retaining the expressiveness of Hoare logic. We show how to use our techniques to support polymorphism, closures, and other language extensions and how to solve the ECP problem for separation logic. Our system is fully mechanized. We give its complete soundness proof and a full verification of Reynolds's CPS-style "list-append" example in the Coq proof assistant. Zhaozhong Ni, Zhong Shao 0001 |
POPL | 1 |
| 2003 | A Syntactic Approach to Foundational Proof-Carrying Code
Nadeem Abdul Hamid, Zhong Shao 0001, Valery Trifonov, Stefan Monnier, Zhaozhong Ni |
J. Autom. Reason. | 5 |
| 2002 | A Syntactic Approach to Foundational Proof-Carrying CodeabstractProof-carrying code (PCC) is a general framework for verifying the safety properties of machine-language programs. PCC proofs are usually written in a logic extended with language-specific typing rules. In foundational proof-carrying code (FPCC), on the other hand, proofs are constructed and verified using strictly the foundations of mathematical logic, with no type-specific axioms. FPCC is more flexible and secure because it is not tied to any particular type system and it has a smaller trusted base. Foundational proofs, however are much harder to construct. Previous efforts on FPCC all required building sophisticated semantic models for types. In this paper, we present a syntactic approach to FPCC that avoids the difficulties of previous work. Under our new scheme, the foundational proof for a typed machine program simply consists of the typing derivation plus the formalized syntactic soundness proof for the underlying type system. We give a translation from a typed assembly language into FPCC and demonstrate the advantages of our new system via an implementation in the Coq proof assistant. Nadeem Abdul Hamid, Zhong Shao 0001, Valery Trifonov, Stefan Monnier, Zhaozhong Ni |
LICS | 5 |