Voodoo Compiler

Software skärmdump:
Voodoo Compiler
Mjukvaruinformation:
Version: 1.1.1
Ladda upp dagen: 20 Feb 15
Utvecklare: Robbert Haarman
Licens: Gratis
Popularitet: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler är en implementering av programmeringsspråk Voodoo. & Nbsp; programmeringsspråk Voodoo är en Lågnivåspråk, abstrahera över plattformens instruktionsuppsättning och ringer konventioner, men annars lämnar programmeraren fri att göra något alls.
Voodoo Compiler är skriven i Ruby och genererar kod för i386-kompatibel, AMD64 och MIPS-processorer. Stöd för ytterligare mål processorer planeras för framtiden.
Användning
Det finns två huvudsakliga sätt att använda Voodoo kompilatorn: genom att köra voodooc programmet, eller genom att använda Ruby API.
Den voodooc Programmet sammanställer en Voodoo källfiler. Dess användning beskrivs i voodooc.1 manualsida, ingår i distributionen. Följande är ett exempel på hur voodooc kan användas för att skapa en körbar Hej från en källfil hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o hej
$ ./hello
Hej världen!
En implementering av hello.voo kan hittas i katalogen testet av fördelningen.
Det andra sättet att använda Voodoo kompilator är att använda det från en Ruby program. Detta kan användas, till exempel för att generera kod för målplattform utan att behöva skapa en .voo fil. Följande är ett exempel som skapar ett objekt fil som heter fact.o, som innehåller en definition av en funktion faktum som beräknar fakulteter:
kräva 'voodoo'
generator = Voodoo :: CodeGenerator.get_generator: arkitektur =>: i386,
& Nbsp;: format =>: elf
generator.export: faktum
generator.add_function_label: faktum
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # sedan
& Nbsp; [[: avkastning, 1]],
& Nbsp; # annanstans
& Nbsp; [[: låt,: x,: sub,: n, 1],
& Nbsp; [: set,: x,: ringa,: Faktum: x]
& Nbsp; [: avkastning,: mul,: n,: x]]]
File.open ('fact.o "," w ") {| outfile | generator.write outfile}
Voodoo kompilator API som är en tillgänglig för Ruby-program beskrivs i API-dokumentationen

Vad är nytt i den här versionen:.

    < li> Kompatibilitet med Ruby 1.9, förutom Ruby 1.8; gör testet rapporterar nu antalet godkänd och underkänd test.
  • Den mång Vars testet har delats upp i flera-args, många-args-svans, och många-ortsbor.

Vad är nytt i version 1.0.1:

  • Denna version lägger ett antal förbättringar till tolken , som nu redovisar källkod platser för alla fel och kan rapportera flera fel inne block, funktioner och villkors. Flera tester för tolken har lagts till.
  • fixar här versionen en parse error uttalanden följda av kommentarer och ett problem som orsakade tolken att misslyckas på tom ingång.

Vad är nytt i version 1.0.0:

  • ARM kodgenerator: Kompilatorn kan nu generera montering och ELF objektkod för ARM-arkitekturen.
  • Förbättrad felrapportering:. Fler fel upptäcks och fel rapporteras i lättare att förstå felmeddelanden
  • Validator modul: denna nya modul kan användas för att validera genereras Voodoo-kod. Det används av tolken att validera analyserad kod.
  • Feature gränssnitt: funktioner i genomförandet kan frågas både programmässigt och från kommandoraden
  • .

Vad är nytt i version 0.7.0:

  • block: dessa ger omfattningar där lokala variabler kan definieras med låt. Sådana variabler existerar från slutet av låt uttalande till slutet av blocket. Block kan uppstå på en plats där en åtgärd kan uppstå. De började med block och slutade med slutblock.
  • Chained villkors: Det är nu möjligt att skriva & quot; else if & quot ;, istället för att kräva en kapslad om i annat klausulen
  • .
  • Shift och rotera: Omställningsåtgärder (asr, BSR, SHL, SHR) och rotera åtgärder (rol, ROR) har lagts
  • .
  • Return utan värde: avkastning kan nu användas utan att specificera ett uttryck för att utvärdera. Detta orsakar en odefinierad värde som ska returneras från funktionen.

Vad är nytt i version 0.6.3:

  • introducerar här versionen at-uttryck: genom att inleda en etikett, lokal variabel, eller heltal med ett @, är det värde behandlas som en adress, och ordet lagras på den adressen återlämnas.
  • Dessutom har vissa buggar upptäckts i hur strängarna kodades i genererad assemblerkod.
  • Dessa buggar har åtgärdats, och version 0.6.3 hanterar nu strängar som innehåller alla 256 möjliga bytevärden korrekt.

Vad är nytt i version 0.6.2:

  • Denna utgåva rättar buggar i implementationer av inställning ord för i386 och AMD64 och lägger tester för de fall som tidigare inte fungerade korrekt.

Liknande mjukvara

Flex
Flex

12 Jul 17

Aubit 4GL compiler
Aubit 4GL compiler

20 Feb 15

Toka
Toka

3 Jun 15

Cake
Cake

14 Apr 15

Kommentarer till Voodoo Compiler

Kommentarer hittades inte
Kommentar
Slå på bilder!