Comments on the Arjen Markus article: Design patterns and Fortran

H. Gardner, V. Decyk
{"title":"Comments on the Arjen Markus article: Design patterns and Fortran","authors":"H. Gardner, V. Decyk","doi":"10.1145/1148105.1148107","DOIUrl":null,"url":null,"abstract":"The article by Markus [1] discusses the subject of object-oriented (OO) design patterns and describes ways in which three well-known patterns might be implemented in Fortran 90/95. It appears that the idea of object-oriented design patterns in Fortran might just be coming of age and it is a very appropriate subject for discussion in a Forum such as this.We have been developing our own implementations of design patterns in Fortran 90/95 for some time and have one paper under review [2] and another being presented at the 6th Workshop on Parallel/High-Performance Object Oriented Scientific Computing (POOSC) in Nantes, France in July 2006 [3]. Our application area is particle-in-cell simulations in plasma physics, but the results that we have obtained will, we hope, be of interest to Fortran 90/95 programmers in general.Our own starting point with design patterns in Fortran 90/95 stems from the literature on object-based programming in that language [4-10]. Several authors have observed that the obvious unit of encapsulation, the Fortran 90/95 module, can be thought of as an object-based class: it can support a type which defines the stored data together with subprograms which can operate on that data. With some discipline and ingenuity, these authors have shown how to emulate the notions of object construction and destruction, inheritance and polymorphism. These emulations were actually implemented using object composition. For example, one child module might include another parent module in order to simulate inheritance. As Markus correctly points out, most of the famous design patterns are based on object composition and the authors of [4-10] have, frequently, been using design patterns as a way of simulating OO behaviour.Because the subject of OO design patterns in Fortran 90/95 is so fresh, there is ample scope for them to be presented in different ways by different authors. Whilst appreciating the clarity and relevance of Markus' expositions, we would like to make some points of criticism which we believe are important to a further discussion of this topic. The points we make refer to the ideas expressed in the book by Gamma et al. [11] which is considered to be the fundamental exposition of the topic of OO design patterns.","PeriodicalId":379614,"journal":{"name":"ACM SIGPLAN Fortran Forum","volume":"50 2","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2006-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM SIGPLAN Fortran Forum","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1148105.1148107","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5

Abstract

The article by Markus [1] discusses the subject of object-oriented (OO) design patterns and describes ways in which three well-known patterns might be implemented in Fortran 90/95. It appears that the idea of object-oriented design patterns in Fortran might just be coming of age and it is a very appropriate subject for discussion in a Forum such as this.We have been developing our own implementations of design patterns in Fortran 90/95 for some time and have one paper under review [2] and another being presented at the 6th Workshop on Parallel/High-Performance Object Oriented Scientific Computing (POOSC) in Nantes, France in July 2006 [3]. Our application area is particle-in-cell simulations in plasma physics, but the results that we have obtained will, we hope, be of interest to Fortran 90/95 programmers in general.Our own starting point with design patterns in Fortran 90/95 stems from the literature on object-based programming in that language [4-10]. Several authors have observed that the obvious unit of encapsulation, the Fortran 90/95 module, can be thought of as an object-based class: it can support a type which defines the stored data together with subprograms which can operate on that data. With some discipline and ingenuity, these authors have shown how to emulate the notions of object construction and destruction, inheritance and polymorphism. These emulations were actually implemented using object composition. For example, one child module might include another parent module in order to simulate inheritance. As Markus correctly points out, most of the famous design patterns are based on object composition and the authors of [4-10] have, frequently, been using design patterns as a way of simulating OO behaviour.Because the subject of OO design patterns in Fortran 90/95 is so fresh, there is ample scope for them to be presented in different ways by different authors. Whilst appreciating the clarity and relevance of Markus' expositions, we would like to make some points of criticism which we believe are important to a further discussion of this topic. The points we make refer to the ideas expressed in the book by Gamma et al. [11] which is considered to be the fundamental exposition of the topic of OO design patterns.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
对Arjen Markus文章的评论:设计模式和Fortran
Markus的文章[1]讨论了面向对象(OO)设计模式的主题,并描述了在Fortran 90/95中实现三种知名模式的方法。在Fortran中,面向对象设计模式的思想似乎正在走向成熟,这是一个非常适合在这样一个论坛上讨论的主题。一段时间以来,我们一直在用Fortran 90/95开发自己的设计模式实现,有一篇论文正在审查中[2],另一篇论文将于2006年7月在法国南特举行的第六届并行/高性能面向对象科学计算(pooc)研讨会上发表[3]。我们的应用领域是等离子体物理中的细胞内粒子模拟,但是我们希望我们得到的结果能够引起Fortran 90/95程序员的兴趣。我们在Fortran 90/95中设计模式的出发点源于该语言中基于对象的编程文献[4-10]。一些作者已经注意到,封装的明显单元,即Fortran 90/95模块,可以被认为是一个基于对象的类:它可以支持定义存储数据的类型,以及可以对该数据进行操作的子程序。这些作者通过一些原则和独创性,展示了如何模拟对象构造和销毁、继承和多态性的概念。这些模拟实际上是使用对象组合实现的。例如,为了模拟继承,一个子模块可能包含另一个父模块。正如Markus正确指出的那样,大多数著名的设计模式都是基于对象组合的,[4-10]的作者经常使用设计模式作为模拟OO行为的一种方式。由于Fortran 90/95中面向对象设计模式的主题是如此的新鲜,因此有足够的空间让不同的作者以不同的方式来呈现它们。在欣赏Markus阐述的清晰性和相关性的同时,我们也想提出一些我们认为对进一步讨论这一主题很重要的批评意见。我们提出的观点参考了Gamma等人[11]在书中表达的思想,这本书被认为是对OO设计模式主题的基本阐述。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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