a fourth-year Ph.D student studying in
Department of Computer Science at
University of Texas at Austin.
I got my bachelor's degree at Nanjing University and graduate from there in Summer 2012.
I do research in static program analysis.
My current research focus on precise, scalable and adaptive methods for doing pointer analysis so that the data dependencies in the analyzed program can be better explored. This will enable us perform many interesting client analysis (such as program optimization, bug detection and security checks, etc.) more efficiently. I am also interested in techniques from other related areas, especially programming language, architecture and operating system.
My supervisor is Professor Calvin Lin.
- Instructor, UT CS105 Introduction to C++, Spring 2016
Spring 2016 is going to be my first semester teaching the class, and currently I am still in the preparation phase. So there are a lot of uncertainties about the contents of the class at this point.
That being said, it is going to be a hard class with heavy workloads, due to the fact that C++ is an huge monster to learn and the class only lasts about 8 weeks. The amount of efforts I expect people to spend in it definitely exceed the 1-credit nature of the class, so my suggestion is that you should consider taking the class only if you truly want to learn the language.
- Teaching Assistant, UT CS380C Graduate Compiler, Spring 2015
- Teaching Assistant, UT CS345 Programming Language, Fall 2014
- Teaching Assistant, UT CS429H Computer Organization and Architecture (Honor), Spring 2013
- Teaching Assistant, UT CS303E Element of Computer Programming, Fall 2012
Programming is the second most important part of my life after research. Here is a list of all the programming language I know, along with some comments.
C++ has been my "mother tone" for many years. I value myself as a top-tier C++ programmer and I am still learning new stuffs in C++ almost every day, which I really enjoy.
Thanks to my C++ skills I am also reasonable good at C.
Rust is another system-level programming language I am interested in. Although I have some doubts in their strict ownership system and the way it treats unsafe codes, the language itself has so many other attractive features (pattern matching, first-class functions) that I might seriously consider writing projects in it in the future.
Python is almost always my first choice of scripting language whenever I want to hack up something quickly.
Despite my proficiency in system-level languages, I do write codes in functional languages a lot. Haskell and Racket are my go-to choices when I program functionally. I could also write SML codes but not as much as the other two.
Most CS students knows Java in their undergrad courses these days, and I am not an exception. I am not a big fan in Java recently since I found Scala a strictly better alternative as a JVM-based language.
- Pointer analysis with adaptive precision
To be published
A lightweight parser combinator library written in C++14.
- Andersen's pointer analysis
Andersen's inclusion-based pointer analysis re-implementation for LLVM.
My own implementation of a simple SMT solver. Working in progress.
A tiny game project that resembles the famous BubbleBall game on iOS. Click here for a short game trailer on youtube.
- I love playing video games. Action game (ACT) is my favorite genre.
- I regularly work out and play basketball at Gregory Gym.