|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 宣言 : [せんげん] 1. (n,vs) declaration 2. proclamation 3. announcement ・ 言 : [げん] 【名詞】 1. word 2. remark 3. statement ・ 型 : [かた] 【名詞】 1. mold 2. mould 3. model 4. style 5. shape 6. data type
宣言型プログラミング()は、プログラミングパラダイムの名称だが、主として2種類の意味がある。第1の意味は、処理方法ではなく対象の性質などを宣言することでプログラミングするパラダイムを意味する。第2の意味は、純粋関数型プログラミング、論理プログラミング、制約プログラミングの総称である。後者は(多寡はあれ)前者の性質を持つ。 == 概要 == 第1の定義によれば、ある出力を得るにあたってそれを作成する方法ではなく、出力の性質を記述することを「宣言型」と称する。一例を挙げるならば、(プログラミング言語ではないが)SQLのクエリは「どのようなデータが欲しいか」を記述するものであり、例えば具体的なB木の操作などといった「いかにしてデータベースにアクセスするか」といったことには関与しない。この手法は、FORTRAN、C言語、Javaなどといった命令型プログラミング言語とは全く異なる。命令型では、目的を実現するアルゴリズムを、その順序に沿う形で記述しなければならない。つまり、命令型プログラムでは目的を達成するための方法を「手続き」として示すのに対し、宣言型プログラムでは達成すべき目的(出力)を示して、それを実現する手続きはシステムに任せるわけである。1960年代からIBMが事務用プログラミング言語として展開したRPGは、制御部にデシジョンテーブルが使われていて、そのため宣言型に分類されることもある。 別の定義では、純粋関数型言語/論理プログラミング言語/制約プログラミング言語で書かれたプログラムを「宣言型」と称する。この立場では、「宣言型プログラミング」とはそのようなプログラミング言語のグループ全体の総称であり、命令型言語と対立する概念である。 この2つの定義はある程度オーバーラップしている。特に制約プログラミングでは、解の性質を記述することに注力し、解を求めるためのアルゴリズムは特に指定しないこともある。論理プログラミングにもその傾向がある。とはいっても、制約プログラミング言語や論理プログラミング言語でもアルゴリズムや実装の詳細を記述することは可能ではある(可能であるということは、常にそのようなスタイルでプログラムを書くという意味ではないが)。 同様に命令型プログラミング言語であっても、プログラムを宣言型のスタイルで書くことは可能である。この場合、宣言的でない詳細をライブラリやフレームワークでカプセル化するのが一般的である。例えば、単体テストのフレームワークであるJUnitでリフレクションを使ったスタイルがある。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「宣言型プログラミング」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Declarative programming 」があります。 スポンサード リンク
|