From: Paul Klint To: Date: Wed, 14 Mar 2007 07:42:25 +0100 Subject: Two lectures by IBM researchers You are cordially inviated for the following two lectures: Frank Tip: Declarative Object Identity using Relation Types Robert Fuhrer: SAFARI: A Meta-Tooling Platform for Creating Language-Specific IDE's Date: Monday March 19, 2007 Time: 14:00-16:00 Venue: Centrum for Wiskunde en Informatica (CWI), Kruislaan 413, Amsterdam Room: Z009 Details can be found below. Regards, -- Paul Klint ---------------------------------------------------------------------------- SAFARI: A Meta-Tooling Platform for Creating Language-Specific IDE's Robert Fuhrer, IBM T.J. Watson Research Center Building a state-of-the-art Eclipse IDE for a new programming language is a difficult undertaking. Although much of this work is inevitable and requires an in-depth understanding of the language structure and semantics, a significant portion embodies common themes and code structures, and requires extensive knowledge of Eclipse API's, which represent a great opportunity for code and knowledge reuse in the form of a meta-tooling framework for IDE development. 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: * generation and management of parsers, AST's, and semantic analysis * syntax highlighting, outline view population, package explorer-like navigation, content assistance, project natures and builders, error markers * refactoring support (not only "Move" and "Rename", but type- and code-related refactorings requiring non-trivial analysis, e.g. "Extract Method" and "Infer Type Arguments") * static program analysis (pointer analysis, type analysis, etc.) in support of the above * execution and debugging support We accomplish this by a mixture of language service-creation wizards, class libraries to encapsulate common language-processing infrastructure, and code skeletons to get the language service-implementer started. Moreover, the SAFARI framework has been engineered to support the incremental specification and implementation of language services for languages that derive from an existing base language, as for example our X10 concurrent programming language does from Java. In this way, IDE's built using SAFARI are themselves extensible. SAFARI has been driven in part from the need to produce full-featured IDE's for several language research activities at IBM Research, including: * the X10 language, a Java-derived language for highly concurrent programs * the XJ language, which integrates XML access, literal documents and schema types into Java * the JikesPG grammar specification language 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. ----------------------------------------------------------------------------