Low Level Virtual Machine

Origem: Wikipédia, a enciclopédia livre.
Saltar para a navegação Saltar para a pesquisa
Question book-4.svg
Esta página cita fontes confiáveis e independentes, mas que não cobrem todo o conteúdo (desde dezembro de 2013). Ajude a inserir referências. Conteúdo não verificável poderá ser removido.—Encontre fontes: Google (notícias, livros e acadêmico)
LLVM
Desenvolvedor LLVM Developer Group
Plataforma multiplataforma
Lançamento 2003 (15–16 anos)
Versão estável 8.0.0 (20 de março de 2019; há 3 meses[1])
Versão em teste 8.0.0-rc5 (13 de março de 2019; há 4 meses[2])
Linguagem C++
Gênero(s) Compilador
Licença NCSA
Página oficial llvm.org

LLVM (anteriormente Low Level Virtual Machine) é uma infraestrutura de compilador escrita em C++, desenvolvida para otimizar em tempos de compilação, ligação e execução de 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, Kotlin 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 que formou um grupo de desenvolvedores no intuito de trabalhar no LLVM para sistemas próprios;[3] atualmente, o LLVM é parte integral das ferramentas de desenvolvimento para macOS e iOS.

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.

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


Referências

  1. Wennborg, Hans (19 de setembro de 2018). «LLVM 8.0.0 Release». llvm-announce (Lista de grupo de correio). Consultado em 21 de setembro de 2018 
  2. Wennborg, Hans (7 de agosto de 2018). «Release Candidate 5 sources, docs, and binaries available available». llvm-dev (Lista de grupo de correio). Consultado em 7 de agosto de 2018 
  3. Adam Treat, mkspecs and patches for LLVM compile of Qt4 Arquivado em 4 de outubro de 2011, no Wayback Machine.

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.