コンピュータ言語の種類には、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 つの段階に分けることができます。
動的言語とは、プログラムの実行中に変数に指定されるデータの型を指し、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 サイトの他の関連記事を参照してください。