Domain-specific programming assistance in an embedded DSL for generating processor emulators

Domain-specific programming assistance in an embedded DSL for generating processor emulators
复制标题

嵌入式 DSL 中用于生成处理器仿真器的特定领域编程帮助

DOI:
10.1145/3412841.3442000
复制
发表时间:
2021
期刊:
Proc. of 36th Annual ACM Symposium on Applied Computing (SAC 2021)
影响因子:
--
通讯作者:
Chiba Shigeru
Chiba Shigeru
中科院分区:
--
文献类型:
--
作者:
Okuda Katsumi;Chiba Shigeru

文献摘要

参考文献

相似文献

本文提出了一种设计方法,用于开发一个嵌入式领域特定的语言(DSL)与特定领域的编程援助。为了证明所提出的方法,我们描述了我们的处理器描述语言MELTRANS,这是一个嵌入式DSL托管Java的设计。MELTRANS用于生成具有动态二进制翻译的快速处理器仿真器。虽然这种嵌入式DSL只能为编程提供很差的特定领域的帮助,但MELTRANS改善了这种情况。我们的想法是让宿主语言的集成开发环境(IDE)使用特定领域的知识提供更好的编程帮助。为此,我们将MELTRANS中的程序分解为对应于不同关注点的几个Java类,并为描述顺序设置规则。语言运行库接受每个类,不仅为处理器模拟器生成代码,还为以后编写的类生成超类。用户将描述关注点的每个类编写为生成类的子类。生成的类使用户能够以更特定于域的风格从Java IDE的编程帮助中受益。虽然MELTRANS是用Java托管的,但生成的仿真器是用C++编写的。为了验证我们的设计,我们在MELTRANS中实现了几个仿真器,并对它们进行了实验。结果表明,我们的特定领域的编程辅助可以有效地减少需要由用户编写的代码量,生成的仿真器达到1,000 MIPS以上。
This paper presents a design approach for developing an embedded domain-specific language (DSL) with domain-specific programming assistance. To demonstrate the proposed approach, we describe the design of our processor description language called MELTRANS, which is an embedded DSL hosted by Java. MELTRANS is used to generate a fast processor emulator with dynamic binary translation. Although such embedded DSLs have provided only poor domain-specific assistance for programming, MELTRANS improves this poorness. Our idea is to let the integrated development environment (IDE) of the host language provide better programming assistance using domain-specific knowledge. To this end, we decompose a program in MELTRANS into several Java classes corresponding to a different concern and set a rule for the description order. The language runtime takes each class and generates not only the code for processor emulators but also superclasses for classes written later. The user writes each class describing a concern as the subclasses of a generated class. The generated classes enable the user to benefit from programming assistance by Java IDEs in a more domain-specific style. While MELTRANS is hosted in Java, the generated emulators are written in C++. To validate our design, we implement several emulators in MELTRANS and perform experiments with them. The results show that our domain-specific programming assistance can effectively reduce the amount of code that needs to be written by the user, and the generated emulators achieve over 1,000 MIPS.
用于指令集架构模拟的可重定向框架
DOI: 10.1145/1151074.1151083
发表时间: 2006
期刊: ACM Trans. Embed. Comput. Syst.
影响因子: --
作者:
Mehrdad Reshadi;N. Dutt;P. Mishra
通讯作者: P. Mishra
从处理器描述生成软件工具以进行硬件/软件协同设计
DOI: 10.1109/dac.1997.597162
发表时间: 1997
期刊: Proceedings of the 34th Design Automation Conference
影响因子: --
作者:
M. Hartoog;J. Rowson;P. D. Reddy;S. Desai;D. Dunlop;Edwin A. Harcourt;Neeti Khullar
通讯作者: Neeti Khullar
适用于特定应用处理器架构的通用工具集
DOI: 10.1109/hsc.2000.843720
发表时间: 2000
期刊: Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518)
影响因子: --
作者:
F. Engel;J. Nührenberg;G. Fettweis
通讯作者: G. Fettweis
可重定向、高性能指令集模拟中的 Java 虚拟机
DOI: 10.1145/2093157.2093161
发表时间: 2011
期刊: --
影响因子: --
作者:
M. Kaufmann;Matthias Häsing;Thomas B. Preußer;R. Spallek
通讯作者: R. Spallek
Pydgin:使用元跟踪 JIT 编译器从简单的架构描述生成快速指令集模拟器
DOI: --
发表时间: 2015
期刊: IEEE International Symposium on Performance Analysis of Systems and Software
影响因子: --
作者:
Derek Lockhart;Berkin Ilbeyi;C. Batten
通讯作者: C. Batten