Jitter tornou-se oficialmente parte do projeto GNU

Há alguns dias, foi anunciado que o projeto Jitter se tornou oficialmente um projeto sob a égide do Projeto GNU e agora está sendo desenvolvido sob o nome GNU Jitter, utilizando a infraestrutura GNU e de acordo com os requisitos do projeto.

Para quem não conhece o Jitter, trata -se de uma implementação que permite gerar máquinas virtuais portáteis e muito rápidas para projetos de linguagens de programação arbitrárias, cujo desempenho de execução de código é significativamente superior ao de interpretadores e se aproxima do código compilado nativo.

Jitter é altamente portátil e uma VM correta exibirá exatamente o mesmo comportamento em qualquer plataforma que tenha apenas um compilador e uma biblioteca C padrão; no entanto, o desempenho será melhor usando uma das arquiteturas suportadas (atualmente: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64º nível: Aarch390, Alpha, ARM, SXNUMXx) em sistemas ELF com GCC. Claro, Jitter é parte do projeto GNU e é projetado principalmente para uso no sistema GNU.

O Jitter recebe como entrada uma especificação de alto nível das instruções suportadas por uma máquina virtual e, como saída, gera uma implementação pronta para uso de uma máquina virtual para executar as instruções fornecidas.

A lógica de cada instrução na especificação é definida usando código C. Recursos adicionais incluem suporte para operações de desvio condicional que são difíceis de implementar em C e inerentes a linguagens de programação dinâmica, como verificação de valor de rótulo e verificação de estouro de buffer.

O tempo de execução do Jitter também oferece suporte eficiente para operações de ramificação condicional difíceis de implementar usando apenas C, como verificação de tag de valor conforme exigido por linguagens digitadas dinamicamente e aritmética com verificação de estouro. O código VM acessa a chamada de procedimento e as operações de retorno, na maioria dos casos contando com mecanismos de hardware eficientes.

A máquina virtual resultante é formatada em C com um pequeno número de inserções de código assembler. São fornecidas configurações para habilitar diversas otimizações e selecionar mecanismos de distribuição, facilitando a migração da máquina virtual para diferentes plataformas.

Ele suporta o uso de arquiteturas de execução de registro, pilha e junção, bem como a capacidade de espelhar estruturas de dados de máquina virtual em registros de hardware de CPU e conectar coletores de lixo.

O código gerado inclui uma API C simples para substituir e executar dinamicamente o código em uma máquina virtual, bem como um programa controlador para executar separadamente o código de arquivos de texto em uma máquina virtual.

O código C gerado é fortemente condicionado e pode ser configurado para ser executado usando diferentes técnicas de distribuição de sofisticação variada; as técnicas de despacho mais eficientes contam com algum suporte de montagem específico da arquitetura, mas não específico da VM, fornecido pelo Jitter; todos os modelos de despacho, mas um também é baseado em extensões GNU C.

Por fim, para aqueles interessados ​​em aprender mais, o código original do Jitter foi escrito em C e está disponível sob a licença GPLv3. Você pode encontrar mais informações no seguinte link.

Como obter Jitter?

Para aqueles que estão interessados ​​em testar o Jitter, eles podem obter o código-fonte abrindo um terminal e digitando o seguinte comando nele:

git clone http://git.ageinghacker.net/jitter

Feito isso, agora vamos entrar na pasta que contém o código, vamos executar o script de inicialização que é usado para gerar os arquivos necessários para configurar e construir o Jitter, incluindo um script de configuração. Fazemos isso com:

cd jitter && ./bootstrap

É importante mencionar que o Jitter segue as convenções GNU para configuração e construção e suporta a construção a partir do diretório de origem; na verdade, ele oferece suporte à compilação cruzada e até mesmo à execução do conjunto de testes em uma compilação cruzada por meio de um emulador.

./configure && make

Finalmente, para executar, basta digitar:

make check


Adicionar como fonte preferencial no Google