SPOT: A DSL for Extending Fortran Programs with Metaprogramming

SPOT: A DSL for Extending Fortran Programs with Metaprogramming
复制标题

SPOT:使用元编程扩展 Fortran 程序的 DSL

DOI:
10.1155/2014/917327
复制
发表时间:
2014
期刊:
Adv. Softw. Eng.
影响因子:
--
通讯作者:
J. Gray
J. Gray
中科院分区:
--
文献类型:
--
作者:
Songqing Yue;J. Gray

文献摘要

参考文献

被引文献

相似文献

元编程通过提供编程语言技术来解决模块性、可重用性、可维护性和可扩展性等问题,在提高软件质量方面展现出了很大的潜力。到目前为止,元编程的威力在高性能计算(HPC)领域尚未得到深入探索。在整个高性能计算社区中,有大量用Fortran编写的遗留代码在运行。为了促进高性能计算系统中的软件维护和演进,我们引入了一种领域特定语言(DSL),它可通过为指定程序转换提供更高层次的抽象来对Fortran程序进行源到源的翻译。底层的转换实际上是通过元对象协议(MOP)来执行的,并且一个代码生成器负责将SPOT程序翻译成相应的MOP代码。该框架的设计重点是通过代码生成技术使程序转换自动化,这样开发人员只需要指定所需的转换,而无需了解转换是如何执行的细节。本文为该方法提供了一般性的动机,并解释了它的设计和实施。此外,本文还给出了案例研究,说明了我们的方法在提高代码模块性、可维护性和生产率方面的潜力。
Metaprogramming has shown much promise for improving the quality of software by offering programming language techniques to address issues of modularity, reusability, maintainability, and extensibility. Thus far, the power of metaprogramming has not been explored deeply in the area of high performance computing (HPC). There is a vast body of legacy code written in Fortran running throughout the HPC community. In order to facilitate software maintenance and evolution in HPC systems, we introduce a DSL that can be used to perform source-to-source translation of Fortran programs by providing a higher level of abstraction for specifying program transformations. The underlying transformations are actually carried out through a metaobject protocol (MOP) and a code generator is responsible for translating a SPOT program to the corresponding MOP code. The design focus of the framework is to automate program transformations through techniques of code generation, so that developers only need to specify desired transformations while being oblivious to the details about how the transformations are performed. The paper provides a general motivation for the approach and explains its design and implementation. In addition, this paper presents case studies that illustrate the potential of our approach to improve code modularity, maintainability, and productivity.
DOI: 10.1007/bfb0053381
发表时间: 1997-01-01
期刊: ECOOP'97: OBJECT-ORIENTED PROGRAMMING
影响因子: --
作者:
Kiczales, G;Lamping, J;Irwin, J
通讯作者: Irwin, J