LLVM | ||
---|---|---|
Información general | ||
Tipo de programa | Compilador | |
Desarrollador | LLVM Developer Group | |
Lanzamiento inicial | 24 de octubre de 2003 | |
Licencia | University of Illinois/NCSA Open Source License y Apache License v2.0 with LLVM Exceptions | |
Estado actual | En desarrollo | |
Información técnica | ||
Programado en | C++, C y lenguaje ensamblador | |
Plataformas admitidas | Multiplataforma, NetBSD, FreeBSD, OpenBSD, Linux, MINIX 3, Microsoft Windows e Illumos | |
Versiones | ||
Última versión estable | 19.1.7 (info) ( 14 de enero de 2025) | |
Enlaces | ||
LLVM (anteriormente conocido como Low Level Virtual Machine, o Máquina Virtual de Bajo Nivel) es una infraestructura para desarrollar compiladores, escrita a su vez en el lenguaje de programación C++, que está diseñada para optimizar el tiempo de compilación, el tiempo de enlazado, el tiempo de ejecución y el "tiempo ocioso" en cualquier lenguaje de programación que el usuario quiera definir. Implementado originalmente para compilar C y C++, el diseño agnóstico de LLVM con respecto al lenguaje, y el éxito del proyecto han engendrado una amplia variedad de lenguajes, incluyendo Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas y otros.
El proyecto LLVM comenzó en 2000 en la Universidad de Illinois en Urbana-Champaign, bajo la dirección de Vikram Adve y Chris Lattner. LLVM fue desarrollado inicialmente bajo la Licencia de código abierto de la Universidad de Illinois, una licencia de tipo BSD. En 2005, Apple Inc. contrató a Lattner y formó un equipo para trabajar en el sistema de LLVM para varios usos dentro de los sistemas de desarrollo de Apple.[1] LLVM es parte integrante de las últimas herramientas de desarrollo de Apple para Mac OS X e iOS.[2]
El nombre "LLVM" era en principio las iniciales de "Low Level Virtual Machine", pero esta denominación causó una confusión ampliamente difundida, puesto que las máquinas virtuales son solo una de las muchas cosas que se pueden construir con LLVM. Cuando la extensión del proyecto se amplió incluso más, LLVM se convirtió en un proyecto paraguas que incluye una multiplicidad de otros compiladores y tecnologías de bajo nivel, haciendo el nombre aún menos adecuado. Por tanto, el proyecto abandonó[3] las iniciales. Actualmente, LLVM es una "marca" que se aplica al proyecto paraguas, la representación intermedia LLVM, el depurador LLVM, la biblioteca estándar de C++ definida por LLVM, etc.