I design and implement programming languages and program analyses, with a background spanning domain-specific language design, static and dynamic program analysis, and compiler engineering. I currently work on production language runtimes and virtual machines at the Compiler Lab of Huawei’s Hong Kong Research Center.
Experience
Senior Engineer, Compiler Lab, Huawei Hong Kong Research CenterNov 2024 – Present
- Core contributor to a unified language runtime project — a pluggable component exposing a common interface across ArkTS, Cangjie, and Kotlin/Native, jointly developed by HKRC and Huawei HQ.
- Led runtime work for Cangjie and a private fork of Kotlin/Native, replacing the native mark-and-sweep GC with a concurrent mark-and-copy GC and LLVM stackmap, that cut average memory use by 40% on real-world mobile applications.
Projects
Core Maintainer of the Soufflé Programming Language(C++) 2017–2022
- Designed and implemented the virtual machine, including an intermediate representation optimized for logic programming.
- Prototyped just-in-time compilation support for the engine.
- Extended the language with new features and contributed third-party LSP tooling.
Research Project on Ethereum Virtual Machine(Golang) 2021–2023
- Developed validation techniques for smart-contract decompilers using SSA form.
- Performed at-scale dynamic-tracing analysis of EVM execution behaviour.
- Synthesized optimized super-instruction sets for the EVM.
Internship at Cryptape(Rust) 2022
- Maintained and optimized the RISC-V backend for CKB-VM.
- Prototyped a zero-knowledge virtual machine for RISC-V.
Education
Ph.D. in Computer Science2021–2024
Supervisor: Professor Bernhard Scholz
Thesis: High-Performance Virtual Machine Design for Domain-Specific Languages
The University of Sydney
B.S. in Computer Science (First-class Honours)2016–2021
The University of Sydney
Publications
-
Hu, Xiaowen, David Zhao, Herbert Jordan, and Bernhard Scholz. An Efficient Interpreter for Datalog by De-Specializing Relations. In Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, PLDI 2021, pages 681–695, 2021. ACM.
We introduce a novel design and implementation of a tree interpreter for the state-of-the-art Datalog engine, Soufflé. Through de-specialization, a light-weight IR, and low-level optimization, we equip the interpreter runtime with highly efficient static data structures and obtain excellent performance improvement.
-
Hu, Xiaowen, Joshua Karp, David Zhao, Abdul Zreika, Xi Wu, and Bernhard Scholz. The Choice Construct in the Soufflé Language. In Programming Languages and Systems, pages 163–181, Springer, 2021.
We add a new language feature called choice to modern Datalog. Choice enforces a functional dependency on a relation, giving users a non-deterministic way to express worklist algorithms such as computing spanning trees and performing list scheduling.
-
Samuel Arch, Hu, Xiaowen, David Zhao, Pavle Subotić, and Bernhard Scholz. Building a Join Optimizer for Soufflé. In Logic-Based Program Synthesis and Transformation, LOPSTR 2022, pages 83–102, Springer.
We develop a join optimizer for Soufflé that automatically computes high-quality join orders using a feedback-directed strategy. On complex real-world applications including DOOP, DDISASM, and VPC, it surpasses un-tuned join orders by a geometric-mean speedup of 12.07×.
-
Hu, Xiaowen, Bernd Burgstaller, and Bernhard Scholz. EVMTracer: Dynamic Analysis of the Parallelization and Redundancy Potential in the Ethereum Virtual Machine. IEEE Access, 11:47159–47178, 2023.
We introduce EVMTracer, an offline EVM tracer that builds Runtime Data Dependence Graphs from executed transactions. Studying all blocks up to the 12-millionth on Ethereum mainnet, we find a potential 1.90× speedup from concurrent execution and that 34.97% of SLOAD instructions are redundant.
-
Hu, Xiaowen, David Zhao, and Bernhard Scholz. Synthesizing Efficient Super-Instruction Sets for the Ethereum Virtual Machine. In Proceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages, VMIL ’24, pages 54–64, 2024. ACM.
We present a novel approach for the automated synthesis of super-instructions, combining offline dictionary-based compression with greedy heuristics to address overlap between candidates. A meta-compiler for the EVM generates a new interpreter incorporating them, yielding an 8.45% speedup for the interpreter component.
Teaching
Tutor of System Programming in C, The University of Sydney2021–2022
Tutor of Introduction to Programming, The University of Sydney2021
Activities
Committee Member2023
OOPSLA’23 External Review Committee
OOPSLA’23 Artifact Evaluation Committee
ECOOP’23 External Review Committee
ECOOP’23 Artifact Evaluation Committee
Committee Member2021
OOPSLA’21 Artifact Evaluation Committee
PLDI’21 Artifact Evaluation Committee
Honours
High Honour Roll2021
First-Class Honours2021
Supervisor: Professor Bernhard Scholz
Thesis: An Efficient Interpreter for Soufflé.
Dean’s List2018