プログラミング・モデルとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > プログラミング・モデルの意味・解説 

プログラミングパラダイム

(プログラミング・モデル から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/09/29 13:14 UTC 版)

プログラミングパラダイム: programming paradigm)とは、プログラミングにおける模範である。

概要

プログラミングパラダイムは、プログラマにプログラムの見方を与えるものと言える。例えばオブジェクト指向プログラミングでは、プログラムとはオブジェクトを作りそれを管理するもの。関数型言語では、状態を持たない関数評価の連続。

プログラミング言語が違えば、対応できるパラダイムも違ってくる。SmalltalkJavaは、手続き型やオブジェクト指向、Haskellは、関数プログラミング、というように、比較的少数のパラダイムに対応している。一方、多数のパラダイムに対応した言語(マルチパラダイムプログラミング言語)もある。

多くのプログラミングパラダイムには禁じ手がある。純粋な関数型プログラミングでは、副作用があってはならない。構造化プログラミングでは、gotoの無制限な利用が戒められる。特にこの理由により、古いスタイルに慣れた者からは、よく非現実的または過剰に厳密なものと見なされる。しかし、こうした特定のテクニックを避けることで、プログラミング言語の一般の法則に制約されず、プログラムの正確さ(または単にその動作の理解)についての法則を証明しやすくする。

マルチパラダイムプログラミング言語が登場してから、プログラミングパラダイムとプログラミング言語との関連は複雑になっている。たとえば、C++手続き型プログラミングジェネリックプログラミングオブジェクト指向プログラミングに対応するよう設計されているが、設計時には個々の部分毎にどのパラダイムを使うか選ぶ必要に迫られる。あるプログラムは全て手続き型プログラミングで作り、またあるプログラムは全てオブジェクト指向で作り、また別のプログラムは両方を混在して作るという具合である。

比較されるものは横に並べてある。括弧内はそれを用いている例である。

関連項目


プログラミングモデル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/05 05:56 UTC 版)

OpenCL」の記事における「プログラミングモデル」の解説

OpenCLプログラムアプリケーションソフトウェア)は、GLSL利用したOpenGLプログラムとほぼ同じ要領開発することができ、OpenCL C/C++利用したデバイスコード(カーネルコード)と、OpenCL API利用したホストコードを別々に記述する。カーネルコードのコンパイルは、clCreateProgramWithSource()関数経由デバイスドライバー実行するCUDAプログラムのような専用オフライン コンパイラnvcc)を必要としないため、様々なプラットフォームへの展開が容易となることが利点である。ただしカーネルコードの初回実行時コンパイルオンライン コンパイル)に時間がかかるなどのデメリット存在する。この点に関しては、実運時にはclCreateProgramWithSource()関数によるオンライン コンパイルは行なわず、clGetProgramInfo()関数とclCreateProgramWithBinary()関数用いてコンパイル済みバイナリからプログラムオブジェクトを生成する方法もある が、ベンダーごとのOpenCLバイナリ間における互換性保証されないデバイスドライバーカーネル記述言語オンラインコンパイラ役割持たせることで、ベンダー独自拡張実装やすくなるが、コンパイラ品質デバイスドライバー品質左右される。 なお、OpenCL 1.22.02.12.2では、SPIR英語版)およびSPIR-Vと呼ばれる中間表現中間言語バイトコード)をサポートすることにより、事前コンパイルしたベンダー依存しないカーネルコードを実行することができるようになる。ただし、SPIR 1.2およびSPIR 2.0OpenCL 1.2およびOpenCL 2.0拡張機能(cl_khr_spir)となっており、サポート必須の機能ではない。一方、SPIR-VはOpenCL 2.1/2.2のコア機能となる。OpenCL 2.1ではSPIR-V 1.0を、OpenCL 2.2ではSPIR-V 1.0/1.1/1.2をサポートするが、OpenCL 3.0ではSPIR-Vはコア機能から外れサポート状況に関して実行時問い合わせが必要となった

※この「プログラミングモデル」の解説は、「OpenCL」の解説の一部です。
「プログラミングモデル」を含む「OpenCL」の記事については、「OpenCL」の概要を参照ください。

ウィキペディア小見出し辞書の「プログラミング・モデル」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プログラミング・モデル」の関連用語

プログラミング・モデルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プログラミング・モデルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのプログラミングパラダイム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのOpenCL (改訂履歴)、データゼネラルNova (改訂履歴)、Blue Gene (改訂履歴)、Intel 8086 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS