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

プログラミングには大きく二つの流派がある。「命令型プログラミング」(手続き型プログラミング)では、変数への代入や条件分岐、ループといった処理手順をステップごとに記述する。一方、「宣言型プログラミング」では、目的とする状態や結果をプログラムコードとして「宣言」していき、具体的な処理手順はシステムやランタイムが自動的に決定する。
宣言型プログラミングの身近な例として、データベース操作に使われる「SQL」が挙げられる。SQLでは「どのテーブルからどの条件に当てはまるデータを取得したいか」を記述するだけであり、データベースエンジンが最適な検索方法を内部で判断して実行する。利用者は検索アルゴリズムの詳細を知らなくても目的のデータを取得できる。
Webページの記述に用いるHTMLやCSSも、宣言型プログラミングのための言語として捉えることができる。HTMLでは見出しや画像、段落といった文書内の要素や配置を宣言するが、具体的な描画処理の手法や手順はWebブラウザのレンダリングエンジンが自動的に判断して実行する。ReactやVueといったWebアプリケーションフレームワークも、画面の状態を宣言的に記述することで複雑なDOM操作を抽象化している。
宣言型は命令型に比べ、コードの記述量が減り、意図が読み取りやすくなる傾向がある。開発者が明示的に記述しなくても、処理系が最適化や並列化を内部で行うことができる。副作用を抑えた記述が採用されることも多く、状態管理の複雑さを軽減しやすい特徴もある。ただし、処理の詳細がシステム内部に隠蔽されるため、パフォーマンスの細かな制御が難しくなる場面もある。処理系の実装に依存する振る舞いも存在し、内部動作を理解しないと予期しない結果になることもある。用途や要件に応じて命令型と使い分けられることが多い。