ホームページ  >  記事  >  バックエンド開発  >  プログラミング初心者がPHPを学ぶために知っておくべきこと

プログラミング初心者がPHPを学ぶために知っておくべきこと

烟雨青岚
烟雨青岚転載
2020-06-15 13:38:362273ブラウズ

プログラミング初心者がPHPを学ぶために知っておくべきこと

#プログラミング初心者が PHP を学ぶときに知っておくべきこと

1. コンピューター プログラムとは?

百科事典の説明からの抜粋: ソフトウェアとも呼ばれるコンピューター プログラムは、情報処理機能を備えたコンピューターまたはその他のデバイスに対する一連の命令を指します。通常、特定のプログラミング言語で記述され、特定のターゲット アーキテクチャ上で実行されます。

コンピュータ プログラムに関する一般的な理解


コンピュータ プログラムは、特定の機能を実行するためにコンピュータ上で実行できる一連の命令です。コンピュータ プログラムの複雑さは、完了する必要のある論理関数。コンピュータ プログラムには、単純なものから複雑なものまであります。たとえば、単純なプログラムを作成すると 2 次方程式の解を計算できますが、強力なゲーム プログラムを作成すると、異なるゲーム体験が得られます。プログラムの本質コンピュータ上で一連の命令を実行することです。これらの命令により、コンピュータは特定の操作を実行し、特定の機能を達成できます。

コンピュータの電源がオンになり、Windows/Linux/Mac などのオペレーティング システムが起動されると、オペレーティング システムは多くのプログラムをロードして実行します。オペレーティング システムの本質もまた、次のもので構成されます。一般にコンピュータ プログラムと表現されるコンピュータ プログラムのセット。一般に、ビデオ/オーディオ プレーヤー、Web ブラウザ、ソーシャル ツール クライアント Wechat/QQ など、特定の特定の機能を実行できる比較的独立したプログラムを指します。一般に、多くのコンピュータ プログラムが連携して比較を完了します。複雑なタスクを実行する一連のプログラムであり、オペレーティング システムなど、システムと呼ばれることがよくあります。

百科事典の説明に記載されている命令は、特定のターゲット アーキテクチャ上で実行されます。ほとんどのコンピュータでは、コンピュータ アーキテクチャの広範な分類の観点から、ここでのターゲット アーキテクチャは通常、最も一般的なフォン ノイマン アーキテクチャを指します。前のセクションで説明したコンピュータの基本構造ですが、ノイマン型アーキテクチャ設計では、CPU (計算機とコントローラ) の設計もさまざまなアーキテクチャに分割できます。


命令セットとは何かについてもっと詳しく見てみましょう。命令セットとは、CPU の動作をガイドし最適化する、CPU 内に格納されているハード プログラムです。つまり、CPU の演算ユニットは、 CPU の命令セット。命令セットの設計が異なるため、システムでサポートされる命令の CPU アーキテクチャは異なります。一般的な CPU アーキテクチャには、Intel の X86 アーキテクチャと ARM の ARM アーキテクチャが含まれます。対応する命令セットは、Complex struction Set (CISC) です。) およびX86 プロセッサと ARM プロセッサの主な違いは、前者は複合命令セット (CISC) を使用するのに対し、後者は縮小命令セット (RISC) を使用することです。 X86 アーキテクチャ CPU はノートブック、デスクトップ、サーバーでよく見られますが、ARM アーキテクチャ CPU は主に携帯電話や組み込みシステムで使用されています。命令セットには多くの細分があります。興味があれば、さらに詳しく学ぶことができます。


2. プログラミング言語とは何ですか?

上記はコンピュータ プログラムとは何かを説明したもので、コンピュータ プログラムの本質は、特定のターゲット アーキテクチャ (一時的には特定の CPU アーキテクチャとして理解できます) 上で実行される一連の命令です。 、およびこれらの命令のセットは CPU アーキテクチャによってサポートされている必要があります。つまり、CPU の演算ユニットは命令セット内のすべての命令を実行できます。つまり、同じ機能を持つプログラムが異なる CPU アーキテクチャで書かれている場合、最終的に生成されるプログラムは、対応する命令セットとは異なる可能性があります。


1. マシン言語

CPU アーキテクチャによってサポートされる命令セットを通じて、何千ものプログラムを作成できます。プログラムは CPU によって直接解釈され、実行されます。命令セットからプログラムを生成するプロセスは、テキストで記事を書くのと似ています。単一の単語または単語が特定の命令です。異なる単語または単語 (命令) は、特定の命令を通過します。ルールの組み合わせが一つの記事(プログラム)であるため、CPU アーキテクチャがサポートする命令セット体系も言語とみなすことができ、この言語は一般に機械語、マシンコードとも呼ばれます。異なる CPU アーキテクチャがサポートする異なる命令セットは、異なる機械語とみなすことができ、テキストが中国語や英語など多くの言語に分かれているのと同じことが、機械語にも当てはまります。


2. アセンブリ言語


