オブジェクト指向 Fortran 90/95 プログラミングについて
- 日時
- 2005 年 8 月 4 日(木)
- 参加者
- 石渡正樹, 小高正嗣, 杉山耕一朗, 山田由貴子, 森川靖大, 高橋芳幸, 北守太一, 谷口博, 林祥介
参考図書
- Ed Akin, 2003:
Object-Oriented Programming Via Fortran 90/95
Cambridge University Press.
ISBN 0-521-52408-3
- ドラフト版は http://http://www.owlnet.rice.edu/~mech403/Fortran_90/OOP_w_F90_book.htm よりダウンロード可能
備考
このメモに森川が加筆したものが<URL:2005-08-06_morikawa_meeting.htm>にある のでそちらも参照のこと.
オブジェクト指向とは
- 情報隠蔽 (encapsulation)
- 継承 (inheritance)
- 多態性 (polymorphism)
クラスと情報隠蔽
- クラスとは?
- 鋳型?
- 変数定義とその変数に対する手続きをまとめたもの (?)
- Fortran でナイーブに書くと, 変数定義と手続きは別々
- クラスを上手に使うと情報隠蔽ができる
- 構造体とそれに対する手続きをまとめたクラスをモジュールを使って用意する
構造体変数への代入などの参照作業は, クラスで用意された関数を使って 行う. 直接参照は許容しない.
こうすると, 構造体変数の定義を変更するなどのクラスの変更した際に, それを use/call している主プログラムへの影響を抑制することができる. ちゃんと情報隠蔽がなされている場合には, 主プログラムを変更する必要が なくなる.
継承と多態性
- 継承
- Ruby 的継承を行うプログラムを F90 で書くことは困難
- 手続きの再利用は use 文を上手に使うことで, 実現できる.
- Ruby 的継承を行うプログラムを F90 で書くことは困難
- 多態性を実現するために
- 異なる構造体変数に対する同じような手続きを行うコードを作成する際には, コードの雛型を用意すると便利かも.
- gt4f90io では m4 を使っている.
- ほとんど同じでちょっとだけ異なるプログラムを多数作成するには便利