Quick Links |Home|Worldwide
Microsoft

Search:
   
 

PHOENIX AND SSCLI AWARDS – 2006

 

Compiler Support for Software Transactional Memory
Maurice Herlihy
Brown University, U.S.

We propose to develop a Phoenix-based compiler plug-in that will transparently transform sequential objects into properly synchronized concurrent ones. There are two broad areas where a compiler extension for SXM would make the API substantially more attractive. First, it could provide a safer and easier-to-use interface to the programmer. Second, it would permit pervasive optimizations that are simply not possible using a library-based implementation.

Phoenix-Based Optimizing Compilers Course Development
Regeti Govindarajulu
Indian Institute of Information Technology, Hyderabad, India

The project is aimed at developing course-material for teaching a course on optimizing compiler with a strong laboratory component. The following are the expected outcomes: Development of course material for optimizing compilers with strong practical assignments, Development of phoenix-based lab exercises in the form of plug-ins and tools, The laboratory modules developed will be made freely available to other institutes.

Integrating Dynamic Slicing into the coredbg Debugger
Neelam Gupta
University of Arizona, U.S.

We aim to enhance the existing coredbg debugger to perform reverse execution, i.e. to step backwards during the course of a program’s execution. We will use this basic facility to implement demand-driven implementations of dynamic slicing algorithms. Variants of dynamic slices (data slices, full slices, and relevant slices) will be supported. Once we have implemented these algorithms, we will then implement additional dynamic analyses that will enable selection and pruning of dynamic slices.

A Testbed for Studying the Order and Combination of Code Optimization Phases
Michael Smith
Harvard University, U.S.

The ultimate goal of our research is to create an experimental testbed that directly helps us to increase our fundamental knowledge of code optimization, improve our understanding of the interaction between optimizations, and identify profitable directions for new combined optimizations.

PTV: Translation Validation in the Phoenix Compiler Framework
Lenore Zuck
University of Illinois at Chicago, U.S.


Benjamin Goldberg
New York University

There is a growing awareness, both in industry and academia, of the crucial role of formally proving the correctness of systems. Most verification methods focus on the verification of a specification with respect to a set of requirements, or of high-level code with respect to a specification. Our ultimate goal is to develop a methodology for the translation validation of advanced optimizing compilers built upon frameworks, like Phoenix, that provide a multi-language and multi-platform (e.g. managed and unmanaged code) environment.

Phase Detection and Optimization
Chandra Krintz
University of California at Santa Barbara, U.S.

As part of the project that we propose herein, we plan to build upon and extend our prior work to investigate two primary research foci: Online detection of phase behavior and phase-aware feedback-directed optimization. We plan to investigate and implement our techniques in Phoenix (for phase capture as well as phase-aware optimization for a static compiler via Phoenix plugins) and SSCLI (for phase-aware dynamic compilation and optimization).

Extending Dynamic Features of the SSCLI
Francisco Ortin
University of Oviedo, Spain

This research topic is based on the need to dynamically modify running applications in systems that must be adapted to changes in their environment without being halted, modified, recompiled and restarted. Examples are long-running systems or monitoring and debugging components. AOP is based on program transformation and in DAOP this transformation takes place at runtime. The capabilities needed to create DAOP applications are offered by dynamic languages by means of structural reflection, dynamic code generation and dynamic typing features.

A Lua Compiler for the Phoenix Framework
Fábio Mascarenhas
Pontifícia Universidade Católica do Rio de Janeiro, Brazil

We expect to produce a fully working compiler for the Lua language, fully implemented in managed code, with both CIL and Phoenix IR back-ends.

Developing a Testing Framework for Security
Mary Lou Soffa
University of Virginia, U.S.

The overall goal of this research is to develop a testing framework for detecting and managing security flaws. The key idea is to develop a set of static analyses that are path sensitive and demand driven and can be used to determine programs paths that lead to various types of vulnerabilities.

Using Phoenix in Anti-Virus Curricula
Jack Davidson
University of Virginia, USA

An anti-virus software course that uses Phoenix in the programming assignments can introduce students to the use of compiler program analyses in the detection of malicious code.

A Viable Approach to Compiling Sequential Codes for CMPs
David August
Princeton University, U.S.

Instruction-level data flow driven program refactoring is a promising approach to extracting decoupled pipeline parallelism from sequential programs. A fairly straight-forward implementation is able to extract parallelism from many SPEC benchmarks and generate speedups of up to 20% on whole programs. In this work, we expect to fully develop compiler technology that will produce speedups many times the original proof of concept.

Improving the Compilation of Lazy Functional Languages Using Phoenix and the SSCLI
Andre Santos
Federal University of Pernambuco, Brazil

We propose to continue the development of the Haskell compiler for .NET, pursuing a detailed analysis on the performance bottlenecks we have found, using the new SSCLI version and Phoenix. For Phoenix, specifically, we intend to integrate it to the backend of the compiler, in order to use it as a code generator for the compiler and also as our code instrumentation and analysis tool.

A Phoenix-Based Tool for Data Flow Testing
Dragan Bojic
University of Belgrade, Serbia and Montenegro

The main outcome of the project should be a data flow testing tool, based on Phoenix RDK. The tool will support dataflow test-adequacy criteria such as: def-use, c-use, p-use, and all-use. We will also consider implementing other criteria as well, such as all du-paths or interprocedural data flow testing (global def-uses).

Concurrency Support for Managed Code and Interactive AsmL
Dean Rosenzweig
University of Zagreb, Croatia

We propose two variants of the project, depending on available resources. The first variant includes SSCLI based runtime support for efficient execution of finely grained potentially concurrent code over a transactional memory and a Phoenix-based AsmL compiler. The second variant extends the first one with optional support for contracts and plug-in architecture for external reasoning tools.

SPBU for Phoenix (SPBU4PHX): A Set of Compiler Development and AOP Tools Based on Phoenix
Vladimir Safonov
St. Petersburg University, Russia

The purpose of the project is to develop a set of state-of-the-art compiler development and aspect-oriented programming tools based on Phoenix, as an enhancement of our previous experience of developing Aspect.NET project on top of Phoenix, and of our 30 years experience in compiler development area.

Adaptive Heap Size Control Using Phoenix and .NET Virtual Machine
Chen Ding
University of Rochester, U.S.

At present, the task of memory management for garbage collected programs rests completely at the control of the virtual machine. The goal of this research is to explore ways where information of program behavior patterns could be used to augment the default management policies. It will lead to program-specific policies that adapt to the need of individual programs.

Region Memory System for Scalable Performance
Wei-Ngan Chin
National University of Singapore

We propose region-based memory system (as a complement to garbage-collected heap) whereby objects with similar lifetimes are placed into the same region, whenever possible. We explore techniques to make region inference more precise and predictable for scalable performance to be achieved for large-scale applications. We intend for this project to be conducted under the Phoenix/SSCLI platform to allow support for a wide range of processor architectures, including those suitable for real-time and embedded systems.

 

 

 

 

 

Research Highlights


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