1

Python を使用して「プログラム」を解析し、それをアセンブラーに変換する非常に短いプログラムを作成して、小さなプログラミング言語を実行可能ファイルにコンパイルできるようにしました。

詳細については、こちらのブログをご覧 ください http://spiceycurry.blogspot.com/2010/05/simple-compilable-programming-language.html

私の質問は...上記のブログでスクリプトをさらに拡張できるように、他のカーネルコマンドをどこで見つけることができますか?

4

1 に答える 1

1

LLVMを使用することをお勧めします。

  • レジスタの割り当てなどの低レベルの詳細を気にする必要がなくなります (SSA フォームのみを提供します)。
  • それはあなたのために最適化を行います。GHC の LLVM パイプラインが示すように、手書きで十分に最適化されたコンパイラよりも高速になる可能性があります (最初は、十分に最適化される前は、成熟したネイティブ コード ジェネレータと同等またはそれ以上のパフォーマンスがありました)。
  • クロスプラットフォームです-たとえばx86に縛られません

「カーネル」コマンドの意味がよくわかりません。オペコードを意味する場合:

  • インテルのマニュアルがあります
  • 文書化されたすべてのメモノニクスを含むウィキペディアのページがあります (ただし、オペコードではなく、常に説明であるとは限りません)。
  • NASMマニュアルあり

ただし、ARM または PowerPC のオペコードはまったく異なります。

オペレーティング systen syscalls (システム コール) を意味する場合:

  • Cライブラリをそのまま使用できます。それはすべてのオペレーティング システムにあり、クロス プラットフォームです。
  • syscall を直接使用できます。ただし、それらは使いにくく、遅くなる可能性があり (libc は追加のバッファリングを使用する場合があります)、クロスプラットフォームではありません ( x86 の Linux システムコール- 最新ではない可能性があります)。
于 2010-05-20T12:12:03.533 に答える