Ross Tate

Ross Tate [CV]

Assistant Professor in Computer Science at Cornell University
Computer Science Ph.D. at University of California, San Diego
Mathematics & Computer Science B.S. at Cal Poly, San Luis Obispo

University of California, San Diego
Office 3260, Building EBU-3b
9500 Gilman Drive, Mailing Code 0404
La Jolla, California 90210
rtate at

Graduate Advisor: Sorin Lerner
Undergraduate Advisor: Aaron Keen


Taming Wildcards in Java\'s Type System
PLDI 2011

Inferable Object-Oriented Typed Assembly Language
PLDI 2010

Generating Compiler Optimizations from Proofs
POPL 2010

Equality Saturation: A New Approach to Optimization
POPL 2009


The links below contain more than the usual pdf files; they contain an embedded video of the presentation and the powerpoint slides, for those people who would like a quick overview before reading the paper. They also have answers to common questions we have recieved.

Designing the Ceylon Type system
You need Flash to view this presentation. However, if you are using an iPhone or the like, you can watch this presentation here (it takes a few seconds to buffer).

Due to my work on wildcards, I came into contact with the Ceylon team at Red Hat. They are developing a next-generation object-oriented industy-scale programming language, attempting to incorporate all the experience offered by languages such as Java, C#, Scala, Smalltalk, and Python over the last decade or so. My role on the team is primarily as type-system advisor, making sure Ceylon's powerful features all work together cohesively. I will also be formalizing the language once we pin it down. Meanwhile I will be acting as a sort of research liaison, looking for opportunities to transfer technologies from the research communty to Ceylon, so feel free to contact me if you have some fun research ideas for Ceylon.



CSE-130: Programming Languages (Summer Session II 2010)

Research Internships

I interned under Daan Leijen at Microsoft Research in Redmond in Summer/Fall 2009. We designed a pure but effectful functional programming language, as well as a Hindley-Milner-like type inference algorithm with effects and higher-order polymorphism (based on Daan's HMF). In doing so, I improved compiler technology for inferring higher-ranked polymorphism. I also managed to generalize monads in order to formalize effect systems with multiple interacting effects.

Ross Tate Capoeira

I interned under Juan Chen and Chris Hawblitzel at Microsoft Research in Redmond in Summer/Fall 2008. I designed a type-inference algorithm for an x86 assembly type system for object-oriented programs, as can be seen at PLDI 2010. This typed assembly language, which we called iTalX, is now a key part of Microsoft Research's computer-verified memory-safe operating system, Verve. In order to design this inferable type system, I first designed a framework for existential types based on category theory, which has proven to be intuitive, powerful, and flexible. This framework was then reused for my work on Java's wildcards in PLDI 2011.

Industry Internships

I have interned at Treyarch, a studio of Activision, twice now. The first time I worked on the early stages of the Spider-Man 3 console game. The second time I worked on Spider-Man: Web of Shadows. My biggest contributions have been in improving the scripting language used by the game designers, and this may have somewhat fostered my enjoyment of programming languages. I have also worked a lot with computational geometry and corresponding graph theory.

Before that, I interned at CustomFlix. At the time, CustomFlix was a very small internet company which processed, distributed, and marketed personal videos. I held various roles such as architect, tester, lead, and web-developer.

Post Script

I stole this page from Patrick "Maxim" Rondon.

I found my grandpa online. Thought it was pretty cool.