I am currently a post-doctoral researcher at IBM T.J. Watson Research Center in Hawthorne, NY. I received my Ph.D. in Computer Science from Cornell University in January 2007. My advisor there was Andrew Myers. My main research interests are programming languages and distributed systems.
I also have a minimal page at IBM.
Application materials
I am looking for a tenure-track faculty or research position starting in Fall 2009.
- CV (pdf)
- Research statement (pdf)
- Teaching statement (pdf)
- All application materials (zip)
- Representative publications
- Constrained Types for Object-Oriented Languages, Nathaniel Nystrom, Vijay Saraswat, Jens Palsberg, Christian Grothoff, In OOPSLA 2008 (Nashville, TN, October 2008).
- J&: Nested Intersection for Scalable Software Composition , Nathaniel Nystrom, Xin Qi, Andrew C. Myers, In OOPSLA 2006 (Portland, OR, October 2006).
- Scalable Extensibility via Nested Inheritance, Nathaniel Nystrom, Stephen N. Chong, Andrew C. Myers, In OOPSLA 2004 (Vancouver, BC, Canada, October 2004).
- Polyglot: An Extensible Compiler Framework for Java, Nathaniel Nystrom, Michael R. Clarkson, Andrew C. Myers, In 12th International Conference on Compiler Construction (Warsaw, Poland, April 2003). Published as Compiler Construction, 12th International Conference, CC 2003, LNCS 2622, Görel Hedin (Ed.), pp. 138-152. Springer, 2003.
Professional activities
- Program committee member, ECOOP 2009, Genova, Italy
- Program committee member, ECOOP 2008, Paphos, Cyprus
Projects
X10, a concurrent object-oriented programming language
X10 is a type-safe, parallel, distributed, object-oriented programming language being developed at IBM. I am designing and implementing X10 2.0.
Thorn, an extensible, distributed scripting language
Thorn is an object-oriented programming language with distributed components, gradual typing, and an extensible plugin system.
Jx/J&, languages for extensible, composable software frameworks
Nested inheritance is a language feature that provides scalable extensibility, the ability to extend a body of code while writing new code propotional to the differences in functionality and while ensuring type safety.
Polyglot, an extensible Java compiler framework
Polyglot is an extensible compiler framework that supports the easy creation of compilers for languages similar to Java, while avoiding code duplication. The Polyglot framework is useful for domain-specific languages, exploration of language design, and for simplified versions of Java for pedagogical use. Polyglot has been used to implement several modifications to Java, including Jif, JMatch, J&, and X10.