|
|---|
Robert M. Fuhrer
Philippe Charles
Stanley M. Sutton Jr.
Chris Laffra
SAFARI is an ongoing project at IBM Watson Research to develop such meta- tooling for Eclipse. The goal of the project is to ease the development of commercial-quality IDE support for new programming languages, including the following features:
SAFARI has been driven in part from the need to produce full-featured IDE's for several language research activities at IBM Research, including:
Our framework builds on top of Chris Laffra's prototype "UIDE" (Universal IDE, demonstrated at EclipseCon 2005), the JikesPG parser generator (http://sourceforge.net/projects/lpg /) and WALA static analysis framework (http://wala.sourceforge.net/) developed at IBM Research, and, for the "Java family" of languages (including Java, XJ, and X10), the Polyglot compiler framework by Andrew Myers' group at Cornell University (http://www.cs.cornell.edu/P rojects/polyglot/).
Based on the enthusiastic response we've gotten to demonstrations at EclipseCon 2006 and OOPSLA 2006, we have initiated the process of creating an Eclipse technology project to make SAFARI available as open-source to the Eclipse community.
In this talk, we will present the architecture, discuss the somewhat unusual demands that a full-featured IDE place on the compiler front-end, give a brief demonstration of our prototype of the SAFARI system, and describe our plans for its future.
Robert has spent the last several years developing static analyses and advanced refactorings for Java in Eclipse, some of which are now part of the Eclipse JDT, including generics-related refactorings ("Infer Type Arguments" and "Introduce Type Parameter"), type-related refactorings ("Extract Interface" and "Generalize Type") and others (e.g. "Introduce Factory"). Robert also developed a smell detection framework for Java in Eclipse, demoed at ECOOP and OOPSLA in 2004, which includes a code duplication detector. Prior to that, Robert worked on a diverse set of projects, including two visual programming languages, a film scoring system, manufacturing optimization algorithms, and hardware synthesis and verification for asynchronous circuits. When not writing code or papers, Robert spends his spare time playing jazz, fusion and progressive rock in his home studio.
Philippe has been working in the area of compiler construction and programming language tools for several years. He was an original developer of the Jikes compiler and the principal author of the LPG parser generator. He is currently a core member of the SAFARI and X10 development teams at IBM Research.
Stan began his academic and professional career as a geologist before switching to software engineering. He received a Ph. D. in Computer Science from the University of Colorado, Boulder, in 1990 and has since worked in both academia and industry, on both research and applied projects. His main areas of interest and experience include software processes, process programming, and process modeling; aspect-oriented software development and concern modeling; and software development environments.
Chris was born in The Netherlands, obtained a MsC at the Vrije Universiteit of Amsterdam and a PhD at the Erasmus University of Rotterdam. At both IBM T.J. Watson Research Center and Morgan-Stanley, Chris worked on tools for user interfaces, component infrastructures, program analysis, debugging, visualization, compression, and optimization. He led the OTI Amsterdam lab for 3.5 years, working on WebSphere Studio Device Developer. He worked with IBM Rational in Ottawa on Java runtimes and Eclipse and in RTP on Eclipse Performance. Currently he works on EGL, IBM's 4GL solution.