bio photo

Xiao Chen (陈骁)

A second-year Master Student in Computer Science

school
Northwestern University
location_on
Evanston, Illinois
xiaochen2023@u.northwestern.edu
github.com/chenxiao2402
linkedin.com/in/chenxiao2402

About Me

This is Xiao Chen (陈骁). Thank you very much for visiting my website.

I am a second-year master student in Computer Science at Northwestern University. Currently, I'm focusing on enforcing the type integrity in gradual typing systems, advised by Prof. Christos Dimoulas.

Previously, I worked with Prof. Simone Campanoni on program analysis and parallelizing compilers, which is part of the NOELLE project.

Academic Background

[Highlight] I'm applying for 24 Fall PhD in Programming Languages.

Indiana University Bloomington , Bloomington, IN, US
Ph.D. in Computer Science
Sep. 2024 - ?
Northwestern University , Evanston, IL, US
M.Sc in Computer Science
Sep. 2022 - Jun. 2024
Nanjing University , Nanjing, Jiangsu, China
M.Eng in Electronic Information
Sep. 2020 - Jun. 2022
Nanjing University , Nanjing, Jiangsu, China
B.Eng in Software Engineering
Sep. 2016 - Jun. 2020

Research Interests

My research interests primarily lie in the area of Programming Languages, spanning from the theoretical foundation to the implementation of compilers. Broadly speaking, I enjoy designing and implementing new language features that could facilitate the development of programmers.

  • Currently, my research revolves around Complete Monitoring, a property that formalizes the flow of values in gradual typing systems using ownership annotations and propagation rules for ownership to help assess the quality of blame assignments for responsible components when a runtime type mismatch occurs. I've derived new syntactic techniques that help eliminate the necessity for ownership annotations by introducing collecting semantics, along with the rigorous proof to show the program behavior is preserved. The main focus in the future is to enhance the collecting semantics based on uniform rules about how locations are associated with types they must satisfy, so that we could not only track but also enforce the type integrity of the program.

  • Therefore, I'm working on a high-order dynamic semantics that could eagerly check inconsistency in the typing history of each value. Different from the Amnesic semantics, the type history is encoded in the memory instead of being explicitly recorded in the expression. This strategy makes this new semantics more efficient because the type history will be incrementally updated during evaluation, while being decoded and checked only when type mismatch actually happens.

  • Previously, I worked on parallelizing compilers in the NOELLE project, with the goal of mapping programs to a multicore platform gaining nontrivial speedup. Specifically, I implemented a new intraprocedural may points-to analysis, and integrated it into a privatizer that converts dynamic memory allocations and global variables into local variables while preserving program semantics to enable transformations only applicable to AllocaInsts. In addition, this may points-to analysis helped remove overly conservative loop-carried memory dependencies in the program dependence graph to eliminate unnecessary synchronizations and achieve higher speedup for parallelization.

News and Updates