機械語ではさまざまな機能を持つプログラムをたくさん書くことができますが、機械語でプログラムを書く場合、プログラマーはまずすべての命令を暗記する必要があります。ハンドプログラミングの場合、プログラマは、各命令と各データのストレージ割り当てと入出力も処理する必要があり、また、プログラマは、各ステップで使用されるワークユニットを覚えておく必要があります。プログラミングプロセス、その状態。これは非常に面倒な作業です。プログラムを書くのにかかる時間は、実際の実行時間の数十倍、場合によっては数百倍かかることも多く、また、プログラムされたプログラムはすべて0と1の命令コードであり、直感的ではなく、間違いが発生しやすいものです。する?


このとき、アセンブリ言語が誕生しましたが、アセンブリ言語の本体はアセンブリ命令です。アセンブリ命令と機械語命令の違いは、命令の表現方法にあります。アセンブリ命令は、覚えやすい記述形式の機械語命令です。たとえば、演算を実行するには、レジスタBXの内容がAXに送信されます(特定の意味について立ち入る必要はありません。これは完全な説明であることを理解してください。特定の機能についての説明だけで十分です)

  1000100111011000               机器指令
    mov ax,bx                    汇编指令

同じ操作については、次の組み立て説明の方が簡単であることがわかります。覚えておいてください。アセンブリ言語の出現は、プログラム開発における大きな進歩です。機械と比較して、この言語は主に次の 機能を備えています:

1. よりプログラムしやすい、つまりアセンブリ言語を使用すると、プログラマーはよりシンプル、より速く、より簡単に同じプログラミング タスクを理解できる方法で完了できます;

2. プログラムの移植性、上で紹介したように、異なるCPU アーキテクチャは異なる命令セット システム (機械語) をサポートしているため、通常、特定のタイプの CPU アーキテクチャ用に機械語で書かれたプログラムは、他の CPU アーキテクチャでは実行できません。アセンブリ言語では、同じアセンブリ ステートメントを実行するためにコンパイラのみが必要であると想像できます。異なる CPU アーキテクチャで実行するときにコンパイルします (異なる言語間の翻訳と同じように) 対応する CPU アーキテクチャでサポートされる機械語コードに変換します;

アセンブリ言語コンパイラは、アセンブリ言語をコンピュータ上で機械語に翻訳できるプログラムです。ターゲット CPU アーキテクチャ。

3. 高級言語

機械語とアセンブリ言語については前に学習しましたが、アセンブリ言語は機械語と同じで、ハードウェアを直接操作します。ただし、アセンブリ言語命令では、認識および記憶しやすい英語の短縮識別子が使用されますが、これらは機械語との相対的なものにすぎません。実際のプログラミングにおいては、アセンブリ言語のソースプログラムも非常に複雑で長大ですが、プログラムをより簡単かつ効率的に書くために高級言語が登場しました。

高級言語は 1 つの言語を指すのではなく、高度にカプセル化されたプログラミング言語である C、C、Java、php、python などの多くのプログラミング言語を含みます。高級言語はコンピュータのハードウェア構造やCPUアーキテクチャ(命令体系)とは関係がありませんが、アセンブリ言語はすでにある程度の移植性を備えており、コンパイラは対応するCPUアーキテクチャに応じて対応する機械語に翻訳することができます。同様に、高級言語は移植性が高く、コンパイラはターゲット CPU アーキテクチャ上で高級言語を機械語に翻訳することもできます。直接機械語に翻訳するか、最初にコンパイルしてから機械語に翻訳するかに関係なく、 、コンパイラの実装に依存します。

現在、私たちは通常、プログラムを作成するために機械語やアセンブリ言語を使用する方法を学ぶ必要はなく、アセンブリ言語を理解する方法を知っていれば十分です。私たちが作成した高級言語がターゲット言語に翻訳されると、コンパイラーは自動的にいくつかの最適化処理を実行します。

4. 高級言語の分類

高級言語を分類するには、設計思想の特徴に応じてさまざまな方法があります。プロセス指向(命令型)言語、オブジェクト指向言語、関数型言語、論理言語に分けられ、コードが実行前に翻訳されるタイミングに応じてインタープリタ型言語の2つのカテゴリに分けられます。そしてコンパイルされた言語。

プロセス指向 (命令型) 言語

この言語の意味論的な基礎は、「データ ストレージ/データ操作」をシミュレートするチューリング マシンです。計算可能なモデルは、現代のコンピューター アーキテクチャの自然な実装と非常によく一致しています。オペレーションを生成する主な方法は、ステートメントまたはコマンドの副作用に依存することです。 Fortran、Pascal、Cobol、C、C、Basic、Ada、Java、C# など、最近よく使われている言語のほとんどがこのタイプです。さまざまなスクリプト言語もこのタイプとみなされます。

オブジェクト指向言語

最新の言語のほとんどはオブジェクト指向のサポートを提供していますが、一部の言語は基本的なオブジェクト指向に基づいて直接構築されています。モデル、言語の文法形式のセマンティクスは、基本的なオブジェクト操作です。オブジェクト指向プログラミングをサポートする主流の言語には、C、Java、C#、PHP、Python などが含まれます。一般的な言語もプロセス指向 (命令型) プログラミングをサポートします。

関数型言語

