skip to main content
10.1145/2997364.2997368acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

The IDE portability problem and its solution in Monto

Published:20 October 2016Publication History

ABSTRACT

Modern IDEs support multiple programming languages via plug-ins, but developing a high-quality language plug-in is a huge development effort and individual plug-ins are not reusable in other IDEs. We call this the IDE portability problem.

In this paper, we present a solution to the IDE portability problem based on a language-independent and IDE-independent intermediate representation (IR) for editor-service products. This IR enables IDE-independent language services to provide editor services for arbitrary IDEs, using language-independent IDE plug-ins. We combine the IR with a service-oriented architecture to facilitate the modular addition of language services, the decomposition of language services into smaller interdependent services, and the use of arbitrary implementation languages for services.

To evaluate the feasibility of our design, we have implemented the IR and architecture in a framework called Monto. We demonstrate the generality of our design by constructing language services for Java, JavaScript, Python, and Haskell and show that they are reusable in the Eclipse IDE and in a web-based IDE. We also evaluate the performance of Monto and show that Monto is responsive and has admissible performance overhead.

Skip Supplemental Material Section

Supplemental Material

References

  1. Dorian Birsan. On plug-ins and extensible architectures. ACM Queue, 3(2):40–46, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Philippe Charles, Robert M Fuhrer, and Stanley M Sutton Jr. Imp: a meta-tooling platform for creating language-specific ides in eclipse. In Proceedings of IEEE/ACM international conference on Automated software engineering, pages 485– 488, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Sergey Dmitriev. Language oriented programming: The next programming paradigm. JetBrains onBoard, 1(2), 2004.Google ScholarGoogle Scholar
  4. Sebastian Erdweg, Moritz Lichter, and Manuel Weiel. A sound and optimal incremental build system with dynamic dependencies. In Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 89–106. ACM, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Sebastian Erdweg, Tijs van der Storm, Markus Völter, Laurence Tratt, Remi Bosman, William R. Cook, Albert Gerritsen, Angelo Hulshout, Steven Kelly, Alex Loh, Gabriël D. P. Konat, Pedro J. Molina, Martin Palatnik, Risto Pohjonen, Eugen Schindler, Klemens Schindler, Riccardo Solmi, Vlad A. Vergu, Eelco Visser, Kevin van der Vlist, Guido Wachsmuth, and Jimi van der Woning. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Computer Languages, Systems & Structures, 44:24–47, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Moritz Eysholdt and Heiko Behrens. Xtext: Implement your language faster than the quick and dirty way. In Proceedings of ACM international conference companion on Object oriented programming systems languages and applications companion, pages 307–309, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Lennart C. L. Kats and Eelco Visser. The Spoofax language workbench: Rules for declarative specification of languages and IDEs. In Proceedings of Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 444–463. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Jakob Nielsen. Usability engineering. Elsevier, 1994.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Martin Richards. The portability of the bcpl compiler. Software: Practice and Experience, 1971.Google ScholarGoogle ScholarCross RefCross Ref
  10. Scott Buckley Tony Sloane, Matt Roberts and Shaun Muscat. Monto: A disintegrated development environment. Software Language Engineering, pages 211–220, 2014.Google ScholarGoogle ScholarCross RefCross Ref
  11. Eelco Visser, Guido Wachsmuth, Andrew P. Tolmach, Pierre Neron, Vlad A. Vergu, Augusto Passalaqua, and Gabrieël Konat. A language designer’s workbench: A one-stop-shop for implementation and verification of language designs. In Proceedings of International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (ONWARD), pages 95–111. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Markus Völter and Vaclav Pech. Language modularity with the MPS language workbench. In Proceedings of International Conference on Software Engineering (ICSE), pages 1449–1450, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Martin P Ward. Language-oriented programming. Software-Concepts and Tools, 15(4):147–161, 1994.Google ScholarGoogle Scholar

Index Terms

  1. The IDE portability problem and its solution in Monto

        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
        • Published in

          cover image ACM Conferences
          SLE 2016: Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering
          October 2016
          257 pages
          ISBN:9781450344470
          DOI:10.1145/2997364

          Copyright © 2016 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 20 October 2016

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Upcoming Conference

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader