皆様ご存知のようにFORTRANは世界最古の高級プログラミング言語です。高級言語とは、
人間が理解しやすい言語であり、逆に低級言語は
人間が理解しにくい言語であり例えば、アセンブラがあります。
高級言語は低級言語より優れているというわけではありません。アセンブラ言語は機械語と一対一に対応しているために、コンピュータにとっては理解しやすい言語です。そのため、
自由度の高いコードを書くことができます。さらに、コードの書きようによっては
計算実行速度の速い実行ファイルを作ることができます。アセンブラについても機会があればご紹介したいと思っております。
だったら低級言語を学びたい!と思うかもしれませんが、敷居が高いのも事実です。プログラミング初心者はまず高級言語を学ぶことをお薦めします。最近のコンピュータは昔に比べると格段に進歩しておりますので、我々が日常で使うほとんどの事は高級言語で対応できます。
以上のことを考慮すれば、
高級言語の最大の問題は「いかにしてコンピュータが理解できる言語に翻訳してやるか。」に尽きます。高級言語からコンピュータの理解できる機械語に翻訳することを
コンパイルするといい、そのためのソフトウェアを
コンパイラといいます。FORTRAN言語を機械語に翻訳するためのソフトウェアをFORTRANコンパイラと言います。それぞれの言語(C言語、C++)に対応したコンパイラがあります。FORTRANコンパイラといっても、Intel, PGI、GNUなどさまざまなベンダーがコンパイラを提供しております。それぞれのコンパイラは特色があり、例えばIntelのコンパイラだとIntelのCPU向けに特化しております。またFORTRANの仕様外の記述は各ベンダー特有の方言があったりします。そのため、例えば、Intel(R) Fortran Complier, version xxxxを使ってプログラミングを行い、そのコードをPGI(R) Complier, version xxxxでコンパイルできない場合があります。もし、汎用性のあるソースコードを書きたい場合、どのコンパイラでもコンパイルできるソースコードを書くことが重要になります。
現在では様々な高級プログラミング言語が存在しています。
私が考えたFORTRANの利点を以下に挙げます。
- FORTRAN77はプログラミング初心者が学習するのに適している。
- これまでの莫大な遺産が存在している。
- コンパイル時に最適化を行いやすい。
- 意識しなくても比較的外部環境に影響されにくい。
(書きかけ)