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)
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.