コンパイラは、人間が理解できる言語を機械レベルの言語に変換します。プログラムを簡単かつ迅速に実行できるように、マシンレベル言語でプログラムを作成することはできませんか。
3 に答える
はい、Linux ではアセンブラーでプログラムできます。
たとえば、Stack Overflow でthisおよびthis question を確認してください。また、Linux Assembly HOWTOも良さそうです。
コンパイラは、人間が理解できる言語を機械レベルの言語に変換します。プログラムを簡単かつ迅速に実行できるように、マシンレベル言語でプログラムを作成することはできませんか。
機械語でプログラムを書く人はいません。 とにかく、通常のバイナリ実行可能ファイルは単なるマシン コードではないため、これを試しても意味がありません。バイナリにはマシン コードが含まれていますが、OS に依存する特定のフォーマットが含まれています。たとえば、Linux はELFを使用します。この形式は、リンカーとローダーによって認識されます(*nix では、ローダーはカーネルの一部です)。純粋なマシン コードが存在する唯一の場所は、システム メモリ内です。
機械語に非常によく似たアセンブリ言語でプログラムを作成できますが、これをコンパイルしてリンクする必要があります。つまり、他のコンパイル済み言語でプログラムを作成するのと同じことです。
最後に、一部のマシン コードをフォーマットして手動でバイナリを作成しても、何のメリットもありません。学習の練習として行うことはできますが、実際の目的ではありません。
はい。ただし、より多くのコードを記述する必要があり、時間がかかるため、より高レベルの言語とコンパイラを使用すると、時間の効率が向上します。多くの場合、コンパイラーは単なる人間ができることよりも優れています (彼らはかなり優れたプログラマーであり、コンパイラーの作成者です)。