Voodoo Compiler

ソフトウェアのスクリーンショット:
Voodoo Compiler
ソフトウェアの詳細:
バージョン: 1.1.1
日付のアップロード: 20 Feb 15
開発者: Robbert Haarman
ライセンス: 無料
人気: 43

Rating: 5.0/5 (Total Votes: 1)

ブードゥーコンパイラはブードゥープログラミング言語の実装です ブードゥープログラミング言語は、プラットフォームの命令セットの上に抽象化し、呼び出し規約、低レベルのプログラミング言語ですが、それ以外は全く何もして自由にプログラマを残す。
ブードゥーコンパイラはRubyで書かれたとi386互換、AMD64用のコードを生成し、MIPS CPUをされている。追加のターゲットCPUのサポートが将来のために計画されています。
の使用法
voodoocプログラムを実行することにより、またはRubyのAPIを使用して:ブードゥーコンパイラを使用する2つの主要な方法があります。
voodoocプログラムはブードゥーのソースファイルをコンパイルします。その使用量は、ディストリビューションに含まvoodooc.1のマンに記載されている。以下は、voodoocは、ソースファイルのhello.vooから実行可能なハローを作成するために使用することができる方法の例を示します。
$のvoodoocのhello.voo
$ CCとhello.o -oハロー
$ ./hello
こんにちは世界!
hello.vooの実装では、ディストリビューションのディレクトリテストで発見することができます。
ブードゥーコンパイラを使用する2番目の方法は、Rubyプログラムからそれを使用することです。これは.vooファイルを作成することなく、ターゲットプラットフォーム用のコードを生成するために、例えば、使用することができる。以下は、階乗を計算する関数の事実の定義を含む、fact.oと呼ばれるオブジェクト·ファイルを作成する例です:
「ブードゥー」を必要とする
発電機=ブードゥー:: CodeGenerator.get_generator:アーキテクチャ=>:I386、
 形式=>:エルフ
generator.export:事実
generator.add_function_label:事実
generator.add_functionの[:n]は、
 :ifle、[:nは、1]、
 #その後
  [[:リターン、1]]、
 #の他に
  [[:、] nを、1:サブ:、X:、しましょう
 :セット、:X、:呼び出し、:実際、:x]は、
 :戻り、:MUL、:nは、:X]]]
File.openと( 'fact.o'、 'W'){| OUTFILE | generator.write OUTFILE}
Rubyプログラムで使用可能なブードゥーコンパイラAPIはAPIドキュメントに記述されている。

のこのリリースで新しいのあるもの:ます。

    < LI>ルビー1.9との互換性、ルビー1.8に加えて、確認テストは合格し、失敗したテストの数をレポートします。
  • 多くの-VARSテストは、多くの-argsに、多くの-argsのテールに分割されており、多くの-地元ます。

のどのバージョン1.0.1のの新しい:このバージョンでは、パーサーに多くの改良が追加されます。

  • 、これは現在、すべてのエラーのソースコードの場所を報告し、ブロック、関数、条件文の内側に複数のエラーを報告することができます。パーサのためのいくつかのテストが追加されています。
  • このリリースでは、コメントに続く文にパースエラーとパーサは空の入力に失敗する原因となった問題を修正します。

のバージョン1.0.0にの新機能:

  • ARMコードジェネレータ:コンパイラは今のアセンブリを生成することができますそしてARMアーキテクチャ用ELFオブジェクトコードます。
  • 改善されたエラー報告:さらに多くのエラーが検出され、エラーはエラーメッセージを理解することが容易で報告されます。
  • バリデータモジュール:この新しいモジュールが生成されたブードゥーコードを検証するために使用することができます。これは、解析されたコードを検証するために、パーサによって使用されます。
  • 特集·インターフェース:実装の特徴は、両方のプログラムで、コマンドラインから照会することができます。

のバージョン0.7.0でのの新機能である:ブロック

  • :これらは、スコープを提供するローカル変数は、可能性のあるletで定義される。このような変数は、ブロックの終わりまで、let文の終わりから存在する。ブロックは、アクションが発生する可能性があります任意の場所で発生する可能性があります。彼らは、ブロックで開始と終了ブロックで終了しているます。
  • チェーン条件文:それは&QUOTを書き込むことができるようになりました、そうであれば&QUOT ;,代わりにelse節であれば、ネストを必要とします。
  • Shiftキーと回転させる:アクション(ASR、BSR、SHL、SHR)をシフトするとアクションを回転(ROLを、ROR)が追加されています。
  • 値のないリターン:リターンは現在、評価する式を指定せずに使用することができる。これは、関数から返される未定義の値を引き起こします。

のあるどのバージョン0.6.3のの新しい:

  • このリリースには、AT-表現導入されています付けることによって、ラベル、ローカル変数、または@整数、値はアドレスとして扱われ、そのアドレスに格納されているワードが返されます。
  • はまた、いくつかのバグは文字列が生成されたアセンブリコードでエンコードされた形で発見されたします。
  • これらのバグが修正されている、およびバージョン0.6.3は正しく、すべての256の可能なバイト値を含む文字列を処理します。

のあるどのバージョン0.6.2のの新しい:

  • このリリースには、修正され設の実装のバグi386とAMD64とのための単語が以前に正常に動作しませんでした場合のためのテストを追加します。

同じようなソフトウェア

TXR
TXR

18 Jul 15

IsForth
IsForth

20 Feb 15

Invicta
Invicta

2 Jun 15

へのコメント Voodoo Compiler

コメントが見つかりません
コメントを追加
画像をオンにする!