ıllı Internet y Tecnologías de la Información (2018)

internet, Hosting, dominios, seo, antivirus, banco de imágenes, páginas web, tiendas online

[Enciclopedia Online Gratuita] Diccionario de Internet y Tecnologías de la Información y la Comunicación (TIC):

ıllı LLVM wiki: info, historia y vídeos

videos internet

salud  LLVM 


LLVM (previamente conocido como Low Level Virtual Machine, o bien Máquina Virtual de Nivel Bajo) es una infraestructura para desarrollar compiladores, escrita por su parte en el lenguaje de programación C++, que está desarrollada para optimar el tiempo de colección, el tiempo de enlazado, el tiempo de ejecución y el "tiempo ocioso" en cualquier lenguaje de programación que el usuario desee delimitar. Incorporado originalmente para compendiar C y C++, el diseño agnóstico de LLVM respecto al lenguaje, y el éxito del proyecto han engendrado una extensa pluralidad de lenguajes, incluyendo Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas y otros.


El proyecto LLVM empezó en dos mil en la Universidad de Illinois en Urbana-Champaign, bajo la dirección de Vikram Adve y Chris Lattner. LLVM fue desarrollado en un inicio bajo la Licencia de código abierto de la Universidad de Illinois, una licencia de tipo BSD. En dos mil cinco, Apple Inc. contrató a Lattner y formó un equipo para trabajar en el sistema de LLVM para múltiples usos en los sistemas de desarrollo de Apple.LLVM es parte miembro de las últimas herramientas de desarrollo de Apple para Mac OS X y también iOS.


El nombre "LLVM" era de entrada las iniciales de "Low Level Virtual Machine", mas esta denominación ocasionó una confusión extensamente difundida, pues las máquinas virtuales son solo una de las múltiples cosas que se pueden edificar con LLVM. Cuando la extensión del proyecto se amplió aun más, LLVM se transformó en un proyecto paraguas que incluye una multiplicidad de otros compiladores y tecnologías de bajo nivel, haciendo el nombre todavía menos conveniente. Por lo tanto, el proyecto abandonó las iniciales. Hoy en día, LLVM es una "marca" que se aplica al proyecto paraguas, la representación media LLVM, el depurador LLVM, la biblioteca estándar de C++ definida por LLVM, etcétera..


LLVM provee las capas medias de un sistema de compilado completo, tomando el código en lenguaje intermedio llamado "forma media" (tambiém famosa como IF, por sus iniciales en inglés, de Intermediate Form) de un compilador y emitiendo un IF optimado. Este nuevo IF puede ser transformado y enlazado en un código ensamblador dependiente de la máquina específica para una plataforma objetivo. LLVM puede admitir el IF generado por la cadena de herramientas GCC, dejando con lo que sea usado con todos y cada uno de los lenguages que por su parte son admitidos por GCC.


LLVM asimismo puede producir código máquina relocalizable en el instante de colección o bien de enlazado, o bien aun código máquina binario en el instante de ejecución.


LLVM deja un conjunto de instrucciones y sistema de tipos independientes del lenguaje. Cada instrucción está en una forma estática de asignación única (SSA, en inglés, static single assignment), o sea, que cada variable (llamado un registro tipado) es asignada una sola vez y congelado. Esto ayuda a facilitar el análisis de las dependencias entre variables. LLVM deja que el código sea compilado estáticamente, de la misma manera que lo es bajo el sistema GCC tradicional, o bien al contrario que se deje para una complación tardía desde la IF a código máquina en una colección en tiempo de ejecución de forma afín a como lo hace Java. El sistema de tipos consiste de tipos básicos como entero, números de coma flotante y 5 géneros de datos compuestos (en inglés): punteros, vectores, matrices, tuplas y funciones. Un constructo tipado en un lenguaje específico puede ser representado combinando estos tipos básicos en LLVM. Por poner un ejemplo, una clase en C++ puede ser representada por una combinación de estructuras, funciones y matrices de punteros a funciones.


