プログラミングを始めたばかりのころは、プログラミングパラダイムはあまり重要ではありません。 しかし、階段を上り、複雑なプログラムやソフトウェアを作成するようになると、どのプログラミングパラダイムが自分のプロジェクトに最も適しているかを理解することが不可欠になります。 その前に、パラダイムとはいったい何なのかを知っておくことが重要です。 多くの引用された定義によると、パラダイムとは「前提、概念、価値観、および実践のセットであり、特に知的分野では、それらを共有するコミュニティにとって現実を見る方法を構成する」

この定義は的を得ており、パラダイムを区別するものは、コミュニティにとっての現実を見る異なる方法であると言えるでしょう。 パラダイムは、しばしば、プログラムを書き、それについて考えるという特定の文化とともに移動するため、重要なのです。 この記事では、主要なプログラミング パラダイムについて、特に Procedural Programming (手続き型プログラミング) のパラダイムに焦点を当てながら説明します。

プロシージャル プログラミングは、新しい開発者が最初に学ぶプログラミング パラダイムと言えるかもしれません。 基本的に、手続き型コードは、論理的なステップでタスクを完了する方法を直接デバイスに指示するものです。 このパラダイムは,直線的なトップダウンアプローチを採用しており,データと手続きは2つの異なるエンティティとして扱われます. 手続き呼び出しの概念に基づき、手続き型プログラミングでは、プログラムをルーチンや関数とも呼ばれる、単に実行すべき一連の手順を含む手続きに分割する。

簡単に言えば、手続き型プログラミングでは、コンピュータが手元のタスクを完了するために段階的に何をすべきかを指示するために、命令のリストを書き留めます。

Key Features of Procedural Programming

