program registration submissions committee lodging portland

D19: SAFARI: A Platform for Generating Language-Specific IDE Support

D19: SAFARI: A Platform for Generating Language-Specific IDE Support

Tuesday, Oct 24, from 14:00 to 14:30
Wednesday, Oct 25, from 11:30 to 12:00
Thursday, Oct 26, from 10:30 to 11:00
Thursday, Oct 26, from 16:30 to 17:00

Despite advances in IDE extensibility, it is still quite tedious to build robust and high-functionality IDE support for new programming languages. Although much of this work is inevitable, depending upon language-specific details of structure and semantics, a significant portion embodies common themes and code structures. Likewise, languages themselves employ many common structural and semantic concepts; yet traditionally, static analysis frameworks have been designed to handle precisely one language. SAFARI is an ongoing project at IBM Research to develop a meta-tooling framework for Eclipse that permits considerable code reuse at both levels. The scope of the project is to ease the development of the following for new programming languages: * commercial-quality IDE support (e.g. source highlighting, source outlining, navigational views, content and remediation assistance, source folding and formatting, incremental project building, compiler error markers, debugging) * refactoring support (including type- and code-related refactorings requiring non-trivial analysis, e.g. "Extract Method" and "Infer Type Arguments") * static program analysis (pointer analysis, type analysis, and flow analyses) We accomplish this by a combination of service creation wizards, a class library encapsulating common language-processing infrastructure, declarative specifications, and skeletal service implementations. The SAFARI framework is also being designed to support the incremental specification of services for languages that derive from an existing base, as, e.g., SQL/J does from Java. The presentation will start by demonstrating IDE's we created using an early prototype of SAFARI, for X10, a language for highly concurrent programs, for JavaScript, and for the JikesPG grammar specification language. These IDE's include such features as content assistance, source outlining, hover help, source hyperlinking and folding, and source line breakpoints. We'll walk through the creation of some basic language services for a small programming language and describe our plans for SAFARI's future.

Philippe Charles, IBM T.J. Watson Research Center
Robert Fuhrer, IBM T.J. Watson Research Center
Stan Sutton, IBM T.J. Watson Research Center

Demonstration Schedule

While Space Available
program registration submissions committee lodging portland
For comments and questions about the web site
please contact us at
© 2005 OOPSLA