LLVM
Esta página cita fontes confiáveis, mas que não cobrem todo o conteúdo. (Dezembro de 2013) |
LLVM | |
---|---|
Desenvolvedor | LLVM Developer Group |
Plataforma | Multiplataforma |
Lançamento | 2003 (17–18 anos) |
Versão estável | 11.0.0 (12 de outubro de 2020[1]) |
Versão em teste | 11.0.0-rc6 (7 de outubro de 2020[2]) |
Linguagem | C++ |
Gênero(s) | Compilador |
Licença | NCSA |
Página oficial | llvm |
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]
- GNU lightning
- GNU Compiler Collection
- DotGNU
- clang
- Pure (linguagem de programação)
- OpenCL
- Adobe Alchemy
Referências
- ↑ Hans Wennborg (12 de outubro de 2020). «LLVM 11.0.0 Release». llvm-announce (Lista de grupo de correio). Consultado em 12 de outubro de 2020
- ↑ Hans Wennborg (7 de outubro de 2020). «[11.0.0 Release] Release Candidate 6 is here». llvm-dev (Lista de grupo de correio). Consultado em 12 de outubro de 2020
- ↑ 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]
- Sítio oficial (em inglês)