Voodoo Compiler

Software screenshot:
Voodoo Compiler
Dettagli del software:
Versione: 1.1.1
Data di caricamento: 20 Feb 15
Sviluppatore: Robbert Haarman
Licenza: Libero
Popolarità: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler è un'implementazione del linguaggio di programmazione Voodoo. & Nbsp; Il linguaggio di programmazione Voodoo è un linguaggio di programmazione a basso livello, astraendo su istruzione della piattaforma set e convenzioni di chiamata, ma per il resto lascia il programmatore libero di fare qualsiasi cosa.
Voodoo Compiler è scritto in Ruby e genera il codice per i386-compatibile, AMD64, e le CPU MIPS. Il supporto per le CPU di destinazione aggiuntivo è previsto per il futuro.
Utilizzo
Ci sono due modi principali per utilizzare il compilatore Voodoo: eseguendo il programma voodooc, o utilizzando l'API Ruby.
Il programma voodooc compila un file sorgente Voodoo. Il suo utilizzo è descritto nella pagina man voodooc.1, incluso nella distribuzione. Quanto segue è un esempio di come voodooc può essere utilizzato per creare un ciao eseguibile da un file sorgente hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o ciao
$ ./ciao
Ciao mondo!
Un'implementazione di hello.voo può essere trovata nella prova directory della distribuzione.
Il secondo modo di utilizzare il compilatore Voodoo è quello di utilizzare da un programma Ruby. Questo può essere usato, per esempio, per generare il codice per la piattaforma di destinazione senza dover creare un file .voo. Quanto segue è un esempio che crea un file oggetto chiamato fact.o, contenente una definizione di un fatto funzione che calcola fattoriali:
require 'voodoo'
Generatore = Voodoo :: CodeGenerator.get_generator: architettura =>: i386,
& Nbsp;: format =>: elf
generator.export: infatti
generator.add_function_label: infatti
generator.add_function [: n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # poi
& Nbsp; [[: il ritorno, 1]],
& Nbsp; # altro
& Nbsp; [[: lasciare,: x,: sub, n, 1],
& Nbsp; [: set,: x,: chiamare,: infatti,: x],
& Nbsp; [: ritorno,: mul, n,: x]]]
File.open ('fact.o', 'w') {| outfile | outfile generator.write}
L'API compilatore Voodoo che è disponibile per i programmi di Ruby è descritto nella documentazione API

Cosa c'è di nuovo in questa versione:.

    < li> Compatibilità con rubino 1.9, oltre a rubino 1.8; make test riporta oggi il numero dei test passati e falliti.
  • Il test molti-vars è stato suddiviso in molti-args, molti-args-coda, e molti-locali.

Cosa c'è di nuovo nella versione 1.0.1:

  • Questa versione aggiunge una serie di miglioramenti al parser , che ora riporta posizioni codice sorgente di tutti gli errori e può segnalare errori multipli all'interno di blocchi, funzioni e condizionali. Sono stati aggiunti diversi test per il parser.
  • Questa release corregge un errore di analisi sulle dichiarazioni seguite da commenti e un problema che ha causato il parser di fallire su input vuoto.

Cosa c'è di nuovo nella versione 1.0.0:

  • generatore di codice ARM: Il compilatore ora in grado di generare il montaggio e codice oggetto ELF per l'architettura ARM.
  • Migliorata segnalazione di errore:. Vengono rilevati più errori, e gli errori sono riportati in più facile capire i messaggi di errore

  • Modulo
  • Validator: questo nuovo modulo può essere utilizzato per convalidare il codice generato Voodoo. E 'utilizzato dal parser per convalidare il codice analizzata.
  • Interfaccia Feature: caratteristiche di attuazione può essere interrogato sia a livello di programmazione e dalla riga di comando
  • .

Cosa c'è di nuovo nella versione 0.7.0:

  • blocchi: questi forniscono ambiti in cui le variabili locali possono essere definita con let. Tali variabili esistono dalla fine dell'istruzione let fino alla fine del blocco. I blocchi possono verificarsi in qualsiasi luogo in cui potrebbe essere un'azione. Si sono avviati con il blocco e si è conclusa con blocco finale.
  • Condizioni in serie: è ora possibile scrivere & quot; else if & quot ;, invece di richiedere un nidificato se nella clausola else
  • .
  • Maiusc e ruotare: azioni di trasferimento (asr, BSR, SHL, SHR) (rol, ROR) sono stati aggregati e ruotare azioni
  • .
  • Ritorna senza valore: di ritorno può ora essere utilizzato senza specificare una espressione da valutare. Questo provoca un valore indefinito per essere restituito dalla funzione.

Cosa c'è di nuovo nella versione 0.6.3:

  • Questa versione introduce al-espressioni: anteponendo un etichetta, variabile locale, o un numero intero con una @, il valore viene trattato come un indirizzo, e la parola conservati a tale indirizzo viene restituito.
  • Inoltre, alcuni bug sono stati scoperti nelle stringhe modo sono stati codificati in codice assembly generato.
  • Questi bug sono stati corretti, e la versione 0.6.3 ora gestisce stringhe contenente correttamente tutti i 256 possibili valori di byte.

Cosa c'è di nuovo nella versione 0.6.2:

  • Questa release corregge bug nelle implementazioni di impostazione parola per i386 e AMD64 e aggiunge i test per i casi che in precedenza non hanno funzionato correttamente.

Programmi simili

STklos
STklos

15 Apr 15

phc
phc

3 Jun 15

TXR
TXR

18 Jul 15

tkscript
tkscript

3 Jun 15

Commenti a Voodoo Compiler

I commenti non trovato
Aggiungi commento
Accendere le immagini!