IMP: a meta-tooling platform for creating language-specific ides in eclipse

Philippe Charles, Robert M. Fuhrer, Stanley M. Sutton Jr.. IMP: a meta-tooling platform for creating language-specific ides in eclipse. In R. E. Kurt Stirewalt, Alexander Egyed, Bernd Fischer, editors, 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), November 5-9, 2007, Atlanta, Georgia, USA. pages 485-488, ACM, 2007. [doi]


Programming language design remains a vital field, with interest in languages targeting concurrency, scripting, and aspects, as well as in domain-specific languages. Full-featured integrated development environments (IDEs) have become critical to the adoption of new languages. A key factor in the success of these IDEs is the provision of services specifically tailored to the language. However, modern IDE frame-works are large and complex, and the cost of constructing a language-specific IDE from scratch remains prohibitive.

IMP is an IDE meta-tooling platform intended to relieve much of the burden of IDE development in Eclipse. IMP combines a language-independent framework, generators for partial implementations of language-specific services, and support for the completion of service implementations by programming at various levels of abstraction. Unlike much of the previous work, IMP permits significant customization of IDE appearance and behavior and accommodates incremental elaboration of the IDE; it also makes significant reuse of code and assists during the IDE development process. IMP-based IDEs are in use in research projects in IBM, including within IMP itself. IMP is available as an open-source release from