コンピューター言語にはどのような種類がありますか?

小老鼠
リリース: 2023-06-29 17:46:44
オリジナル
11441 人が閲覧しました

コンピュータ言語の種類には、1. 高水準言語と低水準言語、2. 動的型と静的型、3. 必須型と弱い型、4. コンパイル型、インタプリタ型、セミコンパイル型、およびセミコンパイル型があります。 -interpreted; 5. オブジェクト指向型とプロセス指向型; 6. コンパイル型とインタープリタ型の区別。

コンピューター言語にはどのような種類がありますか?

コンピュータ言語の 3 つの主要カテゴリ (レベル別に分けられます)

ハードウェアとの相関は徐々に減少します

コンピュータ言語には多くの種類があり、機能や実装方法の違いにより、機械語アセンブリ言語と高級言語の3つに大別されます。

1. 機械語とは、翻訳せずにコンピュータが直接認識できる言語を機械語(バイナリコード言語ともいいます)といい、0または1の2進数で構成される命令列です。

2. アセンブリ言語. アセンブリ言語は、機械語の代わりに英語の文字や記号列を使用します. 理解しにくく覚えにくい機械語を対応関係に従ってアセンブリ命令に変換します. アセンブリ言語は読みやすくなります.機械語よりも理解できます。

3. 高級言語. 高級言語は言語ではなく、言語のクラスの総称であり、アセンブリ言語よりも人間が使用する言語に近く、理解しやすいので覚えておいてくださいそして使用します。高級言語はコンピュータのアーキテクチャや命令セットとは関係がないため、移植性に優れています。 C、C、Java、VB、C#、Python、Ruby などの高級言語はプログラム開発に広く使用されています。

一般的な分類方法の分類

1. 高級言語と低級言語

一般的な低級言語には、機械語、アセンブリ言語が含まれます。

高級言語 一般的な言語には、c、c、java、python、PHP、Ruby、go、kotlin、swift が含まれます。

マシンコード、コンピュータが直接認識できる二次コード。言語がどれほど高度であっても、コンピュータが認識して実行できるように二次ファイルに変換する必要があります。

#アセンブリ、ニーモニックを使用して機械命令のオペコードを置き換えます。アドレス シンボル シンボルまたはラベルを使用して命令またはオペランドのアドレスを置き換えます。異なるデバイスには異なる命令セットがあります

高-レベル言語は、プログラミング中に不要な操作詳細を保存し、コード量を節約し、可読性と保守性が高く、より人間的です。

高級言語と低級言語の違い: ほとんどの高級言語はハードウェアを直接扱うことができないため、相対的なプログラムの実行速度が遅くなります。人間の本質に近いほど、より高度です。

高級言語コンパイルの 6 つのプロセス

コンパイルは、高級言語のソース プログラムをターゲット プログラムに変換するプロセスです。

プロセス全体は、通常、字句解析、構文解析、意味解析、中間コード生成、コード最適化、ターゲット コード生成の 6 つの段階に分けることができます。

    字句解析、字句解析は第 1 段階です。この段階のタスクは、ソース プログラムを 1 文字ずつ左から右に読み取り、ソースを構成する文字列をスキャンすることです。各単語を識別するためのプログラムと分解。
  • 文法分析。文法分析のタスクは、字句分析に基づいて単語プログラムを文法フレーズに分解することです。
  • 意味解析、意味解析とは、ソースプログラムに意味上の誤りがないかレビューし、コード生成段階での型情報を収集することです。
  • 中間コード生成では、上記の構文解析などの作業を行った後、ソースプログラムを内部表現に変換することがありますが、この内部表現を中間言語または中間コードと呼びます。中間コード生成段階では、構文解析と意味解析に基づいてソース プログラムを内部表現にさらに変換し、通常は簡単に生成してターゲット コードに変換しますが、すべての言語がこのステップを実行する必要があるわけではありません。
  • コードの最適化。このステージのタスクは、生成されたターゲット コードをより効率的にすることを目的として、前のステージで生成された中間コードを変換または変換することです。コード最適化段階では、ターゲットコードを生成する際に、より多くの時間とスペースを節約するために、前の段階で生成された中間コードを変換または変換する必要はありません。
  • ターゲット コード生成。この段階のタスクは、中間コードを特定のマシン上の絶対命令コード、再配置可能命令コード、またはアセンブリ命令コードに変換することです。
  • 2. 動的型と静的型

動的言語とは、プログラムの実行中に変数に指定されるデータの型を指し、Python では一般的です。 Ruby と静的型 Type 言語はその逆です プログラムコードを書くときは変数の型を指定する必要があります この言語には cc java

3 があります 強制型と弱い型

C 言語の変数は float 型など 1 つの型でしか定義できないことがわかり、その場合は float 型のみとなり、変換せずに int 型に代入することはできません。タイプ。

しかし、Python では、Python の変数は型の境界なしに任意にコピーできます。これは弱い型付けです

強制型付けはより厳密でエラーが発生しにくくなりますが、弱い型付け言語の方がエレガントで書きやすいです

4. コンパイルとインタープリタは半分コンパイルされ、半分は半分で行われます。 -interpreted

ソースプログラムコンパイル言語の場合、ソースファイルはプログラム実行中に一度にマシンコードに変換され、インタープリタ言語の場合はコンパイルと解釈が同時に行われます

コンパイル言語はインタプリタと切り離せないため、インタープリタ言語の実行時間が遅くなります。インタープリタ言語はインタープリタがある限り移植が便利ですが、コンパイル言語はインタプリタが必要です。さまざまなシステム用にコンパイルされています。はい、プログラムをデバッグするときの作業は面倒で時間がかかります。

コンパイルされた言語は cc などにあります。

インタープリタ言語は、次の場所にあります。 Python、JavaScript、Perlshell など。

そして、Java は半分コンパイルされ、半分はインタープリタ言語 Java によってソース ファイルが jVM 内のバイトコードに変換されます。つまり、.class ファイルはバイナリ ファイルに変換されます。プログラムの実行中。 C# の .net とは少し異なります。C# でコンパイルされた .net ターゲット コードは、バイナリ ファイルの移植性に近く、Java ほどではありません。Java は「一度コンパイルすればどこでも実行できます」。C# は「一度エンコードすれば」です。そしてどこでもコンパイルします。」

5. オブジェクト指向とプロセス指向

プロセス指向は、目的地に到達するための道をどのように舗装するかを決定することですが、オブジェクト指向は、特定の機能を備えた画像を使用して実行することです両方、異なる考え。

c は、カプセル化を備えた部分的にオブジェクト指向の Java 言語であり、完全にオブジェクト指向です。C 言語はプロセス指向言語です。

ここにも関数型があります

プログラミング言語パラダイムの動的型、静的型、強弱型の概念 - 風晴れ、心は飛ぶ - Blog Park の概念動的、静的、強いタイプと弱いタイプのプログラミング言語パラダイムを学習する 言語を学習するとき、私たちはしばしばいくつかの概念に遭遇します。たとえば、Java はオブジェクト指向言語、C はプロセス指向言語、Lisp は関数型プログラミング言語、 Scala は静的言語です。これらは何を意味しますか? https://www.cnblogs.com/binbinbin /articles/14012424.html

6. コンパイルされた型と解釈された型を区別する

1. コンパイルされたプログラムは、全体としてターゲット コードを形成するようにコンパイルされ、一度に実行されます。

インタプリタは解釈と実行を同時に行います。文を説明し、それをコンピュータに送信して実行するだけでは、ターゲット プログラムは形成されません。外国語翻訳における「通訳」と同様、訳文を生成するものではありません。

2. コンパイルとは、最初のコンパイルを除いて、ターゲット コードがマシンによって実行される = 結果

一方で、インタープリターは常にコード インタープリターであることを意味します マシンの実行 = 結果

詳細 コンパイラはソースプログラムの各ステートメントを機械語にコンパイルし、バイナリファイルとして保存するため、コンピュータは実行時に直接機械語でプログラムを実行することができ、非常に高速です。

インタプリタはプログラムを 1 つずつ機械語に解釈してコンピュータが実行できるようにするだけなので、実行速度はコンパイルされたプログラムほど速くありません。これは、コンピュータが私たちが作成したステートメントを直接認識して実行することはできず、機械語 (バイナリ形式) しか認識できないためです。

7. レベルによる分類の理由

1. 中間コード

中間コード生成は、中間コードを生成するプロセスです。いわゆる「中間コード」は、構造が単純で意味が明確な記法体系であり、その複雑さはソースプログラム言語と機械語の中間に位置し、ターゲットコードへの変換が容易です。さらに、マシンに依存しない最適化を中間コード レベルで実行できます。

アセンブリ コードはターゲット コードであり、中間コードは理論的にはマシンに依存しません。

コンパイル原理では、知識 3 値、4 値、逆ポーランド語などが中間コードを表します。

2. オブジェクト コード

オブジェクト コード; オブジェクト コードとは、コンピュータ サイエンスにおいて、ソース コードを処理した後にコンパイラまたはアセンブラによって生成されるコードを指し、通常は機械語コードまたはそれに近いコードで構成されます。機械語への合成。オブジェクト ファイルは、オブジェクト コードを格納するコンピュータ ファイルであり、バイナリ ファイル (バイナリ) とも呼ばれます。オブジェクト ファイルには、マシン コード、リンクまたはデバッグ用のプログラム シンボルなどの再配置情報、変数や関数の名前、その他のデバッグ情報など、コンピュータの中央プロセッサによって直接実行でき、実行時にコードによって使用されるデータが含まれます。オブジェクトファイルはソースコードファイルからプログラムファイルを生成する過程の中間生成物であり、リンカはオブジェクトファイルをリンクして実行ファイルやライブラリファイルを生成します。オブジェクト ファイル内の唯一の要素はマシン コードです。たとえば、組み込みシステムのオブジェクト ファイルにはマシン コードのみが含まれる場合があります。

ターゲット コードは通常、次の 3 つの形式を取ります。 機械語モジュールにアセンブルされる機械語アセンブリ言語。

ターゲットコード生成時に考慮すべき点

(1)生成されるターゲットコードを短くする方法

(2)レジスタを駆使してコードを短くする方法メモリアクセス数

(3) ポインティングシステムの機能を使いこなすには。

アセンブリ言語では、レジスタ AX、命令レジスタ IR などが直接使用されることが多く、レジスタのパラメータが異なると、アセンブリ言語はハードウェア言語に近くなります。

以上がコンピューター言語にはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート