Accelerating the creation of customized, language-Specific IDEs in Eclipse

Full-featured integrated development environments have become critical to the adoption of new programming languages. Key to the success of these IDEs is the provision of services tailored to the languages. However, modern IDEs are large and complex, and the cost of constructing one from scratch can be prohibitive. Generators that work from language specifications reduce costs but produce environments that do not fully reflect distinctive language characteristics. We believe that there is a practical middle ground between these extremes that can be effectively addressed by an open, semi-automated strategy to IDE development. This strategy is to reduce the burden of IDE development as much as possible, especially for internal IDE details, while opening opportunities for significant customizations to IDE services. To reduce the effort needed for customization we provide a combination of frameworks, templates, and generators. We demonstrate an extensible IDE architecture that embodies this strategy, and we show that this architecture can be used to produce customized IDEs, with a moderate amount of effort, for a variety of interesting languages.

[1]  Paul Klint,et al.  The syntax definition formalism SDF—reference manual— , 1989, SIGP.

[2]  Eelco Visser,et al.  Generation of formatters for context-free languages , 1996, TSEM.

[3]  Wan Fokkink,et al.  Towards Formal Verification of ToolBusScripts , 2008, AMAST.

[4]  Roberto Erick Lopez-Herrejon,et al.  Generating product-lines of product-families , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[5]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[6]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[7]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[8]  John C. Grundy,et al.  Marama: an eclipse meta-toolset for generating multi-view environments , 2008, ICSE '08.

[9]  Stanley M. Sutton,et al.  IMP: a meta-tooling platform for creating language-specific ides in eclipse , 2007, ASE '07.

[10]  Didier Parigot,et al.  SmartTools: a Generator of Interactive Environment Tools , 2001, LDTA@ETAPS.

[11]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[12]  James M. Purtilo,et al.  The POLYLITH software bus , 1994, TOPL.

[13]  Philip S. Yu,et al.  SPADE: the system s declarative stream processing engine , 2008, SIGMOD Conference.

[14]  R. Kadia,et al.  Issues encountered in building a flexible software development environment: lessons from the Arcadia project , 1992, SDE 5.

[15]  Steven P. Rei Connecting Tools Using Message Passing in the Field Environment , 1990 .

[16]  Maria João Varanda Pereira,et al.  Automatic Generation of Language-based Tools , 2002, Electron. Notes Theor. Comput. Sci..

[17]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[18]  Michael R. Clarkson,et al.  Polyglot: An Extensible Compiler Framework for Java , 2003, CC.