首页> 外文学位 >Domain Specific Languages for Small Embedded Systems
【24h】

Domain Specific Languages for Small Embedded Systems

机译:小型嵌入式系统的领域特定语言

获取原文
获取原文并翻译 | 示例

摘要

Resource limited embedded systems provide a great challenge to programming using functional languages. Although these embedded systems cannot be programmed directly with Haskell, I show that an embedded domain specific language is able to be used to program them, and provides a user friendly environment for both prototyping and full development. The Arduino line of microcontroller boards provide a versatile, low cost and popular platform for development of these resource limited systems, and I use these boards as the platform for my DSL research.;First, I provide a shallowly embedded domain specific language, and a firmware interpreter, allowing the user to program the Arduino while tethered to a host computer. Shallow EDSLs allow a programmer to program using many of the features of a host language and its syntax, but sacrifice performance. Next, I add a deeply embedded version, allowing the interpreter to run standalone from the host computer, as well as allowing the code to be compiled to C and then machine code for efficient operation. Deep EDSLs provide better performance and flexibility, through the ability to manipulate the abstract syntax tree of the DSL program, but sacrifice syntactical similarity to the host language. Using Haskino, my EDSL designed for Arduino microcontrollers, and a compiler plugin for the Haskell GHC compiler, I show a method for combining the best aspects of shallow and deep EDSLs. The programmer is able to write in the shallow EDSL, and have it automatically transformed into the deep EDSL. This allows the EDSL user to benefit from powerful aspects of the host language, Haskell, while meeting the demanding resource constraints of the small embedded processing environment.
机译:资源受限的嵌入式系统对使用功能语言进行编程提出了巨大挑战。尽管无法使用Haskell直接对这些嵌入式系统进行编程,但我证明了可以使用嵌入式领域特定的语言对其进行编程,并为原型设计和全面开发提供了用户友好的环境。 Arduino系列微控制器板为这些资源有限的系统的开发提供了一种通用的,低成本且流行的平台,我将这些板用作DSL研究的平台。首先,我提供了一种浅层嵌入式领域专用语言,固件解释器,允许用户在与主机捆绑时对Arduino进行编程。浅EDSL允许程序员使用宿主语言的许多功能及其语法进行编程,但会牺牲性能。接下来,我添加一个深度嵌入的版本,使解释器可以从主机独立运行,并允许将代码编译为C,然后编译为机器代码以进行有效操作。深度EDSL通过操纵DSL程序的抽象语法树的能力提供了更好的性能和灵活性,但牺牲了与主机语言的语法相似性。使用Haskino(我为Arduino微控制器设计的EDSL)和Haskell GHC编译器的编译器插件,我展示了一种结合浅层和深层EDSL最佳方面的方法。程序员能够在浅层EDSL中进行编写,并将其自动转换为深层EDSL。这使EDSL用户可以从主机语言Haskell的强大功能中受益,同时满足小型嵌入式处理环境所要求的资源限制。

著录项

  • 作者

    Grebe, Mark.;

  • 作者单位

    University of Kansas.;

  • 授予单位 University of Kansas.;
  • 学科 Computer science.
  • 学位 Ph.D.
  • 年度 2018
  • 页码 166 p.
  • 总页数 166
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号