この言語の意味論的な基礎は、数学関数の概念に基づいた値マッピングの計算可能なラムダ演算子モデルです。この言語は、人工知能などの仕事の計算に非常に適しています。 Lisp、Haskell、ML、Scheme、F#などの代表的な関数型言語

論理言語

この言語の意味論的な基礎は、一連の既知のルールに基づく形式論理システムです。この言語は主にエキスパート システムの実装に使用され、最も有名な論理言語は Prolog です。

さまざまな言語は異なる種類に属しますが、それぞれがさまざまな程度で他の種類の言語の操作モードをサポートします。

5. インタープリタ言語

インタープリタ言語は、言語の能動的特性と受動的特性に基づいて、マークアップ言語とスクリプト言語に分類できます。 。マークアップ言語は解釈を受動的に待ち、コンピュータに積極的に命令を発行しませんが、スクリプト言語は通常、コンピュータにタスクを実行するための命令を積極的に発行します。

マークアップ言語

マークアップ言語は、テキスト (Text) とテキストに関連するその他の情報を組み合わせて、文書構造とデータ処理の詳細を示すコンピューター テキスト エンコーディングです。テキストに関連するその他の情報 (テキストの構造や表示情報など) は元のテキストと結合されますが、マーカーを使用して識別されます。

例: xml、html、xhtml

スクリプト言語

スクリプト言語は、従来の言語を短縮したものです。書き込みプロセス - 編集、コンパイル、リンク、実行のプロセスによって作成されるコンピューター プログラミング言語。この名前は、実行されるたびにダイアログ ボックスをそのまま繰り返すスクリプト「スクリーンプレイ」にちなんで付けられています。初期のスクリプト言語は、バッチ処理言語またはジョブ制御言語と呼ばれることがよくありました。スクリプトは通常、コンパイルされるのではなく解釈されて実行されます。スクリプト言語は通常、シンプルで学びやすく、使いやすいという特徴があり、プログラマーがプログラム作成作業を迅速に完了できるようにすることが目的です。

例: JavaScript、VBScript、PHP、Python

6. コンパイル言語

コンパイル言語:プログラムは実行前に特別なコンパイル処理が必要です。プログラムは機械語ファイルにコンパイルされます。実行時に再翻訳する必要はありません。コンパイル結果をそのまま使用します。プログラムの実行効率は高く、コンパイラに依存しており、クロスプラットフォームのパフォーマンスは低いです。

#例: C、C、c#、java など


7. さまざまなタイプの高級言語の違い

1. マークアップ言語は、コンピューターに指示を出すためには使用されませんが、フォーマットやリンクによく使用されます。


2. スクリプト言語はマークアップ言語とプログラミング言語の中間に位置し、コンパイルする必要がなく、直接使用できます。インタプリタが解釈を担当します。


3. コンパイル言語で書かれたプログラムを実行する前に、プログラムを exe ファイルなどの機械語ファイルにコンパイルするための特別なコンパイル プロセスが必要です。将来的には、再翻訳する必要がなく、コンパイル結果(exeファイル)を直接利用するだけで済み、翻訳は一度だけで済み、実行時に翻訳する必要がないため、コンパイル言語プログラムの実行効率が高くなります。


8. 高級言語の一般的な特徴

1. 高級言語はアルゴリズム言語に近く、学習が容易ですおよびマスターであり、一般的なエンジニアリングおよび技術担当者のみが必要です 数週間のトレーニングでプログラマーとしての能力を高めることができます;


2. 高級言語は、プログラマーに構造化されたプログラミング環境とツールを提供します高い保守性と高い信頼性;


3. 高級言語は機械語とは遠く離れており、コンピュータのハードウェア構造や命令体系とは何の関係もありません。表現力が強いため、移植性が高く、再利用率が高いプログラムを作成できます;


4. 複雑で些細な事項はコンパイラに引き渡すため、自動化度が高く、開発が容易になります。サイクルが短く、プログラマは安心して集中できる プログラムの品質を向上させるために、プログラマにとってより重要な創造的な作業に時間とエネルギーが費やされる;


5. 高いプログラムによって生成されたプログラム コード-レベル言語でのコンパイルは一般にアセンブリ言語で設計されたプログラムコードよりも優れています。長くなり、実行速度も遅くなります。したがって、アセンブリ言語は、高速性やコード長が要求されるプログラムや、ハードウェアを直接制御するプログラムを書くのに適していますが、高級言語プログラムは、機械のハードウェア構造が「見えない」ため、システムソフトウェアやデバイス制御ソフトウェアを書くことはできません。マシンのハードウェア リソースに直接アクセスします。この目的を達成するために、一部の高級言語はアセンブリ言語による呼び出しインターフェイスを提供します。アセンブリ言語で記述されたプログラムは、スタックを使用してパラメータまたはパラメータのアドレスを渡すことにより、高級言語の外部プロシージャまたは関数として使用できます。


読んでいただいた皆様、ありがとうございます。多くの利益が得られることを願っています。

元のリンク: https://blog.csdn.net/abc_1225/article/details/80237929

推奨チュートリアル: 「

PHP チュートリアル

以上がプログラミング初心者がPHPを学ぶために知っておくべきことの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。