Paul Stansifer
Paul completed his PhD in the Computer Science program at Northeastern University’s College of Computer and Information Science. Before coming to Northeastern, Paul earned a Bachelor of Arts from Williams College.
Paul, a native of Melbourne Beach, Florida, is a member of the nuPRL group, and has a research interest in Programming Languages. His graduate education research has included removing usability obstacles to metaprogramming, particularly restrictions on what kind of languages can be meta-programmed. Paul has worked with Mozilla, on the design and implementation of the macro system of the Rust programming language. Paul has a fascination in the disconnect between mathematics and programming.
Education
- BA, Williams College
About Paul
- Hometown: Melbourne Beach, Florida
- Field of Study: Programming Languages
- PhD Advisor: Mitch Wand
What are the specifics of your graduate education?
My research has focused on removing usability obstacles to metaprogramming (i.e. systems that manipulate code as data, like macro systems or theorem provers), in particular, restrictions on what kinds of languages can be meta-programmed.
What are your research interests?
I’m fascinated by all kinds of ergonomic trade-offs in programming language design, but my current work starts from the well-understood (but generally not-yet-practical) systems for maintaining the correct meaning of names while manipulating code. Those systems typically cannot handle the complex binding forms present in practical programming languages; our work is to add power to one such system.
I have also worked with Mozilla on the design and implementation of the macro system of the Rust programming language. We have discovered that S-expressions are not nearly as important to the design of a good macro system as we thought. To put it in buzzwords: the homoiconicity was inside us, all along!
What’s one problem you’d like to solve with your research/work?
Although this is far, far more than a one-person research project, I believe it is possible to build a language with a macro system and a type system in which neither one feels “tacked-on”. (The particular technical obstacle is that, so far, type errors are reported in terms of code after macro expansion, not the code the programmer wrote. I believe safe manipulation of binding forms to be an important step in the direction of type-safe macros.)
What aspect of what you do is most interesting?
I’m always fascinated by the disconnect between mathematics and programming. Each can claim to be more formal than the other; each has powerful tools and a strong sense of beauty, but they often completely fail to match up to each other. In a sense, it seems like each still has much to learn from the other.
What are your research or career goals, going forward?
I aim to remind the world that syntax matters more than we give it credit for, and poses harder problems than we think it does.
Paul completed his PhD in the Computer Science program at Northeastern University’s College of Computer and Information Science. Before coming to Northeastern, Paul earned a Bachelor of Arts from Williams College.
Paul, a native of Melbourne Beach, Florida, is a member of the nuPRL group, and has a research interest in Programming Languages. His graduate education research has included removing usability obstacles to metaprogramming, particularly restrictions on what kind of languages can be meta-programmed. Paul has worked with Mozilla, on the design and implementation of the macro system of the Rust programming language. Paul has a fascination in the disconnect between mathematics and programming.
Education
- BA, Williams College
About Paul
- Hometown: Melbourne Beach, Florida
- Field of Study: Programming Languages
- PhD Advisor: Mitch Wand
What are the specifics of your graduate education?
My research has focused on removing usability obstacles to metaprogramming (i.e. systems that manipulate code as data, like macro systems or theorem provers), in particular, restrictions on what kinds of languages can be meta-programmed.
What are your research interests?
I’m fascinated by all kinds of ergonomic trade-offs in programming language design, but my current work starts from the well-understood (but generally not-yet-practical) systems for maintaining the correct meaning of names while manipulating code. Those systems typically cannot handle the complex binding forms present in practical programming languages; our work is to add power to one such system.
I have also worked with Mozilla on the design and implementation of the macro system of the Rust programming language. We have discovered that S-expressions are not nearly as important to the design of a good macro system as we thought. To put it in buzzwords: the homoiconicity was inside us, all along!
What’s one problem you’d like to solve with your research/work?
Although this is far, far more than a one-person research project, I believe it is possible to build a language with a macro system and a type system in which neither one feels “tacked-on”. (The particular technical obstacle is that, so far, type errors are reported in terms of code after macro expansion, not the code the programmer wrote. I believe safe manipulation of binding forms to be an important step in the direction of type-safe macros.)
What aspect of what you do is most interesting?
I’m always fascinated by the disconnect between mathematics and programming. Each can claim to be more formal than the other; each has powerful tools and a strong sense of beauty, but they often completely fail to match up to each other. In a sense, it seems like each still has much to learn from the other.
What are your research or career goals, going forward?
I aim to remind the world that syntax matters more than we give it credit for, and poses harder problems than we think it does.