Voodoo Compiler

Software screenshot:
Voodoo Compiler
Podrobnosti Software:
Verze: 1.1.1
Datum uploadu: 20 Feb 15
Vývojka: Robbert Haarman
Licence: Volný
Popularita: 43

Rating: 5.0/5 (Total Votes: 1)

Voodoo Compiler je implementace programovacího jazyka Voodoo. & Nbsp; Programovací jazyk Voodoo je programovací jazyk low-level, abstrakce přes pokyn platformy nastavit a volání konvence, ale jinak opouštět programátor volný dělat vůbec nic.
Voodoo Compiler je napsán v Ruby a generuje kód pro i386 kompatibilní, AMD64, a MIPS CPU. Podpora pro další cílové CPU je plánováno do budoucna.
Použít
Existují dva hlavní způsoby použití Voodoo kompilátoru: spuštěním programu voodooc, nebo pomocí Ruby API.
Program voodooc zkompiluje zdrojové soubory Voodoo. Jeho použití je popsán v voodooc.1 manuálové stránce, v distribuci. Je následující příklad toho, jak lze voodooc použít k vytvoření spustitelného pozdrav ze zdrojového souboru hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o ahoj
$ ./hello
Ahoj světe!
Implementace hello.voo lze nalézt v testu adresáři distribuce.
Druhý způsob, jak používat Voodoo kompilátor je pomocí jej z programu Ruby. Toto může být použit, například, pro generování kódu pro cílovou platformu, aniž by k vytvoření souboru .voo. Je následující příklad, který vytvoří soubor objekt nazvaný fact.o, který obsahuje definici funkce fakt, který počítá faktoriály:
vyžadovat "voodoo"
generátor = Voodoo :: CodeGenerator.get_generator: architektura =>: i386,
& Nbsp;: format =>: elf
generator.export: skutečnost
generator.add_function_label: skutečnost
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # pak
& Nbsp; [[: return, 1]],
& Nbsp; # jinde
& Nbsp; [[: ať,: x,: sub,: n, 1],
& Nbsp; [: set,: x,: volání,: fakt,: x]
& Nbsp; [: návrat,: mul,: n,: x]]]
File.open ("fact.o", "w") {| outfile | generator.write outfile}
Voodoo kompilátor API, které je k dispozici na programy Ruby je popsáno v dokumentaci API

Co je nového v této verzi:.

    < li> Kompatibilita s Ruby 1.9, kromě Ruby 1.8; provést testy nyní hlásí počet předaných a neúspěšných testů.
  • Test many-Vars byla rozdělena do mnoha-args, mnoho-args-ocas, a mnoho-místních obyvatel.

Co je nového ve verzi 1.0.1:

  • Tato verze přidává řadu vylepšení analyzátor , který nyní hlásí umístění zdrojový kód pro všechny chyby a mohou hlásit více chyb uvnitř bloků, funkce, a podmínky. Bylo přidáno několik testů na analyzátoru.
  • Tato verze opravuje chybu derivační na základě prohlášení následuje komentáře a problém, který způsobil parser selhání na prázdný vstupu.

Co je nového ve verzi 1.0.0:

  • ARM generátor kódu: kompilátor může nyní vytvářet sestavy a ELF objektový kód pro architekturu ARM.
  • Lepší error reporting:. Více chyb jsou zjištěny, a chyby jsou hlášeny v srozumitelnější chybové zprávy
  • Validator module: tento nový modul může být použit k ověření generovaný Voodoo kód. To je používáno parser pro ověření analyzovaných kódu.
  • interface funkce: funkce implementace je možno zjistit jak programově i z příkazového řádku
  • .

Co je nového ve verzi 0.7.0:

  • bloky: ty poskytnout oborů, ve kterých místní proměnné mohou definovat pomocí pronájmu. Tyto proměnné existují od konce příkazu? Let až do konce bloku. Bloky se může objevit v jakémkoli místě, kde může dojít k akci. Jsou začali s blokem a skončil konci bloku.
  • Zřetězené podmínky: je nyní možné psát & quot; else if-quot ;, místo vyžadující vnořené-li v klauzuli jiný
  • .
  • Shift a otočte: Akce k převodu (ASR, BSR, SHL, SHR) (ROL, ROR), které byly přidány a otáčet akce
  • .
  • Return bez hodnoty: návrat nyní mohou být použity bez udání výraz hodnotit. To způsobí, že nedefinovanou hodnotu, aby se vrátil z funkce.

Co je nového ve verzi 0.6.3:

  • Tato verze přináší na-výrazů: By prefixu štítek, lokální proměnné, nebo celé číslo s @, hodnota je považována za adresu, a vrací se slovo uložený na této adrese.
  • Navíc, některé chyby byly odkryty ve způsobu, jakým řetězce byly zakódovány v generovaného assembleru.
  • Tyto chyby byly opraveny, a verze 0.6.3 nyní zpracovává řetězce, které obsahují všechny možné hodnoty 256 bajtů správně.

Co je nového ve verzi 0.6.2:

  • Tato verze opravuje chyby v implementacích vynětí slovo pro i386 a AMD64 a přidává testy pro případy, které dříve nefungovaly správně.

Podobný software

Python
Python

22 Jun 18

Pyexpander
Pyexpander

20 Feb 15

Stratego/XT
Stratego/XT

3 Jun 15

Komentáře k Voodoo Compiler

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!