読み方 : せんげんがたプログラミング

宣言型プログラミング【declarative programming】

宣言型プログラミングとは?

プログラミングのスタイルの一つで、処理の手順ではなく、満たすべき条件や望ましい結果を記述する方式。プログラムは「何を求めるか」を中心に表現され、具体的な実行手順は処理系に委ねられる。
宣言型プログラミングのイメージ画像

プログラミングには大きく二つの流派がある。「命令型プログラミング」(手続き型プログラミング)では、変数への代入や条件分岐ループといった処理手順をステップごとに記述する。一方、「宣言型プログラミング」では、目的とする状態や結果をプログラムコードとして「宣言」していき、具体的な処理手順はシステムやランタイムが自動的に決定する。

宣言型プログラミングの身近な例として、データベース操作に使われる「SQL」が挙げられる。SQLでは「どのテーブルからどの条件に当てはまるデータを取得したいか」を記述するだけであり、データベースエンジンが最適な検索方法を内部で判断して実行する。利用者は検索アルゴリズムの詳細を知らなくても目的のデータを取得できる。

Webページの記述に用いるHTMLCSSも、宣言型プログラミングのための言語として捉えることができる。HTMLでは見出しや画像、段落といった文書内の要素や配置を宣言するが、具体的な描画処理の手法や手順はWebブラウザレンダリングエンジンが自動的に判断して実行する。ReactVueといったWebアプリケーションフレームワークも、画面の状態を宣言的に記述することで複雑なDOM操作を抽象化している。

宣言型は命令型に比べ、コードの記述量が減り、意図が読み取りやすくなる傾向がある。開発者が明示的に記述しなくても、処理系が最適化や並列化を内部で行うことができる。副作用を抑えた記述が採用されることも多く、状態管理の複雑さを軽減しやすい特徴もある。ただし、処理の詳細がシステム内部に隠蔽されるため、パフォーマンスの細かな制御が難しくなる場面もある。処理系の実装に依存する振る舞いも存在し、内部動作を理解しないと予期しない結果になることもある。用途や要件に応じて命令型と使い分けられることが多い。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。