Voodoo Compiler

Logiciel capture d'écran:
Voodoo Compiler
Détails logiciels:
Version: 1.1.1
Date de transfert: 20 Feb 15
Développeur: Robbert Haarman
Licence: Gratuit
Popularité: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler est une implémentation du langage de programmation Voodoo & nbsp;. Le langage de programmation Voodoo est un langage de programmation de bas niveau, abstraction faite sur l'instruction de la plate-forme établir et conventions d'appel, mais autrement, laissant le programmeur libre de faire quoi que ce soit.
Voodoo compilateur est écrit en Ruby et génère du code pour i386 compatible, AMD64 et processeurs MIPS. Support pour les CPU cible supplémentaire est prévu pour l'avenir.
Utilisation
Il ya deux principales façons d'utiliser le compilateur de Voodoo: en exécutant le programme de voodooc, ou en utilisant l'API Ruby.
Le programme de voodooc compile un fichier source Voodoo. Son utilisation est décrite dans la page de voodooc.1, inclus dans la distribution. Ce qui suit est un exemple de la façon dont voodooc peut être utilisé pour créer un exécutable à partir d'un bonjour hello.voo du fichier source:
$ Voodooc hello.voo
$ Cc hello.o -o bonjour
./hello $
Bonjour le monde!
Une mise en œuvre de hello.voo peut être trouvé dans le répertoire test de la distribution.
La deuxième façon d'utiliser le compilateur de Voodoo est en l'utilisant d'un programme Ruby. Ceci peut être utilisé, par exemple, pour générer du code pour la plate-forme cible, sans avoir à créer un fichier de .voo. Ce qui suit est un exemple qui crée un fichier objet appelé fact.o, contenant une définition d'une fonction qui calcule fait factorielles:
require 'Voodoo'
générateur = Voodoo :: CodeGenerator.get_generator: l'architecture =>: i386,
& Nbsp;: format =>: elfe
generator.export: fait
generator.add_function_label: fait
generator.add_function [: n],
& Nbsp; [: isle, [: n, 1],
& Nbsp; # puis
& Nbsp; [[: retour, 1]],
& Nbsp; # else
& Nbsp; [[: let,: x,: sous,: n, 1],
& Nbsp; [: ensemble,: x,: appeler,: fait,: x],
& Nbsp; [: retour: mul,: n,: x]]]
File.open ('fact.o', 'w') {| outfile | outfile generator.write}
L'API de compilateur Voodoo qui est une disposition de programmes Ruby est décrite dans la documentation de l'API

Ce qui est nouveau dans cette version:.

    < li> Compatibilité avec Ruby 1.9, en plus de Ruby 1.8; make test rapporte maintenant le nombre de tests passés et qui ont échoué.
  • Le test-vars nombre a été divisé en de nombreux-args, de nombreux-args-queue, et de nombreux habitants-.

Quoi de neuf dans la version 1.0.1:

  • Cette version ajoute un certain nombre d'améliorations à l'analyseur , qui relève maintenant de source emplacements de code pour toutes les erreurs et peut signaler plusieurs erreurs à l'intérieur des blocs, des fonctions, et conditionnelles. Plusieurs tests pour l'analyseur ont été ajoutés.
  • Cette version corrige une erreur d'analyse sur les déclarations suivies de commentaires et d'un problème qui a causé l'analyseur à l'échec sur l'entrée vide.

Ce qui est nouveau dans la version 1.0.0:

  • générateur de code ARM: Le compilateur peut maintenant générer ensemble et code objet ELF pour l'architecture ARM.
  • Amélioration de rapports d'erreurs:. Plus d'erreurs sont détectées, et les erreurs sont signalées dans plus facile de comprendre les messages d'erreur

  • Le module
  • Validator: ce nouveau module peut être utilisé pour valider le code généré Voodoo. Il est utilisé par l'analyseur pour valider le code analysé.
  • L'interface d'entité: caractéristiques de la mise en œuvre peut être interrogé à la fois par programme et à partir de la ligne de commande
  • .

Quoi de neuf dans la version 0.7.0:

  • blocs: ceux-ci fournissent portées dans lesquelles des variables locales peut être défini avec let. Ces variables existent depuis la fin de l'instruction let jusqu'à la fin du bloc. Les blocs peuvent se produire dans ne importe quel endroit où une action peut se produire. Ils sont lancés avec un bloc et se est terminée avec le bloc de fin.
  • conditionnelles chaînées: il est maintenant possible d'écrire & quot; d'autre si & quot ;, au lieu d'exiger un imbriquée si dans la clause else
  • .
  • Shift et tourner: SHIFT actions (asr, bsr, SHL, SHR) et tourner actions (ROL, ROR) ont été ajoutés
  • .
  • Retour sans valeur: retour peut maintenant être utilisé sans spécifier une expression à évaluer. Cela provoque une valeur indéfinie à renvoyée par la fonction.

Ce qui est nouveau dans la version 0.6.3:

  • Cette version introduit au-expressions: En ajoutant un préfixe étiquette, variable locale ou entier avec un @, la valeur est traitée comme une adresse et le mot stocké à cette adresse est retourné.
  • En outre, quelques bugs ont été découverts dans la façon dont les cordes ont été codées dans le code assembleur généré.
  • Ces bugs ont été corrigés, et la version 0.6.3 gère désormais correctement les chaînes contenant toutes les 256 valeurs d'octets possibles.

Ce qui est nouveau dans la version 0.6.2:

  • Cette version corrige des bugs dans les implémentations de réglage mot pour i386 et AMD64 et ajoute des tests pour les cas qui ne ont précédemment pas fonctionner correctement.

Logiciel similaire

ccache
ccache

20 Feb 15

GCC
GCC

16 Aug 18

Tcl/Tk
Tcl/Tk

20 Jan 18

Commentaires à Voodoo Compiler

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!