ps。 高級言語が必ずしも「ハイエンド」であるわけではないことはわかっています。しかし問題は、それが高級言語でありチューリング完全であるのに、なぜ「ローエンド」なのかということです。他の言語はどこに関係するのでしょうか?
プログラミング言語は大きく 2 つのタイプに分類できます: 1) ハッキングされるもの 2) 誰も使用しないもの
——オストロフスキー
は上で述べました。 🎜> - カスペルスキー
このトピックは時代を超えています
高レベル言語のみがハッキング可能です。低レベル言語はハッキングできません。 ハハハ、まず第一に、PHP が世界で最高の言語であると主張しなければなりません~
低レベルと高レベルは、実際には単なる相対的な概念にすぎません。Java は、C 言語と比較して比較的高レベルのプログラミング言語と考えることができます。
高水準言語と低水準言語の違いを説明したブログ投稿があります:
私はそう思います:高水準言語: 実装効率が高い、実行効率が低い、ハードウェアの制御性が弱い、オブジェクトコードが大きい、保守性が良い、移植性が良い
低水準言語: 実装効率が低く、実行効率が高く、ハードウェアは制御性が高く、ターゲット コードが小さく、保守性と移植性が低い
CPU がバイナリ命令を実行することは誰もが知っています。言語で書かれたプログラムはすべて、最終的にはバイナリ コードに変換する必要がありますが、実装にこれほど多くの違いがあるのはなぜでしょうか?以下、高級言語の代表としてC言語、低級言語の代表としてアセンブリ言語を用いて説明します。アセンブリ言語は、低級言語ほど機械命令に近い形式になります。言語が高度であればあるほど、1 つのステートメントに対応する命令の数が多くなります。その理由は、高級言語では基礎となる操作が抽象化およびカプセル化され、プログラムを作成するプロセスが人間の思考習慣により一致し、人間の作業が大幅に簡素化されるためです。言い換えれば、高級言語で文を書く場合、その文は多くの低レベル操作に変換され、作業のほとんどは変換を担当するマシン (つまり、コンパイラ) に渡されます。マンパワーが解放される。機械は人間に利便性を提供するために使用されるため、高級言語の出現はコンピューターの発展の必然の結果です。
以下では、低レベル言語がより効率的に実行される理由を説明することに重点を置いています:
1. 低レベル言語はハードウェア アクセスを制御することで効率を最適化できます
下位言語は最下層に近いほど、つまりハードウェアアクセスを制御する能力が強いほど、ハードウェアリソースの利用効率が高くなります。たとえば、アセンブリ言語はレジスタにアクセスできますが、C 言語はアクセスできません。レジスタなどのハードウェアにアクセスすることで、プログラムの実行効率を最大限に最適化することができます。Cなどの高級言語はスタックなどのメモリ構造を最も多く使用しており、アクセス速度は当然ながらレジスタには及びません。
2. 高級言語プログラムでは冗長な作業が発生し、効率が低下します。
さまざまな言語は、コンパイラーによって機械語に変換される必要があります。コンパイルがどれほど賢くて強力であっても、冗長性が発生します。ここでいう冗長性とは命令の数ではなく、無駄なことをしているかどうかを指します。 冗長性を生成する鍵は、言語と機械語命令の間の結合の度合いによって決まります。結合の度合いが大きくなるほど、コンパイラの変換プロセスが簡素化され、生成される冗長性が少なくなります。対応するアセンブリブックは機械語コードと1対1に対応しているため、基本的に翻訳後の重複はありません。高級言語は抽象化とカプセル化が行われているため、機械命令との結合度が低く、翻訳プロセス全体がより複雑になります。そのため、高級言語を具体化する過程でより多くの冗長性が必然的に発生します。 C言語は10%効率が落ちると言われています。
3. 効率が高いかどうかはプログラマーのレベルに依存します。
アセンブリでプログラムを書く下手なプログラマは無駄な操作が多いかもしれませんが、C言語で書く達人プログラマはプログラムを最大限に最適化することができます。最終的には、アセンブルされたプログラムが C 言語プログラムを実行できなくなる可能性があります。
つまり、ジョブを完了するための作業負荷は変わりませんが、同時に、プログラムの多くの詳細に対する人間の制御も弱まります。さまざまな言語がこのバランス点付近で苦戦しています。マシンの計算効率を重視したC/C++の最適化から、開発効率を重視したC#/JAVAの最適化まで。人間の操作がより便利かつ効率的になった代わりに、マシンがより多くの処理を行う必要があり、コンピューティング効率がさらに圧縮されます。ただし、この圧縮は許容範囲内なので、これも改善です。