Voodoo Compiler

Software screenshot:
Voodoo Compiler
Software detaljer:
Version: 1.1.1
Upload dato: 20 Feb 15
Udvikler: Robbert Haarman
Licens: Gratis
Popularitet: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler er en implementering af Voodoo programmeringssprog. & Nbsp; Voodoo programmeringssprog er et lavt niveau programmeringssprog, bort over platformens instruktionssæt og ringer konventioner, men ellers forlader programmør fri til at gøre noget som helst.
Voodoo Compiler er skrevet i Ruby og genererer kode til i386-kompatible, AMD64, og MIPS CPU'er. Er planlagt støtte til yderligere mål CPU'er for fremtiden.
Anvendelse
Der er to primære måder at bruge Voodoo compiler: ved at køre voodooc program, eller ved at bruge Ruby API.
Det voodooc Programmet samler en Voodoo kildefiler. Dens anvendelse er beskrevet i voodooc.1 manpage inkluderet i fordelingen. Det følgende er et eksempel på, hvordan voodooc kan bruges til at oprette en eksekverbar Hej fra en kildefil hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o hej
$ ./hello
Hej, verden!
En implementering af hello.voo kan findes i biblioteket test af fordelingen.
Den anden måde at bruge Voodoo compiler er ved hjælp af det fra en Ruby program. Dette kan for eksempel anvendes til at generere koden for målplatformen uden at skulle oprette en .voo fil. Det følgende er et eksempel, som skaber et objekt fil kaldet fact.o, der indeholder en definition af en funktion kendsgerning, som beregner fakulteterne:
kræve 'voodoo'
generator = Voodoo :: CodeGenerator.get_generator: arkitektur =>: i386,
& Nbsp;: format =>: elf
generator.export: kendsgerning
generator.add_function_label: kendsgerning
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # derefter
& Nbsp; [[: afkast, 1]],
& Nbsp; # andet
& Nbsp; [[: lad,: x,: sub,: n, 1],
& Nbsp; [: sæt,: x,: ring,: Faktisk: x]
& Nbsp; [: gengæld: mul,: n,: x]]]
File.open (»fact.o ',' w ') {| outfile | generator.write outfile}
Voodoo compiler API, er en tilgængelig for Ruby-programmer er beskrevet i API dokumentationen

Hvad er nyt i denne udgivelse:.

    < li> Kompatibilitet med Ruby 1.9, foruden Ruby 1,8; gøre test rapporterer nu antallet af beståede og mislykkede forsøg.
  • mange-Vars test er blevet opdelt i mange-args, mange-args-hale, og mange-lokale.

Hvad er nyt i version 1.0.1:

  • Denne version tilføjer en række forbedringer til parser , som nu rapporterer kildekode steder for alle fejl og kan rapportere flere fejl inde blokke, funktioner og betingede. Adskillige tests for parseren er blevet tilføjet.
  • Denne udgivelse løser en parser-fejl på redegørelser efterfulgt af kommentarer og et problem, som forårsagede parser til at mislykkes på tomme input.

Hvad er nyt i version 1.0.0:

  • ARM kodegenerator: Den compiler kan nu generere samling og ELF objekt kode for ARM-arkitekturen.
  • Forbedret fejlrapportering:. Opdages flere fejl, og fejl er rapporteret i lettere at forstå fejlmeddelelser
  • Validator modul: Dette nye modul kan bruges til at validere genereret Voodoo kode. Det bruges af parseren at validere parses kode.
  • Feature interface: træk af gennemførelsen kan forespørges både programmatisk og fra kommandolinjen
  • .

Hvad er nyt i version 0.7.0:

  • blokke: disse giver anvendelsesområder, hvor de lokale variabler kan defineres med lad. Sådanne variabler findes fra slutningen af ​​lad opgørelse frem til slutningen af ​​blokken. Blokke kan forekomme i ethvert sted, hvor en handling kan forekomme. De er i gang med blok og sluttede med udgangen blok.
  • Lænket betingede: Det er nu muligt at skrive & quot; ellers hvis & quot ;, i stedet for at kræve en indlejret hvis i klausulen ellers
  • .
  • Shift og rotere: flytte handlinger (ASR, BSR, SHL, SHR) og rotere aktioner (rol, ROR) er blevet tilføjet
  • .
  • Retur uden værdi: afkast kan nu bruges uden angivelse af et udtryk for at evaluere. Dette medfører en udefineret værdi, der skal returneres fra funktionen.

Hvad er nyt i version 0.6.3:

  • Denne udgivelse introducerer at-udtryk: ved at foranstille et etiket, lokal variabel, eller heltal med en @ er værdien behandlet som en adresse, og ordet er lagret på denne adresse returneres.
  • Derudover blev nogle bugs afdækket i den måde strengene blev kodet i genereret samling kode.
  • Disse fejl er blevet rettet, og version 0.6.3 håndterer nu strenge indeholdende samtlige 256 mulige byteværdier korrekt.

Hvad er nyt i version 0.6.2:

  • Denne udgivelse løser bugs i implementeringer af indstillingen ord for i386 og AMD64 og tilføjer tests for de sager, der tidligere fungerede korrekt.

Lignende software

SmartEiffel
SmartEiffel

3 Jun 15

Plessc
Plessc

19 Feb 15

Toka
Toka

3 Jun 15

Kommentarer til Voodoo Compiler

Kommentarer ikke fundet
Tilføj kommentar
Tænd billeder!