Voodoo Compiler

Tela Software:
Voodoo Compiler
Detalhes de Software:
Versão: 1.1.1
Data de upload: 20 Feb 15
Revelador: Robbert Haarman
Licença: Livre
Popularidade: 6

Rating: nan/5 (Total Votes: 0)

Voodoo Compiler é uma implementação da linguagem de programação Voodoo & nbsp;. A linguagem de programação vodu é uma linguagem de programação de baixo nível, abstraindo sobre a instrução da plataforma definida e convenções de chamada, mas por outro lado deixando o programador livre para fazer qualquer coisa.
Voodoo Compiler é escrito em Ruby e gera um código para i386-compatível, AMD64, e MIPS CPUs. O suporte para CPUs meta adicional está planejado para o futuro.
Uso
Há duas maneiras principais para usar o compilador Voodoo: executando o programa voodooc, ou usando o API Ruby.
O programa voodooc compila uma arquivos de origem Voodoo. Seu uso é descrito na página de manual voodooc.1, incluído na distribuição. O que se segue é um exemplo de como voodooc pode ser usado para criar um Olá executável a partir de um arquivo de origem hello.voo:
$ Voodooc hello.voo
$ Cc hello.o -o Olá
$ ./hello
Olá, mundo!
Uma implementação de hello.voo pode ser encontrada no teste da distribuição do.
A segunda maneira de usar o compilador Voodoo é usando-o a partir de um programa Ruby. Isto pode ser utilizado, por exemplo, para gerar o código para a plataforma alvo, sem ter de criar um ficheiro .voo. O que se segue é um exemplo que cria um arquivo objeto chamado fact.o, contendo uma definição de fato a função que calcula fatoriais:
require 'voodoo'
gerador = Voodoo :: CodeGenerator.get_generator: arquitetura =>: i386,
& Nbsp;: format =>: elf
generator.export: fato
generator.add_function_label: fato
generator.add_function [n],
& Nbsp; [: ifle, [: n, 1],
& Nbsp; # seguida
& Nbsp; [[: a devolução, 1]],
& Nbsp; # outra
& Nbsp; [[: deixe,: x,: sub,: n, 1],
& Nbsp; [: set,: x,: chamada,: verdade,: x],
& Nbsp; [: retorno,: mul,: n,: x]]]
File.open ('fact.o', 'w') {| outfile | outfile generator.write}
A API compilador Voodoo que é um disponíveis para programas Ruby é descrito na documentação da API

O que é novo nesta versão:.

    < li> Compatibilidade com Ruby 1.9, além de Ruby 1.8; fazer teste agora informa o número de testes e sem repetência.
  • O teste many-vars foi dividido em muitos-args, muitos-args-tail, e muitos-moradores.

O que é novo na versão 1.0.1:

  • Esta versão adiciona uma série de melhorias para o analisador , que agora informa locais de código fonte para todos os erros e pode relatar vários erros dentro de blocos, funções e condicionais. Foram adicionadas algumas testes para o analisador.
  • Esta versão corrige um erro de análise sobre declarações seguidas de comentários e um problema que causou o analisador de falhar na entrada vazia.

O que é novo na versão 1.0.0:

  • gerador de código ARM: O compilador agora pode gerar montagem e código objeto ELF para a arquitetura ARM.
  • Erro de melhorar a transmissão.: São detectados mais erros, e os erros são relatados em mais fáceis de entender as mensagens de erro

  • Módulo
  • validador: este novo módulo pode ser usado para validar o código gerado Voodoo. Ele é usado pelo analisador para validar código analisado.
  • Interface Feature: características da aplicação podem ser consultados tanto por meio de programação e na linha de comando
  • .

O que é novo na versão 0.7.0:

  • Blocks: fornecem âmbitos em que as variáveis ​​locais podem ser definida com let. Tais variáveis ​​existem a partir do final da instrução let até ao fim do bloco. Os blocos podem ocorrer em qualquer lugar em que uma ação pode ocorrer. Eles são iniciados com bloco e terminou com o bloco final.
  • condicionais encadeadas: agora é possível escrever & quot; else if & quot ;, em vez de exigir uma nested se na cláusula else
  • .
  • Shift e girar: mudar acções (asr, a BSR, a SHL, SHR) e rodar ações (rol, ror) foram adicionados
  • .
  • Retorno sem valor: retorno pode agora ser usado sem especificar uma expressão para avaliar. Isso faz com que um valor indefinido a ser retornado da função.

O que é novo na versão 0.6.3:

  • Esta versão introduz at-expressões: por um prefixo etiqueta, variável local, ou inteiro com um @, o valor é tratado como um endereço, ea palavra armazenada nesse endereço é retornado.
  • Além disso, alguns bugs foram descobertos na forma como as cordas foram codificados em código assembly gerado.
  • Estes erros foram corrigidos, e versão 0.6.3 agora lida com seqüências contendo todos os 256 possíveis valores de bytes corretamente.

O que é novo na versão 0.6.2:

  • Esta versão corrige bugs nos implementações de set- palavra para i386 e AMD64 e acrescenta testes para os casos que antes não funcionavam corretamente.

Programas semelhantes

Ctalk
Ctalk

20 Feb 15

4tH compiler
4tH compiler

20 Feb 15

Spackager
Spackager

14 Apr 15

Bocfel
Bocfel

17 Feb 15

Comentário para Voodoo Compiler

Comentários não encontrado
Adicionar comentário
Ligue imagens!