I'm Yin Wang, a PhD student in Computer Science at Indiana University Bloomington. My research interests include most aspects of programming languages, such as semantics, logic programming, type theory and compilation. I'm also interested in operating systems and databases. In my point of view, these areas (PL, OS, DB) have no real boundary.
Register allocation has long been formulated as a graph coloring problem, but experiences suggest that register allocation is in many ways different from a general graph coloring problem. Machine languages have interesting semantics, and graphs don't closely capture them. Following this intuition, I explore possible ways of doing register allocation without graph coloring, aiming at reducing memory traffic. This research has been registered as a "Y790" independent study with R. Kent Dybvig.
I'm in the process of designing a new type system. I have the motivation because most existing programming languages either put arbitrary restrictions on the programmer, or pursue a problematic world-model, or don't provide any static checking at all. "Natural Type System" should be extremely simple but expressive enough for all the beauty we hope to convey.
With Amr Sabry, I explored the possibilities of physical reversibility of computing. As a conceptual model, I designed and implemented a "reversible CEK" abstract machine for lambda calculus, which runs both forwards and backwards. [code] and [definitions for test]
A PL-wonks talk about version control in a world where programs are edited not as text, but directly as data structures. (Feb 10, 2012) [PDF] [PPT]
A PL-wonks talk about a new register allocation algorithm based on the idea of "model transformer semantics". (Nov 4, 2011) [PDF] [PPT]
A talk about the connection between Separation Logic and monads (April 2010) [PDF] [PPT].