Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
[go: Go Back, main page]

*
Quick Links|Home|Worldwide
Microsoft*
Search for


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

Publications

Singularity

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, 1995Available 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

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



©2008 Microsoft Corporation. All rights reserved. Terms of Use |Trademarks |Privacy Statement