Loading article…
この記事では、並行プログラミング言語と並列プログラミング言語を、定義パラダイムによって分類してリストします。並行プログラミング言語と並列プログラミング言語には、複数のタイムラインが含まれます。このような言語は、動作が並列実行モデルによって定義される同期構造を提供します。並行プログラミング言語は、プログラムを構成する手段として、同時に実行されるプロセスまたは実行スレッドの概念を使用する言語として定義されます。並列言語は、複数のプロセッサで実行可能なプログラムを表現できます。並行性は並列性を表現する便利なツールであるため、両方のタイプがリストされていますが、必須ではありません。どちらの場合も、機能は言語構文の一部である必要があり、ライブラリなどの拡張機能ではありません (posix-thread ライブラリなどのライブラリは並列実行モデルを実装していますが、プログラミング言語に必要な構文と文法がありません)。
以下のカテゴリは、含まれる言語の主な定義的特徴を捉えることを目的としていますが、必ずしも直交しているわけではありません。
調整言語
- CnC (並行コレクション)
- グレンダ
- リンダ調整言語
- ヤスデ
データフロープログラミング
- カル
- E (オブジェクト指向でもある)
- ジュール(配布も)
- LabVIEW (同期型、オブジェクト指向型)
- Lustre(同期も可能)
- Preesm(同期も可能)
- 信号(同期も可能)
- サイザル
- ビーエムディーエム
分散コンピューティング
イベント駆動とハードウェアの説明
- エステレル(同期も)
- システムC
- システムVerilog
- ベリログ
- Verilog-AMS - 連続時間システムの数学モデリング
- VHDL
関数型プログラミング
論理プログラミング
モニターベース
マルチスレッド
- C=
- シルク
- シルクプラス
- シンド
- C#
- クロージュア
- 並行パスカル
- エメラルド
- Fork – PRAMモデル用のプログラミング言語。
- 行く
- ジャワ
- ラボビュー
- パラセール
- パイソン
- 錆[2]
- シーケンスL
オブジェクト指向プログラミング
- エイダ
- C*
- C#
- JavaScript
- タイプスクリプト
- C++ AMP
- チャーム++
- シンド
- Dプログラミング言語
- Eiffel SCOOP (シンプルな並行オブジェクト指向プログラミング)
- エメラルド
- ISO Fortran 2003 標準のFortran
- ジャワ
- Join Java -結合計算の機能を備えた Java ベースの言語。
- ラボビュー
- パラセール
- パイソン[3]
- ルビー
パーティション化されたグローバル アドレス空間 (PGAS)
- チャペル
- Coarray Fortran (Fortran 2008 以降、標準/ISO Fortranに含まれ、Fortran 2018 標準でさらに拡張が追加されました)
- 要塞
- 高性能Fortran
- チタン
- 統合並列 C
- X10
- ゼップル
メッセージパッシング
- Ateji PX - π 計算からヒントを得た並列プリミティブを備えたJavaの拡張。
- 錆[4]
- Smalltalk [5] : p.17 パートIV、図11–29の後の表を参照
俳優モデル
- Axum - Microsoft が開発しているドメイン固有言語。
- Dart - Isolateの使用
- Elixir ( Erlang 仮想マシンBEAM上で実行)
- アーラン
- ポニー(プログラミング言語)
- ヤヌス
- 赤
- サルサ
- Scala / Akka (ツールキット)
- 雑談
- アッカ.NET
- LabVIEW - LabVIEW アクターフレームワーク
CSPベース
- アレフ
- クリスタル[6]
- 容易に
- フォートランM
- 行く
- JCSP
- ジョカムル
- ジョイス
- リンボ(配布も)
- ニュースクウィーク
- オッカム
- オッカムπ –円周率計算の機能を統合したオッカムの派生
- PyCSP
- スーパーパスカル
- XC – XMOSが開発した、Occamの機能を統合した C ベースの言語
API/フレームワーク
これらのアプリケーション プログラミング インターフェイスは、ホスト言語での並列処理をサポートします。
- アパッチビーム
- アパッチフリンク
- アパッチハドゥープ
- アパッチスパーク
- CUDA
- オープンCL
- オープンHMPP
- C、C++、Fortran 用のOpenMP (共有メモリと接続された GPU)
- C、C++、Fortran 用のメッセージ パッシング インターフェイス(分散コンピューティング)
- SYCL
参照
参考文献
- ^ Thom Frühwirth (2009 年 7 月 9日)。制約処理ルール。ケンブリッジ大学出版局。ISBN 978-0-521-87776-3。
- ^ 「スレッドを使用してコードを同時に実行する - Rust プログラミング言語」. doc.rust-lang.org . 2022 年 10 月 11 日閲覧。
- ^ ドキュメント » Python 標準ライブラリ » 同時実行
- ^ 「メッセージパッシングを使用してスレッド間でデータを転送する - Rustプログラミング言語」。doc.rust-lang.org 。 2022年10月11日閲覧。
- ^ アラン・ケイSmalltalk の初期の歴史
- ^ 「Crystalプログラミング言語 - 並行性」 。 2018年8月10日閲覧。
