Abstract
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.
- Isabelle Attali, Carine Courbis, Pascal Degenne, Alexandre Fau, Didier Parigot, and Claude Pasquier. Smarttools: A generator of interactive environments tools. In CC, pages 355--360, 2001. Google Scholar
Digital Library
- Don Batory, Roberto E. Lopez-Herrejon, and Jean-Philippe Martin. Generating product-lines of product-families. In IEEE Conf. on Automated Software Engn., page 81, 2002. Google Scholar
Digital Library
- Azad Bolour. Notes on the eclipse plugin architecture. http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin-architecture.html.Google Scholar
- P. Borras, D. Clement, Th. Despeyroux, J. Incerpi, G. Kahn, B. Lang, and V. Pascual. Centaur: the system. In ACM Symposium on Practical Software Development Environments, pages 14--24, 1988. Google Scholar
Digital Library
- Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In OOPSLA, pages 519--538, 2005. ISBN 1-59593-031-0. Google Scholar
Digital Library
- Philippe Charles, Robert M. Fuhrer, and Stanley M. Sutton Jr. IMP: a meta-tooling platform for creating language-specific IDEs in eclipse. In 22nd IEEE/ACM International Conference on Automated Software Engineering (ASE 2007), November 5-9, 2007, Atlanta, Georgia, USA, pages 485--488, 2007. Google Scholar
Digital Library
- eclipse.org/aspectj. AspectJ project. http://www.eclipse.org/aspectj/.Google Scholar
- eclipse.org/dltk. Dynamic Languages Toolkit. http://www.eclipse.org/dltk/.Google Scholar
- eclipse.org/jdt. Eclipse Java Development Tools. http://www.eclipse.org/jdt/.Google Scholar
- Wan Fokkink, Paul Klint, Bert Lisser, and Yaroslav S. Usenko. Towards formal verification of toolbus scripts. In AMAST 2008: Proceedings of the 12th international conference on Algebraic Methodology and Software Technology, pages 160--166, Berlin, Heidelberg, 2008. Springer-Verlag. Google Scholar
Digital Library
- M. Fowler. Language workbenches: The killer-app for domain specific languages? http://www.martinfowler.com/articles/language-Workbench.html.Google Scholar
- Bugra Gedik, Henrique Andrade, Kun-Lung Wu, Philip S. Yu, and Myungcheol Doo. Spade: the system s declarative stream processing engine. In SIGMOD '08: Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pages 1123--1134, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- John Grundy, John Hosking, Jun Huh, and Karen Na-Liu Li. Marama: an eclipse meta-toolset for generating multi-view environments. In ICSE '08: Proceedings of the 30th international conference on Software engineering, pages 819--822, New York, NY, USA, 2008. ACM. Google Scholar
Digital Library
- J. Heering, P. R. H. Hendriks, P. Klint, and J. Rekers. The syntax definition formalism sdf--reference manual. SIGPLAN Not., 24(11):43--75, 1989. ISSN 0362-1340. Google Scholar
Digital Library
- Pedro Rangel Henriques, Maria Joao Varanda Pereira, Marjan Mernik, Mitja Lenic, Jeff Gray, and Hui Wu. Automatic generation of language-based tools using LISA. IEE Proceedings - Software, 152(2):54--69, April 2005.Google Scholar
Cross Ref
- Jetbrains.com. JetBrains Meta Programming System. http://www.jetbrains.com/mps/.Google Scholar
- R. Kadia. Issues encountered in building a flexible software development environment: lessons from the arcadia project. SIGSOFT Softw. Eng. Notes, 17(5):169--180, 1992. ISSN 0163-5948. Google Scholar
Digital Library
- Lennar Kats and Karl Trygve Kalleberg. StrategoXT-Spoofax-IMP. http://strategoxt.org/Stratego/Spoofax-IMP, 2009.Google Scholar
- lpg.sourceforge.net. LPG. http://www.sourceforge.net/projects/lpg/.Google Scholar
- N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An extensible compiler framework for Java. In CC, pages 138--152, 2003. Google Scholar
Digital Library
- James M. Purtilo. The polylith software bus. ACM Trans. Program. Lang. Syst., 16(1):151--174, 1994. ISSN 0164-0925. Google Scholar
Digital Library
- python.org. Python. http://www.python.org/.Google Scholar
- Steven P. Reiss. Connecting tools using message passing in the field environment. IEEE Softw., 7(4):57--66, 1990. ISSN 0740-7459. Google Scholar
Digital Library
- T. Reps and T. Teitelbaum. The synthesizer generator. In ACM Symposium on Practical Software Development Environments, pages 42--48, April 1984. Google Scholar
Digital Library
- ruby-lang.org. Ruby. http://www.ruby-lang.org/.Google Scholar
- Mark van den Brand and Eelco Visser. Generation of formatters for context-free languages. ACM Trans. Softw. Eng. Methodol., 5(1):1--41, 1996. ISSN 1049-331X. Google Scholar
Digital Library
- Mark van den Brand et al. The ASF+SDF meta-environment: A component-based language development environment. In Computational Complexity, pages 365--370, 2001. Google Scholar
Digital Library
- Jurgen Vinju, T. van der Storm, Paul Klint, Bas Basten, and Arnold Lankamp. Rascal: A domain specific language for software analysis and transformation. Poster presentation, Scientific ICT-Research Event Netherlands (SIREN), Sep. 29, 2008, 2008.Google Scholar
- Eelco Visser. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In C. Lengauer et al., editors, Domain-Specific Program Generation, volume 3016 of Lecture Notes in Computer Science, pages 216--238. Spinger-Verlag, June 2004.Google Scholar
- X10.sourceforge.net. X10. http://www.sourceforge.net/projects/x10/.Google Scholar
Index Terms
Accelerating the creation of customized, language-Specific IDEs in Eclipse
Recommendations
IMP: a meta-tooling platform for creating language-specific ides in eclipse
ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software EngineeringProgramming 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 ...
Accelerating the creation of customized, language-Specific IDEs in Eclipse
OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applicationsFull-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 spoofax language workbench: rules for declarative specification of languages and IDEs
OOPSLA '10Spoofax is a language workbench for efficient, agile development of textual domain-specific languages with state-of-the-art IDE support. Spoofax integrates language processing techniques for parser generation, meta-programming, and IDE development into ...







Comments