「Fortran」の版間の差分

 
(同じ利用者による、間の2版が非表示)
13行目: 13行目:
=== 並列処理 ===
=== 並列処理 ===
FORTRANは基本的な演算や[[条件分岐]]などは何の特徴もない平凡な[[プログラミング言語]]であるが、[[配列]]の演算は以下のように範囲指定で一気に計算が行えるという特徴がある。この記述だけで賢い[[コンパイラ]]は自動的に[[並列処理]]としてくれる。このため[[プログラマー]]は[[CPU]]のコア数だのスレッド数だのと言った細かいことを意識しなくてもよく、もう規模が大きすぎて人力ではそれらを把握しきれない[[スーパーコンピューター]]などの世界では人気が高いという。
FORTRANは基本的な演算や[[条件分岐]]などは何の特徴もない平凡な[[プログラミング言語]]であるが、[[配列]]の演算は以下のように範囲指定で一気に計算が行えるという特徴がある。この記述だけで賢い[[コンパイラ]]は自動的に[[並列処理]]としてくれる。このため[[プログラマー]]は[[CPU]]のコア数だのスレッド数だのと言った細かいことを意識しなくてもよく、もう規模が大きすぎて人力ではそれらを把握しきれない[[スーパーコンピューター]]などの世界では人気が高いという。
<source lang="fortran">
<syntaxhighlight lang="fortran">
program array
program array
     ! C言語のように変数の型宣言を強制させる。
     ! C言語のように変数の型宣言を強制させる。
39行目: 39行目:


end program array
end program array
</source>
</syntaxhighlight>


上記の演算部分を[[C Sharp|C#]]で書くと以下のような感じである。
上記の演算部分を[[C Sharp|C#]]で書くと以下のような感じである。
<source lang="csharp">
<syntaxhighlight lang="csharp">
Parallel.For( 0, 10, i => a[i] = b[i + 10] + c[i + 20] );
Parallel.For( 0, 10, i => a[i] = b[i + 10] + c[i + 20] );
</source>
</syntaxhighlight>


[[C言語]]や[[Java]]で[[並列処理]]を考慮せず書くと以下のような感じである。
[[C言語]]や[[Java]]で[[並列処理]]を考慮せず書くと以下のような感じである。
<source lang="java">
<syntaxhighlight lang="java">
for (i = 0; i < 10; i++)
for (i = 0; i < 10; i++)
{
{
     a[i] = b[i + 10] + c[i + 20];
     a[i] = b[i + 10] + c[i + 20];
}
}
</source>
</syntaxhighlight>


== 主な仕様 ==
== 主な仕様 ==
162行目: 162行目:


== 文法 ==
== 文法 ==
* [[Fortran/PROGRAM|PROGRAM]]
* [[FortranのPROGRAM文|PROGRAM]]
* [[Fortran/SUBROUTINE|SUBROUTINE]]
* [[FortranのSUBROUTINE文|SUBROUTINE]]
* [[Fortran/FUNCTION|FUNCTION]]
* [[FortranのFUNCTION文|FUNCTION]]
* [[Fortran/MODULE|MODULE]]
* [[FortranのMODULE文|MODULE]]
* [[Fortran/CONTAINS|CONTAINS]]
* [[FortranのCONTAINS文|CONTAINS]]
* [[Fortran/INTERFACE|INTERFACE]]
* [[FortranのINTERFACE文|INTERFACE]]
* [[Fortran/USE|USE]]
* [[FortranのUSE文|USE]]


== 関連項目 ==
== 関連項目 ==