Research Theme and Goals
My research aims to improve software quality and programmer productivity
by development and refinement of modularization techniques.
I have contributed to design, semantics, and implementation of
aspect-oriented language features, where my main goal has been to
improve the regularity, orthogonality, and conceptual integrity of
aspect language features
(see the Eos and
Nu projects for details).
I have also contributed to improving modular reasoning about
aspect-oriented programs
(see the Ptolemy
project for details).
Most of my current efforts are directed towards the design, semantics,
and implementation of
the Panini language.
The main goal of Panini's design is to address problems
with explicit concurrency features such as data races, deadlocks
and non-deterministic semantics.
Key idea is to design programming language features
and software design practices that exploit
common interaction patterns available in good, modular software
design to expose potential concurrency implicitly and safely.
In that sense, Panini's design reconciles modularity and
concurrency goals.
Recent Ideas and Results
- Panini
project, where our aim is to achieve a synergy between modularity and concurrency goals
such that if programmers structure their system to improve modularity in its design,
they get concurrency for free.
To that end, in our
GPCE'10 paper
we describe a language-based approach that helps software system using
event-driven style.
Our Onward!'10 paper
describes implicitly concurrent version of well-known Gang-of-Four design patterns.
Use of our design pattern framework implicitly exposes concurrency in program design.
- Translucid contracts that allows programmers to write modular specification
of aspect-oriented interfaces and that allows one to modularly reason about
control effects in aspect-oriented programs.
More details in our AOSD'11
paper and from the Ptolemy project's web-page that also has download for our compiler.
A detailed list of my publications is available
here.
Major Awards and Honors
Research and Educational Projects
Programming Language Design for Improved Modularity
- Panini:
Reconciling Modularity and Concurrency in Program Design.
- Ptolemy:
Quantified, typed events for improved separation of concerns.
- Nu:
Intermediate language design for maintaining design modularity in the object code.
- Eos:
Unified module system for improved separation of concerns.
Modularity in Program Verification
- Tisa:
A Language Design and Modular Verification Technique for Web Services.
Slede and
Golok:
Modular Behavior Composition for Verification.
Program Optimization
- Sapha:
Phase-based Tuning.
Frances:
A tool for understanding code generation.
More information about my research and educational projects and
publications is available from the links on the left that point to the web pages
of the Laboratory for Software Design.
Recent Professional Services
-
Program Committee:
- PC Chair, 2011 Foundations of Aspect-oriented Languages (FOAL) workshop
- PC Member, AOSD 2011
the 10th International Conference on Aspect-oriented Software Development
- PC Member, ICSE 2010:
the 32nd International Conference on Software Engineering
(research demonstrations track)
- PC Member, Onward! 2010:
the 2010 Onward! Conference on the new ideas, new paradigms track
at OOPSLA 2010
- PC Member, GPCE 2010:
the 9th International Conference on Generative Programming and Component
Engineering
- PC Member, AOSD 2010:
the 9th International Conference on Aspect-Oriented Software Development
- PC Member, OOPSLA 2009:
the ACM Conference on Object-Oriented Programming Systems, Languages,
and Applications
- PC Member, AOSD 2009:
the 8th International Conference on Aspect-Oriented Software Development
- PC Member, ACP4IS
2008,
2009, and
2010:
the Workshop on Aspects, Components, and Patterns for Infrastructure Software
- PC Member, FOAL
2006,
2008, and
2010:
the Foundations of Aspect-Oriented Languages workshop
-
Organizing Committee:
- AOSD 2009 (Student Volunteer Co-chair)
- VMIL (Co-organizer)
the workshop on Virtual Machines and Intermediate Languages (2007 - 2009).
Acting PC chair for 2008 and 2009 and co-chair for 2007.
-
Reviewer:
-
Referee:
Formal Methods 2006,
COMPSAC 2006,
OOPSLA 2006, ESEC/FSE 2007,
OOPSLA 2008.
Funding
|