skip to main content
research-article

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

Published:25 October 2009Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Azad Bolour. Notes on the eclipse plugin architecture. http://www.eclipse.org/articles/Article-Plug-in-architecture/plugin-architecture.html.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. eclipse.org/aspectj. AspectJ project. http://www.eclipse.org/aspectj/.Google ScholarGoogle Scholar
  8. eclipse.org/dltk. Dynamic Languages Toolkit. http://www.eclipse.org/dltk/.Google ScholarGoogle Scholar
  9. eclipse.org/jdt. Eclipse Java Development Tools. http://www.eclipse.org/jdt/.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Fowler. Language workbenches: The killer-app for domain specific languages? http://www.martinfowler.com/articles/language-Workbench.html.Google ScholarGoogle Scholar
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. 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 ScholarGoogle ScholarCross RefCross Ref
  16. Jetbrains.com. JetBrains Meta Programming System. http://www.jetbrains.com/mps/.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. Lennar Kats and Karl Trygve Kalleberg. StrategoXT-Spoofax-IMP. http://strategoxt.org/Stratego/Spoofax-IMP, 2009.Google ScholarGoogle Scholar
  19. lpg.sourceforge.net. LPG. http://www.sourceforge.net/projects/lpg/.Google ScholarGoogle Scholar
  20. N. Nystrom, M. Clarkson, and A. Myers. Polyglot: An extensible compiler framework for Java. In CC, pages 138--152, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. James M. Purtilo. The polylith software bus. ACM Trans. Program. Lang. Syst., 16(1):151--174, 1994. ISSN 0164-0925. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. python.org. Python. http://www.python.org/.Google ScholarGoogle Scholar
  23. Steven P. Reiss. Connecting tools using message passing in the field environment. IEEE Softw., 7(4):57--66, 1990. ISSN 0740-7459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. T. Reps and T. Teitelbaum. The synthesizer generator. In ACM Symposium on Practical Software Development Environments, pages 42--48, April 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. ruby-lang.org. Ruby. http://www.ruby-lang.org/.Google ScholarGoogle Scholar
  26. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  28. 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 ScholarGoogle Scholar
  29. 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 ScholarGoogle Scholar
  30. X10.sourceforge.net. X10. http://www.sourceforge.net/projects/x10/.Google ScholarGoogle Scholar

Index Terms

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

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 44, Issue 10
      OOPSLA '09
      October 2009
      554 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1639949
      Issue’s Table of Contents
      • cover image ACM Conferences
        OOPSLA '09: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
        October 2009
        590 pages
        ISBN:9781605587660
        DOI:10.1145/1640089

      Copyright © 2009 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 25 October 2009

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!