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

Alice ML
Alice ML

2 Jun 15

Lush
Lush

11 May 15

Comentário para Voodoo Compiler

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