El compilador de tiempo de ejecución puede optimar ramales estáticos no usados de un programa a lo largo de la ejecución, y por ende es útil para la evaluación parcial en los casos en los que un programa tiene muchas opciones, muchas de las que pueden ser determinadas como superfluas en un ambiente concreto. Esta característica es utilizada en la pipeline de OpenGL en el Mac OS X Leopard (v10.5) para otorgar soporte a peculiaridades ausentes del hardware.El código de gráficos en la pila de OpenGL se dejó en forma media, y después compilado cuando se ejecuta en la máquina de destino. En sistemas con GPUs de alta gama, el código resultante era bastante escaso y redirigía las instrucciones a la GPU con cambios mínimos. En sistemas con GPUs de baja gama, LLVM compilaba procedimientos opcionales a fin de que se ejecutasen en la unidad central de procesamiento (CPU) local que emularan las instrucciones que la GPU no podía ejecutar interiormente. LLVM mejoró el desempeño de las máquinas de baja gama que empleaban conjuntos de chips Intel GMA. Un sistema afín fue desarrollado bajo la Gallium3D LLVMpipe y también incorporado en la shell de GNOME para dejar que se ejecute sin una GPU.


Por contraste, en los casos en que el desempeño puro es medido como referencia, LLVM dos.9 va tras GCC cuatro.6.1 en calidad del código, entendida como velocidad de los programas compilados, en torno al diez por ciento de media, al unísono que compila de veinte a treinta por ciento más veloz.


LLVM fue escrito originalmente como un substituto de un generador de código ya existente en la pila GCC,y muchos de los frontales para GCC han sido cambiados para trabajar con él. Ciertos frontales en nuestros días incluidos en LLVM fueron derivados de las versiones cuatro.0.1 y cuatro.2 de la GNU Compiler Collection.


El extenso interés que ha recibido LLVM ha llevado a una serie de tentativas para desarrollar frontales absolutamente nuevos para una pluralidad de lenguajes. El que ha recibido la mayor atención es Clang, un nuevo compilador que aguanta C, Objective-C y C++. Apoyado primordialmente por Apple, Clang aspira a sustituir al compilador de C y Objective-C en el sistema GCC con un sistema más moderno que sea más simple de integrar con ambientes de desarrollo integrado (IDEs), y que tenga un soporte más extenso para multihilo.El desarrollo de Objective-C bajo GCC estaba atascado y los cambios de Apple en el lenguaje eran soportados en una rama mantenida separadamente. Crear su compilador les dejó abordar muchos de exactamente los mismos inconvenientes que LLVM abordó para la integración con IDEs y otras peculiaridades modernas, al unísono que hacer la rama primordial de desarrollo la rama de implementación de Objective-C.


El compilador de Haskell de Utrecht puede producir código para LLVM que, pese a que el generador está en las primeras etapas de desarrollo, ha probado en múltiples ocasiones ser más eficaz que el generador de código C.El Glasgow Haskell Compiler (GHC) tiene un sistema de back-end de LLVM en funcionamiento que logra una aceleración del treinta por ciento en el código compilado equiparado con código nativo compilado a través de GHC o bien generación de código C seguida de colección, faltando solo una de las múltiples técnicas de optimización efectuadas por GHC.


Existen otros muchos componentes en múltiples estadios de desarrollo; incluyendo, sin ser pormenorizados, un frontal para bytecode de Java, un frontal para CPythonla implementación de Ruby uno con nueve para Mac (MacRuby), múltiples frontales para Estándar ML, y un nuevo asignador de registros de coloración de grafos.


  ELIGE TU TEMA DE INTERÉS: 


autoayuda.es   Internet y Tecnologias 

Está aquí: Inicio > [ INTERNET ] > ıllı LLVM wiki: info, historia y vídeos

Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Ver políticas