David Tarditi
I'm a Software Architect at Microsoft working on an unnamed systems incubation project.
Formerly, I was a Principal Researcher at
Microsoft Research. I led the
Advanced Compiler
Technology group from 2001 to 2007.
The group studied programming language implementation and design.
The group was one of the research groups working on the
Singularity Project.
The group designed, built, and worked on the Bartok compiler and lightweight runtime system used in Singularity.
I and several other people from the group continue to work on developing Bartok.
I also work with related Microsoft product groups on Phoenix,
Microsoft's next-generation compiler and programming tools infrastructure.
Contact information
Email: dtarditi@microsoft.com
Telephone: 425-703-5971
Fax: 425-936-0502
Address: Microsoft Research, One Microsoft Way, Redmond, WA 98052 USA
Research interests
My interests include:
-
Implementation and optimization techniques for modern object-oriented
programming languages: We have built a research compiler and runtime
system called Bartok that we use for studying these issues. The compiler
is an optimizing ahead-of-time compiler for CIL (Common Intermediate Language)
programs for .NET that compiles .NET programs to stand-alone native code
executables. The runtime system is a lightweight runtime system that supports
a subset of the CLR (Common Language Runtime system).
-
Typed intermediate languages: I am interested in using typed
intermediate languages to improve the reliability of compilers and systems
that use compilers. They enable the intermediate representation
of a compiler to be typechecked for consistency. Some allow machine
code programs to be type checked, which implies memory safety.
We have recently designed a new typed intermediate language for compiling
object-oriented languaages. The language is lower level than CIL or
other bytecode formats and can express standard implementation techniques
for dynamic dispatch and run-time type tests in a type-safe way.
-
Concurrency and parallel programming: Highly parallel hardware
is the future of computing; VLSI technology will soon allow billions of
transistors to be put on a chip. The key question is how to program this
parallel hardware effectively. In the Accelerator project, we are investigating data-parallel
languages and compilation of data parallel languages as one possible answer. We are also
investigating software transactional memory as another possible answer.
-
Programming language design: I am interested in
language extensions that simplify error handling. I am also
interested in extending type-safe programming languages to
support systems programming better. This overlaps with
my interest in typed intermediate languages.
Downloads
Singularity is a research project focused on the construction of dependable systems through innovation in the areas of systems, languages, and tools. We are building a research operating system prototype (called Singularity), extending programming languages, and developing new techniques and tools for specifying and verifying program behavior.
You can download the Singularity RDK for
non-commercial use. You can find a link to the
download site here.
Phoenix is Microsoft's new product compiler and programming tools infrastructure. I co-founded the project with Chuck Mitchell from Microsoft's
VC++ team.
I continue to work with the team closely. You can
find much more information on Phoenix
here.
You can download the Phoenix Research Development Kit for
non-commercial use. You can find a link to the
download site here.
The Microsoft Research Accelerator system provides simplified programming of graphics-processor units (GPUs) via a high-level data-parallel library. The system includes documentation and sample code for using the library.
You can now download version 1.1 of the Microsoft Research Accelerator system for non-commercial use. The download is available here.
Professional activities
- Program committee co-chair, Parallel Architectures and Compilation Techniques (PACT 2008).
- Program committee, Programming Language Design and Implementation (PLDI 2008).
- Program committee co-chair, Virtual Execution Environments (VEE 2007).
- Tutorials and workshops chair and member of organizing committee, Code Generation and Optimization (CGO 2007).
- Program committee, Types in Language Design and Implementation (TLDI 2007).
- Program committee, 1st ACM SIGPLAN Workshop on Languages, Compilers, and Hardware Support for Transactional Computing (TRANSACT 06), in conjunction with PLDI 2006.
- Program committee, Virtual Execution Environments (VEE 2006).
- Program committee, USENIX 3rd Virtual Machine Research and Technology Symposium (VM '04).
- Program committee, International Symposium on Memory Management (ISMM 2002).
- Program committee, Joint ACM Java Grande - ISCOPE 2002 Conference.
- Program committee, Joint ACM Java Grande - ISCOPE 2001 Conference.
- Program committee, ACM 1999 Java Grande Conference (formerly ACM Workshop on Java for High-Performance Computing).
- Program committee, ACM 1998 Workshop on Java for High Performance Network Computing.
- Program committee, First ACM SIGPLAN Workshop on Intermediate Representations, in conjunction with POPL 1995.
Publications
Singularity
-
Sealing OS Processes to Improve Dependability and Security, Galen
Hunt, Mark Aiken, Paul Barham, Manuel Fähndrich, Orion Hodson, James Larus,
Steven Levi, Nick Murphy, Bjarne Steensgaard, David Tarditi, Ted Wobber,
Brian Zill. Microsoft Research Technical
Report MSR-TR-2005-51.
- An
Overview of the Singularity Project.
Galen Hunt, James R. Larus, Martin Abadi,
Mark Aiken, Paul Barham, Manuel Fahndrich, Chris Hawblitzel
Orion Hodson, Steven Levi, Nick Murphy, Bjarne Steensgaard,
David Tarditi, Ted Wobber, and Brian D. Zill.
Microsoft Research Technical Report MSR-TR-2005-135.
October 2005.
- Broad New OS Research: Challenges and Opportunities. Galen Hunt,
James Larus,
David Tarditi,
and Ted Wobber.
Proceedings
of the 10th Workshop
on Hot Topics in Operating Systems. Santa Fe, NM, June 2005.
USENIX.
Implementation and optimization for modern OO languages
- Marmot: An Optimizing Compiler For Java. Robert Fitzgerald, Todd
B. Knoblock, Erik Ruf, Bjarne Steensgaard, and David Tarditi. Software: Practice and Experience
30(3), 2000. Available in postscript
or PDF.
- The Case for Profile-Directed Selection of Garbage Collectors
Robert Fitzgerald and David Tarditi. ACM International
Symposium on Memory Management (ISMM 2000), Minneapolis, Minnesota,
October 2000.
Available in PDF.
- Compact Garbage Collection Tables,. David Tarditi.
ACM International
Symposium on Memory Management (ISMM 2000),Minneapolis, Minnesota,
October 2000, Available in PDF.
- Measuring the Cost of Storage Management. David Tarditi and Amer Diwan. Lisp and Symbolic Computation, Volume 9, Number 4,
December, 1996.
- Memory System Performance of Programs with Intensive Heap Allocation.
Amer Diwan, David Tarditi, and Eliot Moss. Transactions on Computer Systems,
August, 1995. Available in postscript.
An earlier, lengthier version is available
as CMU technical report CMU-CS-93-227, also available in postscript.
- Memory Subsystem Performance of Programs Using Copying Garbage Collection. David Tarditi, Amer Diwan, Eliot Moss. Proceedings of the 21st Annual
ACM SIGACT-SIGPLAN Symposium on Principles of Programming
Languages). Available in postscript.
Typed intermediate languages
- A Simple Typed Intermediate Language for Object-Oriented Languages. Juan Chen
and David Tarditi.
Proceedings of POPL 2005: The 32nd ACM SIGPLAN-SIGACT Symposium
on Principles of Programming Languages, Long Beach, CA, January,
2005. ACM. An extended version is available
as Technical Report MSR-TR-2004-68,
Microsoft Corporation, July, 2004.
- Design and Implementation of Code
Optimizations for a Type-Directed Compiler for Standard ML. Ph.D thesis, available as CMU CS technical report 97-108.
- TIL: A Type-Directed Optimizing Compiler for ML. David Tarditi, Greg Morrisett, Perry Cheng, Chris Stone, Bob Harper, and Peter Lee, PLDI '96.
Available in postscript.
This paper was awarded the "Most Influential 1996 PLDI Paper Award" at PLDI 2006.
Concurrency
Language design
Other
- Call-by-need and Continuation-passing style. Chris Okasaki, Peter Lee, David Tarditi. Lisp and Symbolic Computation, January, 1994.
Available in postscript.
- No Assembly Required: Compiling Standard ML to C. David Tarditi, Peter Lee, Anurag Acharya. Letters on Programming Languages and Systems, June
1992. Available in postscript.
Past software projects
Here are some other projects that I've been involved with over the years.
- Marmot: an optimizing, whole-program native-code
compiler for Java.
- DirectAnimation:
A high-level library for specifying animations based on ideas from
functional programming.
- TIL: A type-directed compiler for Standard ML.
- sml2c: A compiler from Standard ML to C.
- SML/NJ: Standard ML of New Jersey compiler.
Education
I earned a Ph.D. from Carnegie Mellon University in 1997 and B.S. with high honors from Princeton
University in 1989. Both degrees are in computer science.
Last updated: June 4, 2007
|