宣言型プログラミングとは、定義を宣言する形でプログラミングしようとするプログラミングパラダイムである。
関数型言語では、宣言型プログラミングと言って物事の関係性を「宣言」する形でプログラミングするスタイルが奨励されている。発想としては論理型言語と似ている。
オブジェクト指向で挙げた例にあわせて、動物園の飼育員(コンピューター)へのマニュアル(プログラム)に例えて書くと以下のような雰囲気になる。
社訓
以下の3点に着目したい。
さて、このマニュアルを受け取った飼育員はどのように行動するのか。
ということで、この飼育員は虎A, B, Cのうち空腹な虎にのみ餌をやるという行動を取る。実際のプログラミング言語処理系はここまでは忖度してくれない。
「目的」と「定義」だけ順不同で「宣言」さえすれば、作業内容を指示しなくても自動的に動作が組み上がる優れたプログラミングパラダイムであるという主張がある。そのような文脈では、命令を記述しない宣言型プログラミングに対し、コンピューターに対する命令を記述する従来のスタイルを命令型プログラミングと呼んで区別する。
一方で、宣言型プログラミングでは定義から実際の動作を予想するのが難しく、動作内容やアルゴリズムを細かく制御することが困難になるという批判もある。
宣言の順番は関係ないと書いたが、再代入により宣言に使われている変数の中身が変わってしまうと、その宣言が使用されるタイミングによって宣言が正しくなくなる場合が出てくる。
いつ実行されても結果が変わらないことを保証するには、変数がイミュータブルである参照透過性が必要になる。
変数は参照透過でなければならず、再代入で変化してはいけないと書いたが、これでは状態変化を扱うことが難しくなる。そこで出てきた方法論の一つが、リアクティブプログラミングである。
リアクティブプログラミングでは、「常にaはbの2倍である」のような変数が変化しても成り立つ「関係」を宣言するという方法で変化するものを取り扱う。
代表的なものにWebフレームワークのReactやMicrosoft社が提唱したRectiveXがある。
掲示板
掲示板に書き込みがありません。
急上昇ワード改
最終更新:2025/12/05(金) 21:00
最終更新:2025/12/05(金) 21:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。