Nothing Special   »   [go: up one dir, main page]

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 2016 Publication 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.

Supplementary Material

Auxiliary Archive (p152-keidel-s.zip)
The auxiliary material contains the artifact submitted to the SLE'16 artifact submission.

References

[1]
Dorian Birsan. On plug-ins and extensible architectures. ACM Queue, 3(2):40–46, 2005.
[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.
[3]
Sergey Dmitriev. Language oriented programming: The next programming paradigm. JetBrains onBoard, 1(2), 2004.
[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.
[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.
[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.
[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.
[8]
Jakob Nielsen. Usability engineering. Elsevier, 1994.
[9]
Martin Richards. The portability of the bcpl compiler. Software: Practice and Experience, 1971.
[10]
Scott Buckley Tony Sloane, Matt Roberts and Shaun Muscat. Monto: A disintegrated development environment. Software Language Engineering, pages 211–220, 2014.
[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.
[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.
[13]
Martin P Ward. Language-oriented programming. Software-Concepts and Tools, 15(4):147–161, 1994.

Cited By

View all
  • (2022)Execution vs. Parse-Based Language Servers: Tradeoffs and Opportunities for Language-Agnostic Tooling for Dynamic LanguagesProceedings of the 18th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3563834.3567537(1-14)Online publication date: 29-Nov-2022
  • (2021)Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and VisualizationSensors10.3390/s2116556021:16(5560)Online publication date: 18-Aug-2021
  • (2020)Modular and distributed IDEProceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3426425.3426947(270-282)Online publication date: 16-Nov-2020
  • Show More Cited By

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 October 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. integrated development environments
  2. reusable software

Qualifiers

  • Research-article

Conference

SLE '16
Sponsor:
SLE '16: Software Language Engineering
October 31 - November 1, 2016
Amsterdam, Netherlands

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2022)Execution vs. Parse-Based Language Servers: Tradeoffs and Opportunities for Language-Agnostic Tooling for Dynamic LanguagesProceedings of the 18th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3563834.3567537(1-14)Online publication date: 29-Nov-2022
  • (2021)Distributed Architecture for an Integrated Development Environment, Large Trace Analysis, and VisualizationSensors10.3390/s2116556021:16(5560)Online publication date: 18-Aug-2021
  • (2020)Modular and distributed IDEProceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3426425.3426947(270-282)Online publication date: 16-Nov-2020
  • (2020)Framework-aware debugging with stack tailoringProceedings of the 16th ACM SIGPLAN International Symposium on Dynamic Languages10.1145/3426422.3426982(71-84)Online publication date: 17-Nov-2020
  • (2019)Towards language-parametric semantic editor services based on declarative type system specificationsProceedings Companion of the 2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3359061.3362782(19-20)Online publication date: 20-Oct-2019
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsACM SIGPLAN Notices10.1145/3170472.313384252:11(3-14)Online publication date: 24-Oct-2017
  • (2017)Interactive development using the Dotty compiler (tool paper)Proceedings of the 8th ACM SIGPLAN International Symposium on Scala10.1145/3136000.3136012(41-44)Online publication date: 22-Oct-2017
  • (2017)A concurrency-agnostic protocol for multi-paradigm concurrent debugging toolsProceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages10.1145/3133841.3133842(3-14)Online publication date: 24-Oct-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media