Voodoo Compiler

Screenshot Software:
Voodoo Compiler
Detalii soft:
Versiune: 1.1.1
Incarca data: 20 Feb 15
Producător: Robbert Haarman
Licenţă: Gratuit
Popularitate: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler este o implementare a limbajului de programare Voodoo & nbsp;. Limbajul de programare Voodoo este un limbaj de programare de nivel scăzut, abstractizare peste instruire platformei stabilit și de asteptare convenții, dar lăsând în caz contrar programator liber să facă nimic, la toate.
Voodoo compilatoare este scris în Ruby și generează cod pentru i386-compatibil, AMD64, MIPS și procesoare. Suport pentru procesoare țintă suplimentară este planificată pentru viitor.
Utilizare
Există două moduri principale de a folosi compilatorul Voodoo: prin rularea programului voodooc, sau prin utilizarea API-ul Ruby.
Programul voodooc compilează un Voodoo fișiere sursă. Utilizarea sa este descrisă în pagina de manual voodooc.1, inclus în distribuție. Următoarele este un exemplu de cum voodooc poate fi folosit pentru a crea un salut executabil dintr-un fișier sursă hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o salut
$ ./hello
Salut Lume!
O implementare a hello.voo pot fi găsite în testul director de distribuție.
Al doilea mod de a folosi compilator Voodoo este prin utilizarea acestuia dintr-un program Ruby. Aceasta poate fi utilizată, de exemplu, pentru a genera codul pentru platforma țintă, fără a crea un fișier .voo. Următoarele este un exemplu care creează un fișier obiect numit fact.o, care conține o definiție a unui fapt funcție care calculează factorialele:
necesită "voodoo"
Generator = Voodoo :: CodeGenerator.get_generator: arhitectura =>: i386,
& Nbsp;: Format =>: elf
generator.export: fapt
generator.add_function_label: fapt
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # atunci
& Nbsp; [[: întoarcere, 1]],
& Nbsp; # altcineva
& Nbsp; [[: lasa,: x,: sub,: n, 1],
& Nbsp; [: set,: x,: apel,: fapt,: x],
& Nbsp; [: întoarcere,: Mul,: n,: x]]]
File.open ("fact.o", "W") {| outfile | outfile generator.write}
API Voodoo compilator, care este un disponibil de programe Ruby este descris în documentația API

Ce este nou în această versiune:.

    < li> Compatibilitatea cu Ruby 1,9, în plus față de Ruby 1,8; face de încercare acum raportează numărul de încercări trecut și nu a reușit.
  • Testul multe variabile, a fost împărțită în mai multe-args, multe-args-coadă, și multe-localnici.

Ce este nou în versiunea 1.0.1:

  • Această versiune adaugă o serie de îmbunătățiri la parserul , care raportează acum locatii de cod sursă pentru toate erorile și pot raporta mai multe erori în interiorul blocuri, funcții și condiționale. Au fost adăugate mai multe teste pentru parser-ul.
  • Această versiune repară o eroare parse pe declarațiile urmate de comentarii și o problemă care a cauzat parser să eșueze pe intrarea gol.

Ce este nou în versiunea 1.0.0 :

  • generator de cod ARM: compilatorul poate genera acum asamblare și cod obiect ELF pentru arhitectura ARM.
  • eroare îmbunătățită de raportare:. Sunt detectate mai multe erori, iar erorile sunt raportate în mai ușor de înțeles mesaje de eroare

  • Modul
  • Validator: acest nou modul poate fi folosit pentru a valida generat cod Voodoo. Acesta este utilizat de către parser pentru a valida codul parsată.
  • interfață Element: caracteristici ale implementării pot fi interogate atat programatic și din linia de comandă
  • .

Ce este nou în versiunea 0.7.0:

  • Blocuri: acestea oferă domenii în care variabilele locale pot să fie definit cu lit.. Astfel de variabile există de la sfârșitul declarația lit. până la sfârșitul blocului. Blocuri poate apărea în orice loc în care se poate produce o acțiune. Acestea sunt pornite cu bloc și sa încheiat cu bloc final.
  • conditionale cu lanț: acum este posibil să scrie & quot; altfel dacă & quot ;, în loc de a cere o imbricate dacă în clauza altceva
  • .
  • Shift și rotiți: trecerea acțiuni (ASR, BSR, SHL, SHR) (lei, ROR) au fost adăugate și roti acțiuni
  • .
  • Întoarcere fără valoare: întoarcere poate fi acum utilizat fără a specifica o expresie a evalua. Acest lucru determină o valoare nedefinită să fie returnate de funcția.

Ce este nou în versiunea 0.6.3:

  • Această versiune introduce la-expresii: Prin adăugarea prefixului etichetă, variabile locale, sau întreg cu un @, valoarea este tratată ca o adresă, iar cuvântul depozitat la adresa este returnat.
  • În plus, unele bug-uri au fost descoperite în modul în care siruri de caractere au fost codificate în cod de asamblare generat.
  • Aceste bug-uri au fost stabilite, iar versiunea 0.6.3 se ocupă acum siruri de caractere care conțin toți 256 de valori posibile octet corect.

Ce este nou în versiunea 0.6.2:

  • Această versiune rezolvă bug-uri în implementările de SET cuvânt pentru i386 și AMD64 și adaugă teste pentru cazurile care anterior nu au lucrat corect.

Software similare

phc
phc

3 Jun 15

Gauche
Gauche

14 Apr 15

Node.js
Node.js

17 Aug 18

Comentarii la Voodoo Compiler

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!