命令的なプログラミング
* フォーカス: プログラムが目標を達成する方法 *について説明します。これは、コンピューターが特定の順序で実行する必要がある一連のステップまたは命令を提供します。詳細な指示でレシピを与えるようなものだと考えてください。
* 例:
`` python
#リスト内の数字の合計を見つけるための命令コード
数字=[1、2、3、4、5]
合計=0
数字の数:
sum +=number
印刷(合計)
`` `
このコードは、コンピューターに明示的に指示します。
1.変数「合計」を作成し、0に設定します。
2。「番号」リストで各 `number`をループします。
3.各「番号」を「sum」変数に追加します。
4。最後に、「sum」の値を印刷します。
* 特性:
* 制御フローに焦点を当てます: プログラムの実行方法を明示的に制御します。
* 副作用: コードは多くの場合、データ(変数など)を直接変更します。
* 一般的な言語: C、Java、Python(多くの場合)。
宣言プログラミング
* フォーカス: 正確な手順を指定せずに、プログラムが達成すべきこと *について説明します。それをする方法を伝えることなく、あなたが望むことを誰かに伝えるようにそれを考えてください。
* 例:
「sql
#テーブル内の数値の合計を見つけるための宣言SQLクエリ
my_tableからsum(number)を選択します。
`` `
このコードは、「my_table」テーブルから「番号」列の合計を教えてください。」データベースエンジンが合計を計算する方法を指定しません。
* 特性:
* データとロジックに焦点を当てます: 特定の手順ではなく、目的の結果を定義します。
* 副作用が最小化されます: 焦点は、データを直接操作するのではなく、結果を説明することです。
* 一般的な言語: SQL、Prolog、Haskell。
重要な違い
|機能|命令|宣言|
| ----------------- | ----------------------- | ---------------------- |
|フォーカス|目標を達成する方法|何を達成するか|
|制御フロー|明示的な|暗黙的|
|副作用|頻繁に|最小化|
|データ操作|直接|間接|
|読みやすさ|複雑になる可能性があります|多くの場合、より簡潔な|
|デバッグ|挑戦的かもしれません|通常、よりシンプル|
各を使用するとき
* 命令: 特に低レベルの操作、複雑なアルゴリズムを扱う場合、またはパフォーマンスが重要な場合、実行を正確に制御する必要がある場合に最適です。
* 宣言: 目標の説明に集中し、複雑なロジックを簡素化する場合、またはより簡潔で保守可能なコードベースが必要な場合に最適です。
結論
両方のアプローチは有効ですが、異なる目的に役立ちます。彼らの重要な違いを理解することは、特定のプログラミングタスクに適したアプローチを選択するのに役立ちます。
