Growing a language environment with editor libraries

Growing a language environment with editor libraries
复制标题

使用编辑器库发展语言环境

DOI:
--
复制
发表时间:
2011
期刊:
International Conference on Generative Programming: Concepts and Experiences
影响因子:
--
通讯作者:
E. Visser
E. Visser
中科院分区:
--
文献类型:
--
作者:
Sebastian Erdweg;L. Kats;Tillmann Rendel;Christian Kästner;K. Ostermann;E. Visser

文献摘要

被引文献

相似文献

大型软件项目由用多种不同的(可能是特定于领域的)语言编写的代码组成,这些代码经常深入地分散在单个文件中。虽然存在许多关于如何在语义和语法上集成语言的建议,但如何在集成开发环境(IDE)中支持此场景的问题仍然没有解决:如何以可扩展和组合的方式提供标准IDE服务,例如语法高亮显示、概述或引用解析,以便在单个文件中支持开放的语言组合?
Large software projects consist of code written in a multitude of different (possibly domain-specific) languages, which are often deeply interspersed even in single files. While many proposals exist on how to integrate languages semantically and syntactically, the question of how to support this scenario in integrated development environments (IDEs) remains open: How can standard IDE services, such as syntax highlighting, outlining, or reference resolving, be provided in an extensible and compositional way, such that an open mix of languages is supported in a single file? Based on our library-based syntactic extension language for Java, SugarJ, we propose to make IDEs extensible by organizing editor services in editor libraries. Editor libraries are libraries written in the object language, SugarJ, and hence activated and composed through regular import statements on a file-by-file basis. We have implemented an IDE for editor libraries on top of SugarJ and the Eclipse-based Spoofax language workbench. We have validated editor libraries by evolving this IDE into a fully-fledged and schema-aware XML editor as well as an extensible Latex editor, which we used for writing this paper.