手続き型プログラミングの主な特徴を以下に示します。 事前定義された関数は、通常、名前によって識別される命令です。 通常、事前定義された関数は、より高度なプログラミング言語に組み込まれていますが、プログラムではなく、ライブラリやレジストリに由来しています。 定義済み関数の一例として、文字列中の文字位置を検索する「charAt()」がある。

  • Local Variable: ローカル変数は、メソッドのメイン構造で宣言され、それが与えられたローカルスコープに制限される変数である。 ローカル変数は、それが定義されているメソッドでのみ使用することができ、それが定義されたメソッドの外側で使用された場合、コードは動作しなくなります。 グローバル変数:グローバル変数は、コードで定義された他のすべての関数の外側で宣言される変数である。 このため、ローカル変数とは異なり、グローバル変数はすべての関数で使用することができる。 モジュール性とは、2 つの異種システムが手元に 2 つの異なるタスクを持っているが、より大きなタスクを最初に結論づけるためにグループ化されることです。
  • パラメータ・パッシング。 パラメータ渡しは、関数、サブルーチン、プロシージャにパラメータを渡すために使用されるメカニズムである。
  • Advantages and Disadvantages of Procedural Programming

    Procedural Programming には独自の長所と短所があり、そのいくつかを以下に記す。

    Advantages

    • 手続き型プログラミングは汎用プログラミングに優れている
    • コンパイラやインタープリタの実装の容易さとともに、コード化されたシンプルさ
    • テスト済みのアルゴリズムに関する書籍やオンラインコース教材が豊富にあること。
    • ソースコードは移植可能であるため、異なるCPUをターゲットとしても使用できる
    • コードをコピーする必要がなく、プログラムの異なる部分で再利用できる
    • 手続き型プログラミング技術によるものです。 メモリ使用量も削減できる
    • プログラムの流れを簡単に把握できる

    デメリット

    • Procedural Programmingを採用するとプログラムコードが書きにくい
    • Procedural code is not reusable often to be used,
    • 実世界のオブジェクトとの関連が難しい
    • データよりも演算が重要視される。
    • データがプログラム全体に公開されるため、セキュリティ上あまり好ましくない

    前に述べたように、プログラミングパラダイムにはさまざまな種類があり、それはプログラミングのスタイルにほかならない。 パラダイムは特定の言語に対応するのではなく、プログラムが書かれる方法に対応するものであることを理解することが重要です。 以下は、手続き型プログラミングとオブジェクト指向プログラミングの比較です。

    オブジェクト指向プログラミング (OOP) とは

    OOP はプログラミングへのアプローチで、私たちの知る人生をオブジェクトの集合体として認識し、それが互いに連動して手元の特定の問題を解決するものです。 OOP について知っておくべき主要なことはカプセル化であり、プログラムを保持する各オブジェクトは自立しており、つまり、オブジェクトを構成するすべてのコンポーネントはオブジェクト自体の中にあるという考え方である。 このパラダイム内の各モジュールは自立しているので、あるプログラムからオブジェクトを取り出し、ほとんど手を加えることなく、目の前の別の問題を解決するために使用することができるのです。

    利点

    • モジュール化とカプセル化により、OOP は管理を容易にする
    • OOP は実世界を模倣しているので理解しやすい
    • オブジェクトはそれ自身の中で完結しているので、OOP は実世界に近い。

    Disadvantages

    • Object-Oriented program tend to be slower and use high amount of memory
    • Over-generalization
    • The program built using this paradigm may take longer to be created

    Procedural Programming vs Object-Oriented Programming.The Procogeneology of the Objective-Oriented Programming:

    一方、手続き型プログラミングは、オブジェクト指向とは異なり、オブジェクト間の相互作用よりも、タスクを完了するために実行されるステップに焦点を当てます。 タスクは、サブルーチン、変数、データ構造に分解される。 どの時点でも、これらの手続きはプログラム実行中に呼び出すことができます。

    プロシージャー・プログラミング オブジェクト8358>
    不変のデータを使用 可変のデータを使用
    宣言的プログラミングモデル 命令的プログラミングモデル に準拠する。 プログラミングモデル
    並列プログラミングに対応 並列プログラミングには不向き
    ステートメントの実行順序は 8358> 文の実行順序は非常に重要
    フロー制御は関数呼び出しで行う フロー制御を行うのは 条件文とループ
    集合データの反復に再帰概念を使用 集合データの反復にループ概念を使用
    そんな側面はない
    手続き型プログラミングの焦点は「何をしているか」である オブジェクト指向プログラミングの焦点は「どうやっているか」である

    もう一つのよく使われるプログラミングパラダイムは関数型プログラミングです。 関数型プログラミングは、手続き型プログラミングともオブジェクト指向プログラミングとも異なり、数学的な関数を利用する方法です。 これによって、操作は入力された入力に基づいてのみ実行され、一時的な変数や隠れた変数には依存しない。

    利点

    • 関数型プログラミングは保護された環境を提供する
    • 他の多くの言語は操作を適切に実行するために相当量の情報を必要とするが、関数プログラミングでは状態の定義に必要な大量のコードは必要ない
    • このパラダイムは入力引数にのみ依存するので、入力引数には依存しない。 副作用がない

    デメリット

    • 商用ソフトウェア開発において関数型プログラミングのみを使用することは推奨されないし、行われない
    • 大量のメモリと時間が必要
    • 他のパラダイムより効率が悪いことがわかる

    結論

    この記事を通して述べたとおりである。 手続き型プログラミングは、「どのように行うか」よりも「何を行うか」が重要です。 C言語、Pascal、BASICなど、多くのコンピュータ言語で使われている標準的なアプローチです。 完璧なプログラミングパラダイムは存在しませんが、正しいパラダイムは常に使用する言語の種類と作成したいプログラムに依存することを理解することが重要です。 最大の成果と強力なポートフォリオを得るためには、3つの主要なプログラミングパラダイムすべてに習熟することが推奨されます。 プログラミングパラダイムをより良くするための最良の方法は試してみることであり、Hackrはその手助けをします。

    People are also reading:

    • プログラミングとは
    • プログラミング言語とは
    • 最高のプログラミング書籍
    • 最高のプログラミング面接質問
    • 仕事に就くためのプログラミング言語
    • 手順プログラミングとは何か
    • プログラミング言語
    • プログラミング言語

    • プログラミングを学ぶには?
    • 無料のコーディング・ブートキャンプ
    • プログラミング用語と定義
    • 10 Best Web Development IDE

    コメントを残す

    メールアドレスが公開されることはありません。