コンピュータがコードを認識する仕組み (普及版)

        まず、コンピュータの作成当初の役割は、データ+メソッド=結果を渡すこと、つまりデータのメソッドとデータ間の関係をコンピュータに与えることです。データと 1 + 1 = 2 が手法であり、足し算です。その名の通り、コンピュータは既存のデータを計算し、一定の方法で計算し、その結果を計算します。実際、人間もコンピュータですが、人間と違うのは、コンピュータは完全に集中していて頑固であることです。コンピュータは環境の影響を受けず、私たちとは異なります。人間にも気が散る思考があります。たとえば、1+1=2 を計算するとき、私たちが受け取るデータは 1 1 です、そして、計算方法は加算であり、結果は 2 です。もちろん、単純なデータを計算する場合、私たちの反応は機械の反応よりも遅いとは言えません。なぜなら、それでも機械に入力する必要があるからです(もちろん、競争する場合)同じステージ上で機械を擬人化しても、絶対に機械には勝てません(結局、反応時間もありますし、機械の方が絶対に速いでしょう) 小規模なデータを計算する場合、コンピューターの能力は非常に大きくなります。メリットはありますが、データ量が増えると機械のメリットも徐々に増えていきます。

        ここで新たに関係するのは計算能力です。私の現在の理解では、計算能力とは計算能力です (非公式の定義、個人的な理解です)。計算速度に加えて、計算能力は同時に処理されるデータにも関係します。一般的に言えば、人々が強力であると言われるとき、彼らはすべての方向を見て、すべての方向に耳を傾けることを好みます。これは、情報を受け取るときに複数の情報を同時に処理できるため、その人の計算能力が非常に強力であることを意味します(コンピューターの場合) , これはマルチスレッド情報処理です), 単純であっても覚えておいてください, コンピューター言語では、それはストレージであり、これも非常に強力です. 不注意だとよく言われる別のタイプの人がいます. 明らかに、この種のこの人は決してマルチスレッド操作 (マルチスレッド) を実行できる人ではありません。一般的な理解では、人は複数のことを同時に処理できる、つまり、全方向が見え、全方向が聞こえる人であると考えられています)。これは、この人の計算能力が弱いという意味ではありません。前述したように、計算能力は、計算速度と同時に処理できるデータの量によって決まります。この人は、複数のデータを一度に処理できない可能性があると判断されています。同時に、1 つの情報を処理する、または 1 つのことを行う際に非常に効率的である場合でも、この人の計算能力は高いと言えます。もちろん、両方が高ければ、計算能力が高いと言えます。このことから、人間の計算能力は実際には非常に限られていることがわかります。しかし、長い開発期間を経て、コンピューターは計算能力という点で非常に強力になり、もはや人間とは比較にならないほどになっています。

        それでは、コンピューターが私たちが書いたコードをどのように実行するかに戻りましょう。私たちの印象では、コンピュータは実際には 0 と 1 から切り離せないものであり、コンピュータはその誕生以来、この 2 つの価値観に縛られているように見えますが、これは私たちが現在話している中国語と同じように、コンピュータが最初から知っている言語でもあります。これは、私たちが生まれたときから使っている言語です。他の言語の場合、この種のマシンコードをマシンコードと呼びます。これは、マシンを実行するための最も直接的な言語でもあります。前進するコマンドを聞いたときと同じように、私たちは前進することを知っています。たとえば、マシンは 00000001 (たとえば、このマシン コードは減算を表します) を認識すると、減算演算を実行することを認識します。これがマシンと通信する言語です。マシンが認識できる言語は次のとおりです。マシンコードですが、マシンコードの記述は非常に難解で理解しにくく、記述、学習、保守には多くの時間がかかります。

        このため、アセンブリ言語と呼ばれる新しい言語が誕生しました。アセンブリ言語には、ニーモニックとアセンブラという 2 つの概念が組み込まれています。ニーモニックは、 00000001 (マイナスであると仮定) のように簡単に理解できます。これを表すために add を使用できます。この効果は明白です。add は私たちが知っている言語 (英語に加えて) であるため、コードの読みやすさが向上するだけでなく、記述とメンテナンスのコストも削減されます。コードは、最終的には実行するためにコンピュータまたはマシンに引き渡される必要があるため、アセンブラが登場します。実行する必要があるコードを作成した後、それはコンピュータまたはマシンが理解できる言語にコンパイルされます。私たちがやりたいことは、アセンブリ言語の発展とコンピュータの複雑さの増加により、あいまいなマシンコードの欠点は解決されたものの、マシンごとに異なる文法仕様 (たとえば、マシン メーカーが異なると、アセンブリ言語の定義が異なります。A は、マシン コードにコンパイルされた enjoin 命令が何かを実行することを禁止されていると信じていますが、タスク B はパターンを必要としているため、コードの移植性が非常に低くなります。

        このため、私たちがコンピュータを学習するために使用する、より身近な言語である C 言語が誕生しました。その目的は、アセンブリ言語の欠点を解決することでした。統一された国際機関が統一仕様を定義しました。コンパイラが実行できるように、誰もがこの仕様に従う必要があります。」対応する機械語コードをコンパイルします。同時に、実際にはアセンブリ言語に非常に似ています。どちらもニーモニック言語です。違いは、定義と仕様が統一されていることです。仕様の統一とコードの可読性のさらなる向上により、課題を解決します。 C 言語の利点は、さまざまなハードウェアの実装規格に加えて、その要素がシンプルで、ルールが統一されており、ハードウェアに関係がないことであり、現在のニーズと問題のほとんどを解決できます。ハードウェア関連の専攻が今でも多いと聞いているので、C言語を学ぶのは機械語に近いのかもしれません。では、私たちが今書いているコード(C言語版)は機械にどのように理解されるのでしょうか?その前に簡単に紹介しますと、上記より、コードから実行まで、C言語→実行という4つのステップを経ていることが分かります。アセンブリ言語 → マシンコード → コンピュータ実行可能コード

        私たち人間にとって理解しやすい言語であるC言語を高級言語と呼び、人間とコンピュータの間にある言語をアセンブリ言語と呼び、低級言語とも呼ばれます。 (00000000, 00000001)も機械語であり、直接理解できる言語を機械語といいます。このことから、人間がやりたいこと、たとえば 1+1 演算を実行したいことをコンピューターがどのようにして認識しているかがわかります。

C语言:

1+1

汇编代码:

ADD 1,1

机器码:

00000000

00000001

00000002

これは、コードにコンピューターによる実行方法を指示するプロセスです。

        実は、これと私が学んでいる言語の間には、まだ一定の距離があります。私は現在、JavaScript 言語を学んでいます。主流の言語はたくさんあります。一般的なものには、C、C++、Java、Python などが含まれます。言語の種類はたくさんあります。 , しかし、行き先は同じです。最終的に機械語に変換されると、それぞれの言語には長所と短所があります。極端に言うと、機械語の利点は、機械がすぐに見てコンパイルできることと、実行速度が速いことですが、書きやすく、保守しやすく、読みやすい。非常に低い。高級言語は理解しやすく学習しやすいが、最終的にはコンパイルする必要がある。速度は機械語ほどではないが、速度は低い。これはより極端な例ですが、高級言語にも同様のことが当てはまり、それぞれに独自の強みがあります。

簡単な分析:

C++、java、python、および js はオブジェクト指向プログラミング言語であり、c はプロセス指向言語です。

Python と Java は強く型指定された言語ですが、C、C++、および js は弱く型指定された言語です。

js Python 動的型、C、C++、Java は静的型

js python はスクリプト言語でありインタープリター言語です

上記は関連する知識を読んだ上での個人的な要約です。私の知識レベルが低いため、間違いがあるかもしれません。間違いを喜んで指摘してくださる方に感謝します。内容は継続的に更新され、要約を作成します。学ぶ。

参考記事:

機械語コード、アセンブリ言語、C 言語、および C++_c 言語の開発と機械コーディングについての理解_weixin_52045136 のブログ - CSDN ブログ

おすすめ

転載: blog.csdn.net/weixin_54515240/article/details/129239629