Voodoo Compiler

Skjermbilde programvare:
Voodoo Compiler
Prog.varedetaljer:
Versjon: 1.1.1
Last opp dato: 20 Feb 15
Utvikler: Robbert Haarman
Lisens: Gratis
Popularitet: 43

Rating: 5.0/5 (Total Votes: 1)

Voodoo Compiler er en implementering av Voodoo programmeringsspråk. & Nbsp; The Voodoo programmeringsspråk er et lavnivå programmeringsspråk, abstrahere over plattformens instruksjonssett og ringer konvensjoner, men ellers forlater programmerer fri til å gjøre noe i det hele tatt.
Voodoo Compiler er skrevet i Ruby og genererer kode for i386-kompatibel, AMD64, og MIPS CPUer. Støtte for ekstra mål CPUer er planlagt for fremtiden.
Bruk
Det er to hovedmåter å bruke Voodoo kompilatoren: ved å kjøre voodooc program, eller ved å bruke Ruby API.
Den voodooc programmet kompilerer en voodoo kildefilene. Dens bruk er beskrevet i voodooc.1 manpage, inkludert i distribusjonen. Følgende er et eksempel på hvordan voodooc kan brukes til å lage en kjørbar hei fra en kilde fil hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o hallo
$ ./hello
Hallo verden!
En implementering av hello.voo kan finnes i katalogen test av fordelingen.
Den andre måten å bruke Voodoo kompilatoren er ved å bruke det fra en Ruby program. Dette kan brukes, for eksempel for å generere koden for målplattformen uten å måtte lage en .voo fil. Følgende er et eksempel som skaper et objekt fil som heter fact.o, som inneholder en definisjon av en funksjon faktum som beregner fakultetene:
krever "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; # deretter
& Nbsp; [[: retur, 1]],
& Nbsp; # annet
& Nbsp; [[: la,: x,: sub,: n, 1],
& Nbsp; [: set,: x,: ring,: Faktisk: x],
& Nbsp; [: gjengjeld: mul,: n,: x]]]
File.open ('fact.o', 'w') {| outfile | generator.write outfile}
Voodoo kompilatoren API som er en tilgjengelig for Ruby-programmer er beskrevet i API-dokumentasjonen

Hva er nytt i denne utgaven:.

    < li> Kompatibilitet med Ruby 1.9, i tillegg til Ruby 1.8; lage testrapporter nå antall bestått og mislykkede tester.
  • De mange-vars testen er delt inn i mange-args, mange-args-hale, og mange-lokalbefolkningen.

Hva er nytt i versjon 1.0.1:

  • Denne versjonen legger til en rekke forbedringer til parser , som nå rapporterer kildekode steder for alle feil og kan rapportere flere feil inne blokker, funksjoner og conditionals. Flere tester for parseren har blitt lagt til.
  • Denne versjonen retter en syntaksfeil på uttalelser etterfulgt av kommentarer og et problem som forårsaket parser til å mislykkes på tom innspill.

Hva er nytt i versjon 1.0.0:

  • ARM code generator: Kompilatoren kan nå generere montering og ELF objektkode for ARM-arkitekturen.
  • Forbedret feilrapportering. Flere feil blir oppdaget, og feil rapporteres i lettere å forstå feilmeldinger
  • Validator modul: denne nye modulen kan brukes til å validere generert Voodoo-kode. Den brukes av parseren å validere analyserte kode.
  • Feature grensesnitt: funksjoner i gjennomføringen kan spørres både programmatisk og fra kommandolinjen
  • .

Hva er nytt i versjon 0.7.0:

  • blokker: disse gir scopes der lokale variabler kan defineres med utleid. Slike variabler eksisterer fra enden av la setningen til slutten av blokken. Blokker kan skje på et sted hvor en handling kan oppstå. De er i gang med blokk og endte med slutten blokk.
  • Lenket conditionals: det er nå mulig å skrive & quot; annet hvis & quot ;, i stedet for å kreve en nestet hvis i annet klausul
  • .
  • Shift og roter: skifte handlinger (asr, BSR, SHL, SHR) og rotere handlinger (rol, ROR) har blitt lagt
  • .
  • Gå tilbake uten verdi: avkastning kan nå brukes uten å spesifisere et uttrykk for å evaluere. Dette fører til en udefinert verdi som skal returneres fra funksjonen.

Hva er nytt i versjon 0.6.3:

  • Denne utgivelsen introduserer at-uttrykk: Ved prefixing en etikett, lokal variabel, eller heltall med en @, er verdien behandlet som en adresse, og ordet er lagret på denne adressen er returnert.
  • I tillegg ble noen bugs avdekket i måten strenger ble kodet i generert assemblerkode.
  • Disse feilene har blitt fikset, og versjon 0.6.3 håndterer nå strenger som inneholder alle 256 mulige byte-verdier på riktig måte.

Hva er nytt i versjon 0.6.2:

  • Denne utgivelsen fikser bugs i implementeringer av innstilling ord for i386 og AMD64 og legger tester for de sakene som tidligere ikke fungerte riktig.

Lignende programvare

Agena
Agena

22 Jun 18

bigloo
bigloo

20 Feb 15

GNU Automake
GNU Automake

22 Jun 18

Mumps Compiler
Mumps Compiler

28 Sep 15

Kommentarer til Voodoo Compiler

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!