Joao Dias

Joao Mail:
Joao Dias
Maxwell Dworkin 309
Harvard University
33 Oxford Street
Cambridge, MA 02138
USA
Email: dias @ eecs.harvard.edu
Phone: (617) 496-8648

I am a graduate student in Computer Science. My advisor is Norman Ramsey. You can download my CV here.

Interests

I am generally interested in functional programming, run-time systems, register allocation, compiler design, mechanized reasoning, type systems, and systems research. I am warming up to object-oriented programming.

Research

I am a member of the Triforce group (programming languages, compilers, and security at Harvard).

I work on the C-- project. My research focuses on the automatic generation of compiler back ends from declarative machine descriptions. The state-of-the-art in retargeting a compiler is to write code that maps the compiler's intermediate representation onto machine instructions. Our goal is to simplify the task of retargeting a compiler by decoupling the knowledge of the machine from the knowledge of compiler internals. We isolate the knowledge of the target machine in a reusable, declarative machine description. The declarative machine description permits analysis, allowing us to automatically generate the machine-specific components of the compiler. The main components are the code expander, the recognizer, and the register allocator. We have demonstrated that we can automatically generate a recognizer and the machine-dependent parts of the register allocator from a declarative machine description. I am in the process of completing work on generating the expander. For more details, see the 2006 CC paper and the 2004 technical report below.

Publications

Converting Intermediate Code to Assembly Code Using Declarative Machine Descriptions. Joao Dias and Norman Ramsey. 15th International Conference on Compiler Construction (CC '06).
Part of my research on generating the back end of a compiler from declarative machine descriptions. This paper describes how to generate a recognizer, which identifies register transfers that correspond to instructions on the target machine.

An Applicative Control-Flow Graph Based on Huet's Zipper. Norman Ramsey and Joao Dias. ML Workshop 2005.
An applicative control-flow graph for classic, imperative optimizations. Avoids dynamic invariants and facilitates speculative transformation of the control-flow graph. Slides from the talk: (pdf)

Generating a Recognizer from Declarative Machine Descriptions. Joao Dias and Norman Ramsey. Harvard Technical Report TR-30-04, 2004.
An early view of the work described in the CC '06 paper above.

Teaching

In the spring of 2004, I was a teaching fellow (TF) for the undergrad compilers course, CS153. In the past, I TF'd the second introductory CS course at Harvard, CS51 (Spring 2000, 2001, 2002), as well as the introductory hardware course CS141 (Fall 2001). I was also a head TF for a staff of 10 TF's for CS51 in Spring 2002.

Pictures

I am a terrible photographer. When I do bring a camera, I take a ridiculous number of pictures -- they can't all be bad. Here are some completely unorganized collections of pictures from Tallinn, Estonia and Vienna, Austria. Attendees of ICFP 2007 can look forward to Freiburg's famous tower!

Random

Sports commentary is terrible. For a humorous, accurate viewpoint from people who are willing to use their computers, visit www.firejoemorgan.com.

The MBTA is the worst public transit system in the world. Take advantage of their laughable guarantee at every (legal) opportunity.