Low Level Virtual Machine

Low Level Virtual Machine
Low Level Virtual Machine
LLVM-Logo.png
Développeur LLVM Developer Group, Université de l'Illinois
Dernière version 2.9 (6 avril 2011) [+/-]
Écrit en C++
Environnement Multiplate-forme
Langue Anglais
Type Compilateur
Licence Licence Open Source NCSA/Université de l'Illinois
Site web llvm.org

La Low Level Virtual Machine (LLVM, en français : « machine virtuelle de bas niveau ») est une infrastructure de compilateur conçue pour optimiser la compilation, l'édition de liens, l'exécution et les temps morts dans un programme écrit dans un langage quelconque.

Sommaire

Caracteristiques

La LLVM permet de créer une machine virtuelle pour des langages similaires à Java et sa JVM, un générateur de code pour une architecture matérielle spécifique, et des optimiseurs de compilation indépendants de toute plate-forme et de tout langage. LLVM est indépendante des langages et des architectures : elle s'occupe de faire le lien vers un module spécifique au langage, et vers un générateur de code pour une machine particulière. Elle supporte les optimisations interprocédurales (IPO) de haut niveau, propose des compilateurs statiques ou à la volée (JIT) et de nombreux composants dans différentes phases de développement (par exemple du bytecode Java et des interfaces MSIL, une interface Python, une allocation de registres par coloration de graphe, etc). Le compilateur à la volée est capable d'optimiser des branches statiques inutiles pendant l'exécution d'un programme, et est par conséquent très pratique dans des cas où le programme a plusieurs options : la plupart pouvant être facilement diagnostiquées comme inutiles quel que soit l'environnement. Pour cette raison, cette infrastructure est utilisée dans le pipeline OpenGL de Mac OS X 10.5 (Leopard) pour fournir un support pour le matériel manquant.

LLVM-GCC

En 2009, la LLVM supporte la compilation de programmes C et C++, en utilisant des interfaces dérivées des versions 3.4 et 4.0.1 de GCC. Elle est écrite en C++ et son projet fut initié en 2000 à l'université de l'Illinois à Urbana-Champaign. Elle est distribuée selon les termes de la licence Open Source NCSA/Université de l'Illinois[1], une licence libre inspirée de la licence BSD Modifiée. LLVM-GCC est cependant une version modifiée de GCC,[2] un logiciel libre distribué sous la licence GNU GPL. Apple décide de stopper ses contributions au compilateur du projet GNU en septembre 2010[3], certainement pour ne pas devoir les distribuer sous licence GPL[4], et par la même occasion, assigner ses droits d'auteurs à la fondation pour le logiciel libre[3].

Représentation du code

LLVM offre un ensemble d'instructions indépendant de tout langage et de tout système. La plupart des instructions ont une forme similaire au code à trois adresses (3AC). Chaque instruction a également une forme d'attribution statique simple (forme SSA), ce qui veut dire que chaque variable (appelée un registre typé) est assignée une seule fois puis est figée : ceci permet de simplifier l'analyse des dépendances parmi les variables.

Toutes les sortes de conversion de type, allant de la coercition ascendante à la coercition descendante d'un objet, doivent être réalisées en utilisant explicitement l'instruction cast. LLVM possède des types de base comme les entiers de taille fixe, et exactement cinq types dérivés, à savoir : pointeurs, tableaux, vecteurs, structures, et fonctions. Un type issu d'un langage concret peut être représenté par une combinaison de ces types dans LLVM. Par exemple, une classe en C++ peut être représentée par une combinaison de structures, fonctions, et tableaux de pointeurs de fonctions.

Notes et références

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Low Level Virtual Machine de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать реферат

Regardez d'autres dictionnaires:

  • Low Level Virtual Machine — The LLVM Compiler Infrastructure Maintainer Chris Lattner[1] Entwickler The LLVM Team[2] Aktuelle Version 2.9 (6. April 2011) …   Deutsch Wikipedia

  • Low Level Virtual Machine — LLVM Тип Компилятор Разработчик LLVM Developer Group Н …   Википедия

  • Low Level Virtual Machine — infobox software name = LLVM developer = LLVM Developer Group Apple, Inc latest release version = 2.3 latest release date = 9 June 2008 released = 2000 operating system = Cross platform genre = Compiler license = University of Illinois/NCSA Open… …   Wikipedia

  • Virtual Machine — Machine virtuelle Pour les articles homonymes, voir VM. VirtualBox Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) e …   Wikipédia en Français

  • Virtual machine — A virtual machine (VM) is a completely isolated guest operating system installation within a normal host operating system .[1] Modern virtual machines are implemented with either software emulation or hardware virtualization or (in the most… …   Wikipedia

  • Java Virtual Machine — A Java Virtual Machine (JVM) is a set of computer software programs and data structures which use a virtual machine model for the execution of other computer programs and scripts. The model used by a JVM accepts a form of computer intermediate… …   Wikipedia

  • Machine Virtuelle — Pour les articles homonymes, voir VM. VirtualBox Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) e …   Wikipédia en Français

  • Machine virtuelle (informatique) — Machine virtuelle Pour les articles homonymes, voir VM. VirtualBox Le sens originel de machine virtuelle (ou Virtual Machine (VM) en anglais) e …   Wikipédia en Français

  • Machine virtuelle — Pour les articles homonymes, voir VM. machine virtuelle des assistants personnels Palm En informatique, une machine virtuelle (anglais virtual machine, abr. VM …   Wikipédia en Français

  • Parrot virtual machine — Developer(s) Parrot Foundation Stable release 3.10.0[1] / November 16, 2011; 7 days ago …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”