fortran66のブログ

fortran について書きます。

自己出力プログラム

自分自身を出力するプログラム、通称 Quine を Fortran2008 で拡張された g フォーマット機能を用いて書いてみます。

Quine は慣例でクワインとカナ書きしますが、以下のページには /kwi:n/ と発音が書いてあります。まぁ日本ではクワインと呼べばよかろうと思います。
http://www.nyx.net/~gthompso/quine.htm
このページには FORTRAN66 や 77 の例も載っています。

ソースコード

Fortran2003 では、文字列パラメータ文では文字列長を * で与えると、文字数を自動で数えてくれます。

character(*),parameter::a="('character(*),parameter::a=',3g',b=char(34);print a,b,a,b;end')",b=char(34);print a,b,a,b;end

保守的な構成

character(*),parameter::a="('character(*),parameter::a=',3g,',b=achar(34)'/'print a,b,a,b'/'end')",b=achar(34)
print a,b,a,b
end