プログラミング言語とは何ですか?
プログラミング言語は、コンピューターと対話するためのちょうど1つの方法です。コンピュータはゼロと1しか理解できないため、最初は大まかに言えば(コンピュータは2つの状態しか取ることができないスイッチとしてトランジスタで構成されているため、これらの2つの状態を0と1と呼びます)、0,1での作業は困難でした。コンピューター科学者は、binary(0,1)のすべての命令から、アセンブリ言語と呼ばれるより人間が読める形式に1対1のマッピングを行うことを決定しました。
たとえば、次のような指示があった場合:
11001101
アセンブリでは、次のように呼び出されます。
LOAD_A 15
これは、レジスターaの内容をメモリー・ロケーション15にロードすることを意味します。前述のように、コンピューターのトランジスターまたはその他の2つの状態に対して0と1を選択するような規則にすぎません。このように、50命令のプログラムがあります。アセンブリ言語を覚える方が簡単でしょう。そのため、ユーザーはアセンブリコードを記述し、一部のプログラム(この場合はアセンブラー)は、コードを呼び出すときにコードをバイナリー命令または機械語に変換します。
しかし、コンピュータが毎日改良されるにつれて、より多くの命令を含むより複雑なプログラム、たとえば10000の余地がありました。
この場合、アセンブリのような1対1のマッピングは機能しないため、他の高水準プログラミング言語が作成されました。たとえば、ユーザーが作成した画面に何かを印刷するためのI / Oデバイスとの関係で約80の指示が必要な場合は、ここで何かを実行して、このすべてのコードを1つのライブラリにパッケージ化して、たとえばprintfのように呼び出すことができますまた、このprintfを関連するアセンブリコードに変換できる別のプログラムを作成し、そこからアセンブリが残りを実行します。彼らはそれをコンパイラと呼んでいます。
したがって、画面に何かを印刷したいすべてのユーザーは、すべての命令をバイナリまたはアセンブリで記述する必要がなくなり、printf( "something")と入力するだけで、コンパイラやアセンブラなどのすべてのプログラムが残りを実行します。今、他の長いコードは同じ方法でパッケージ化され、他の人の作業を容易にするために、数千行のコードをpythonで1つのコードに単純化して他の人が使用できるようにパックできることがわかります。
たとえば、Pythonで多くの異なるコードをパックし、モジュール(ライブラリ、パッケージ、または呼び出したいもの)を作成して、そのモジュールをmgh(ちょうど私の名前)と呼ぶとします。ここで、このmghを何らかの方法で作成したとします。
import mgh
mgh.connect(ip,port.data)...
ipとポート番号を指定してリモートサーバーに簡単に接続し、後でデータを送信できます(またはそのようなもの)。今では、1行ですべてを実行できますが、実際に行われるのは、mghファイルから取得された多くのコードが実行されていることです。パッケージ化は、実行プロセスを高速化するためではなく、他のプログラマの作業を容易にするためのものです。したがって、誰かが最初にコードを使用したい場合は、ファイルをインポートしてから、Pythonインタープリターがその中のすべてのコードを認識し、コードを解釈できるようにします。
プログラミング言語を作成して実行したい場合は、まず翻訳が必要です。たとえば、構文を理解してcに変換できるプログラムを作成するとします。 cに、残りはcコンパイラ、次にアセンブラ、リンカーなどによって処理されます。最初にcに変換する必要があるため、速度が遅くなるという代償を払う必要があります。
今あなたができるもう一つのことは、cで起こるのと同じように、すべてのコードを同等のアセンブリ言語に翻訳できるプログラムを作成することですが、この場合、プログラムはそれを直接行うことができ、そこから残りはリンカ。このプログラムはコンパイラと呼ばれています。
だから私が話していることは、システムが理解する唯一のコードは0,1なので、どういうわけか構文をそれに変換する必要があります。今、私たちのオペレーティングシステムでは、アセンブラー、リンカーなどの多くの異なるプログラム...コードをアセンブリに変換できれば、残りの部分を処理できるか、または私が言ったように、コードをその言語に変換することで他のプログラミング言語コンパイラを使用できることを伝えるために作成されました。