A collection of refactoring specifications for fortran 95

J. Overbey, Matthew J. Fotzler, Ashley J. Kasza, Ralph E. Johnson
{"title":"A collection of refactoring specifications for fortran 95","authors":"J. Overbey, Matthew J. Fotzler, Ashley J. Kasza, Ralph E. Johnson","doi":"10.1145/1883575.1883577","DOIUrl":null,"url":null,"abstract":"This article contains detailed specifications of several automated refactorings for Fortran 95. These have been used to implement refactorings in Photran [1], an integrated development environment and refactoring tool based on Eclipse. Our purpose in publishing these specifications is twofold. First, we would like to encourage other Fortran tool vendors to consider adding refactoring support to their own IDEs; we hope that making our detailed specifications publicly available will allow others to benefit from our experience. Indeed, many details of the refactorings are quite subtle. Second, we are interested in receiving feedback on both the form and content of these specifications. Although they been carefully constructed and used as a basis for implementation, some errors, oversights, and ambiguities are inevitable. The first author will post errata, clarifications, and links to updated versions of this document at [2]. To the extent possible, we have attempted to use the same terminology as the Fortran 95 ISO standard [3], and we have attempted to describe the mechanics of the refactorings syntactically (i.e., in terms of the standard grammar). For example, we define an External Subprogram to be a 〈 function-subprogram〉 or a 〈subroutine-subprogram〉 in the context of an 〈external-subprogram〉. Such 〈bracketed-names〉 correspond to nonterminal symbols in the ISO grammar. Section numbers (e.g., §14.1.1) and rule numbers (e.g., R201) are also references to the ISO standard. All algorithms are described imperatively, as a sequence of steps that may be executed to test the precondition or perform the transformation. It is not always essential that an implementation execute these steps in the order listed; in many cases, the steps can be reordered and still produce the same results. For example, many precondition checks require a number of conditions to be checked, but these conditions are mutually disjoint, and therefore the order in which they are checked is inconsequential.","PeriodicalId":379614,"journal":{"name":"ACM SIGPLAN Fortran Forum","volume":"336 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2010-11-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"15","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGPLAN Fortran Forum","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1883575.1883577","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 15

Abstract

This article contains detailed specifications of several automated refactorings for Fortran 95. These have been used to implement refactorings in Photran [1], an integrated development environment and refactoring tool based on Eclipse. Our purpose in publishing these specifications is twofold. First, we would like to encourage other Fortran tool vendors to consider adding refactoring support to their own IDEs; we hope that making our detailed specifications publicly available will allow others to benefit from our experience. Indeed, many details of the refactorings are quite subtle. Second, we are interested in receiving feedback on both the form and content of these specifications. Although they been carefully constructed and used as a basis for implementation, some errors, oversights, and ambiguities are inevitable. The first author will post errata, clarifications, and links to updated versions of this document at [2]. To the extent possible, we have attempted to use the same terminology as the Fortran 95 ISO standard [3], and we have attempted to describe the mechanics of the refactorings syntactically (i.e., in terms of the standard grammar). For example, we define an External Subprogram to be a 〈 function-subprogram〉 or a 〈subroutine-subprogram〉 in the context of an 〈external-subprogram〉. Such 〈bracketed-names〉 correspond to nonterminal symbols in the ISO grammar. Section numbers (e.g., §14.1.1) and rule numbers (e.g., R201) are also references to the ISO standard. All algorithms are described imperatively, as a sequence of steps that may be executed to test the precondition or perform the transformation. It is not always essential that an implementation execute these steps in the order listed; in many cases, the steps can be reordered and still produce the same results. For example, many precondition checks require a number of conditions to be checked, but these conditions are mutually disjoint, and therefore the order in which they are checked is inconsequential.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
fortran 95重构规范的集合
本文包含Fortran 95的几个自动重构的详细规范。它们已经被用于在Photran[1]中实现重构,Photran是一个基于Eclipse的集成开发环境和重构工具。我们发布这些规范的目的有两个。首先,我们希望鼓励其他Fortran工具供应商考虑在他们自己的ide中添加重构支持;我们希望将我们的详细规格公开,将使其他人能够从我们的经验中受益。实际上,重构的许多细节都非常微妙。其次,我们希望收到关于这些规范的形式和内容的反馈。尽管它们被仔细地构造并用作实现的基础,但一些错误、疏忽和含糊是不可避免的。第一作者将在[2]上发布勘误表、澄清和本文档更新版本的链接。在可能的范围内,我们已经尝试使用与Fortran 95 ISO标准[3]相同的术语,并且我们已经尝试从语法上描述重构的机制(即,根据标准语法)。例如,在<外部子程序>的上下文中,我们将外部子程序定义为<函数子程序>或<子程序子程序>。这样的<括号名称>对应于ISO语法中的非终结符。章节号(如§14.1.1)和规则号(如R201)也引用了ISO标准。所有算法都是命令式描述的,作为可以执行以测试前提条件或执行转换的一系列步骤。实现并不总是必须按照列出的顺序执行这些步骤;在许多情况下,这些步骤可以重新排序,并且仍然产生相同的结果。例如,许多前提条件检查需要检查许多条件,但是这些条件是互不关联的,因此检查它们的顺序是无关紧要的。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Compiler Support for the Fortran 2008 and 2018 Standards The diagnostic capability of the Cray, gfortran, Intel, Nag and Oracle Fortran compilers The diagnostic capability of the Cray, gfortran, Intel, Nag and Oracle Fortran compilers Experimenting with generic programming features History of Fortran
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1