Low Level Virtual Machine

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
NoFonti.svg
Este artigo ou se(c)ção cita uma ou mais fontes fiáveis e independentes, mas ela(s) não cobre(m) todo o texto (desde dezembro de 2013).
Por favor, melhore este artigo providenciando mais fontes fiáveis e independentes e inserindo-as em notas de rodapé ou no corpo do texto, conforme o livro de estilo.
Encontre fontes: Googlenotícias, livros, acadêmicoScirusBing. Veja como referenciar e citar as fontes.
LLVM
Desenvolvedor LLVM Developer Group
Plataforma multiplataforma
Lançamento 2003 (10–11 anos)
Versão estável 3.4 (17 de junho de 2013; há 57 semanas e 4 dias)
Escrito em C++
Gênero(s) Compilador
Licença NCSA
Página oficial llvm.org

Low Level Virtual Machine (LLVM) é uma infraestrutura de compilador escrita em C++, desenvolvida para otimizar em tempos de compilação, ligação e execução programas escritos em linguagens de programação variadas. Implementada originalmente para C e C++, sua arquitetura permitiu a expansão para outras linguagens posteriormente, incluindo Objective-C, Fortran, Ada, Haskell, bytecode Java, Python, Ruby, ActionScript, GLSL, Julia, entre outras.

O projeto LLVM começou em 2000 na Universidade de Illinois em Urbana-Champaign sob direção de Vikram Adve e Chris Lattner. Visava desenvolver uma infraestrutura de pesquisa para investigar técnicas de compilação dinâmica para linguagens estáticas e dinâmicas. A Apple Inc. contratou Lattner e formou uma equipa para trabalhar no LLVM para sistemas próprios;[1] atualmente, o LLVM é parte integral das ferramentas de desenvolvimento para Mac OS X e iPhone.

Descrição[editar | editar código-fonte]

O LLVM pode prover camadas intermediárias de um compilador, lendo a representação intermediária de um compilador e retornando outra representação otimizada, que pode ser então convertida e ligada em código de montagem para determinada plataforma. Ele também consegue gerar código binário otimizado em tempo de execução.

Sua arquitetura é independente de linguagem, conjunto de instruções ou sistema de tipo. Cada instrução é definida numa forma padronizada, permitindo a análise de dependência da árvore de execução do código. Toda forma de conversão de tipo é feita por ele através de instruções cast. A infraestrutura fornece alguns tipos básicos, como ponteiros e estruturas.

Referências

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre Informática é um esboço. Você pode ajudar a Wikipédia expandindo-o.