arXivDaily arXiv每日学术速递 周一至周五更新
北美退伍军人节(Veterans Day),12 日无更新
arXiv 1109.0779cs.PLcs.SE
收藏

MELT -嵌入在GCC编译器中的翻译的领域特定语言

MELT - a Translated Domain Specific Language Embedded in the GCC Compiler

Basile Starynkevitch

摘要:

GCC免费编译器是一个非常大的软件,可以为各种系统上的许多目标编译多种语言的源代码。它可以通过插件进行扩展,插件可以利用其强大的功能,通过处理各种GCC内部表示(Gimple,Tree等)来提供额外的特定功能(警告,优化,源代码重构或导航)。用C语言编写插件是一项复杂而耗时的任务,但是使用现有的脚本语言来定制GCC是不切实际的。我们描述MELT,一个特定的Lisp类DSL,适合现有的GCC技术,并提供高层次的功能(功能,对象或自反编程,模式匹配)。MELT被翻译成适合GCC内部构件的C,并提供各种功能来促进这一点。这项工作表明,即使是庞大的遗留软件也可以通过专门定制和翻译的高级DSL进行后验扩展。

英文摘要:

The GCC free compiler is a very large software, compiling source in several languages for many targets on various systems. It can be extended by plugins, which may take advantage of its power to provide extra specific functionality (warnings, optimizations, source refactoring or navigation) by processing various GCC internal representations (Gimple, Tree, ...). Writing plugins in C is a complex and time-consuming task, but customizing GCC by using an existing scripting language inside is impractical. We describe MELT, a specific Lisp-like DSL which fits well into existing GCC technology and offers high-level features (functional, object or reflexive programming, pattern matching). MELT is translated to C fitted for GCC internals and provides various features to facilitate this. This work shows that even huge, legacy, software can be a posteriori extended by specifically tailored and translated high-level DSLs.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