科学技術計算におけるプログラミング言語:FORTRAN vs C言語


共通のキーワード

FORTRAN と C 言語には、いくつかの共通のキーワードがあります。これらのキーワードは、両方の言語で似通った意味を持ちます。

  • 演算子: +, -, *, /、==、!=、>、< など。これらのキーワードは、数値や論理演算を実行するために使用されます。
  • データ型: INTEGER、REAL、CHARACTER、LOGICAL など。これらのキーワードは、変数のデータ型を宣言するために使用されます。
  • 制御構文: IF、ELSE、GOTO、DO、WHILE、FOR など。これらのキーワードは、プログラムの流れを制御するために使用されます。

FORTRAN 固有のキーワード

FORTRAN には、C 言語にはない独自のキーワードが多数存在します。これらのキーワードは、FORTRAN の高度な機能や、科学技術計算に特化した機能をサポートするために使用されます。

  • USE: モジュールを使用するために使用されます.
  • SELECT: SELECT CASE 構造を記述するために使用されます.
  • SAVE: 変数の値を次のプログラム実行に保存するために使用されます.
  • PARAMETER: 定数を宣言するために使用されます.
  • LOGICAL: 論理データを宣言するために使用されます.
  • INTEGER: 整数データを宣言するために使用されます.
  • INCLUDE: ソースファイルを挿入するために使用されます。
  • EXTERNAL: 外部関数を参照するために使用されます。
  • DOUBLE PRECISION: 倍精度浮動小数点データを宣言するために使用されます.
  • DO: ループを記述するために使用されます。
  • DATA: 変数に初期値を設定するために使用されます。
  • CONTINUE: 次のステートメントに進むために使用されます。
  • COMPLEX: 複素数データを宣言するために使用されます.
  • CHARACTER: 文字列データを宣言するために使用されます。
  • CALL: サブルーチンを呼び出すために使用されます。
  • BLOCK: 共通ブロックを宣言するために使用されます。
  • ARRAY: 配列を宣言するために使用されます。
  • ALLOCATE: メモリを動的に割り当てるために使用されます。

C 言語固有のキーワード

C 言語にも、FORTRAN にはない独自のキーワードが多数存在します。これらのキーワードは、C 言語の構造化プログラミング機能や、ポインタ操作機能などをサポートするために使用されます。

  • while: WHILE ループを記述するために使用されます。
  • void: 戻り値を持たない関数を宣言するために使用されます。
  • volatile: 揮発性変数を宣言するために使用されます。
  • union: 共用体を宣言するために使用されます。
  • typedef: 型別名を定義するために使用されます。
  • switch: SWITCH 文で使用されます。
  • struct: 構造体を宣言するために使用されます。
  • static: 静的変数を宣言するために使用されます。
  • sizeof: データ型のサイズを取得するために使用されます。
  • return: 関数から値を返すために使用されます。
  • register: レジスタ変数を宣言するために使用されます。
  • inline: インライン関数を宣言するために使用されます。
  • if: IF 文で使用されます。
  • goto: 指定されたラベルにジャンプするために使用されます.
  • for: FOR ループを記述するために使用されます。
  • extern: 外部変数または関数を宣言するために使用されます。
  • enum: 列挙型を宣言するために使用されます。
  • else: IF 文で使用されます。
  • do: WHILE ループを記述するために使用されます。
  • default: SWITCH 文で使用されます。
  • continue: ループの次のイテレーションに進みます。
  • const: 定数を宣言するために使用されます。
  • case: SWITCH 文で使用されます。
  • break: ループから抜け出すために使用されます。
  • auto: 自動変数を宣言するために使用されます。

FORTRAN と C 言語間の相互運用

FORTRAN と C 言語は、相互運用機能を提供することで、2 つの言語間でやり取りを行うことができます。これにより、それぞれの言語の利点を活かしたプログラムを開発することができます。

  • C 関数を FORTRAN から呼び出す: FORTRAN から C 関数を呼び出すには、適切なインターフェース
  • FORTRAN サブルーチンを C 言語から呼び出す: C 言語から FORTRAN サブルーチンを呼び出すには、適切なヘッダーファイルを含め、呼び出し規約を考慮する必要があります。


共通キーワードの使用例

! FORTRAN での IF 文の使用例
IF (i .GT. 10) THEN
  print *, 'i は 10 より大きい'
ELSE
  print *, 'i は 10 以下'
ENDIF

! C 言語での IF 文の使用例
if (i > 10) {
  printf("i は 10 より大きい\n");
} else {
  printf("i は 10 以下\n");
}

FORTRAN 固有のキーワードの使用例

! FORTRAN での DO ループの使用例
DO i = 1, 10
  print *, 'i = ', i
  i = i + 1
ENDDO

! FORTRAN での COMPLEX データ型の使用例
COMPLEX z
z = (1.0, 2.0)
print *, '複素数 z = ', real(z), imag(z)
! C 言語でのポインタの使用例
int i = 10;
int *p = &i;

printf("i の値: %d\n", i);
printf("i のアドレス: %p\n", &i);
printf("ポインタ p の値: %d\n", *p);

*p = 20;

printf("i の値を変更: %d\n", i);


FORTRAN の代替となる言語を選ぶ際の考慮事項

FORTRAN の代替言語を選ぶ際には、以下の要素を考慮する必要があります。

  • ライブラリ: 目的を達成するために必要なライブラリは存在しますか?多くの言語には、科学計算、機械学習、Web 開発などのタスクに役立つライブラリが用意されています。
  • コミュニティ: その言語のコミュニティはどれくらい活発ですか?活発なコミュニティがあれば、問題を解決したり、サポートを得たりしやすくなります。
  • 使いやすさ: どの言語が最も習得しやすく、使いやすいか?FORTRAN は習得に時間がかかる一方、Python や R などの言語は初心者でも比較的簡単に習得できます。
  • 性能: プログラムのパフォーマンス要件はどれくらいですか?FORTRAN は高速な言語として知られていますが、他の言語も十分な速度を提供できる場合があります。
  • 目的: プログラムの目的は何か?科学計算、機械学習、Web 開発など、目的に適した言語を選択する必要があります。

FORTRAN の代替候補となる言語

以下に、FORTRAN の代替候補となる言語とその特徴をいくつか紹介します。