Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. LLVM - Teknopedia
LLVM - Teknopedia
Abbozzo software
Questa voce sull'argomento software è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Teknopedia. Segui i suggerimenti del progetto di riferimento.
LLVM
software
GenereCompilatore
SviluppatoreLLVM Developer Group, Università dell'Illinois (Urbana-Champaign)
Data prima versione24 ottobre 2003
Ultima versione21.1.7 (2 dicembre 2025)
Sistema operativoMultipiattaforma
Linguaggiolinguaggio assembly
C
C++
LicenzaUniversity of Illinois Open Source License
(licenza libera)
Sito webllvm.org
Modifica dati su Wikidata · Manuale

LLVM (in precedenza acronimo di Low Level Virtual Machine, macchina virtuale di basso livello) è un'infrastruttura di compilazione, scritta in C++, progettata per l'ottimizzazione di programmi in fase di compilazione, di linking, di esecuzione e di non utilizzo. Il progetto LLVM è stato avviato nel 2000 all'Università dell'Illinois.

LLVM attualmente supporta la compilazione di programmi in linguaggio C, C++, Objective C, Ada, Rust, Julia e Fortran, usando dei front-end derivati dalle versioni 4.0.1. e 4.2 del compilatore GNU Compiler Collection (GCC). Un front-end alternativo per linguaggi di programmazione simili al C è attualmente in sviluppo sotto il nome di clang.

Usando LLVM, il programmatore può creare una macchina virtuale per linguaggi che la richiedono (ad esempio Java), un compilatore per una architettura specifica e software di ottimizzazione del codice indipendenti dal tipo di linguaggio utilizzato o dalla piattaforma. La rappresentazione intermedia LLVM (IR) è indipendente sia dal linguaggio che dalla architettura; essa si interpone tra il codice sorgente in un dato linguaggio e un generatore di codice per una specifica architettura. LLVM include il supporto all'ottimizzazione del codice inter-procedurale e compilatori sia statici che Just-in-time.

Ha diversi componenti che si occupano delle diverse fasi di sviluppo; tra essi, si ricordano i frontend per i linguaggi bytecode di Java, CIL, Python, Julia. Il compilatore just-in-time LLVM è in grado di ottimizzare parti di programma in fase di esecuzione, ed è quindi utile nei casi in cui si voglia valutare l'efficienza di una singola funzione. Grazie a questa sua particolarità, esso viene usato nella pipeline OpenGL di Mac OS X Leopard per supportare alcune funzionalità non presenti a livello hardware.

È il compilatore di default dell'IDE Xcode a partire dalla versione 4.2.

Rappresentazione del codice

[modifica | modifica wikitesto]

LLVM utilizza un proprio set di istruzioni indipendente dai linguaggi di programmazione. La maggior parte delle istruzioni hanno una forma simile al Three address code. Ciascuna istruzione è strutturata in modo tale da assegnare un valore ad una determinata variabile una sola volta: questo aiuta a semplificare l'analisi delle dipendenze tra le variabili.

Ogni forma di cambiamento del tipo di una variabile o di un oggetto è effettuata attraverso l'utilizzo dell'istruzione cast. LLVM fa uso dei tipi essenziali, come ad esempio gli interi, e di 5 tipi derivati: pointer, array, vettori, strutture e funzioni. Questi tipi possono essere usati per rappresentare costrutti più complessi appartenenti a linguaggi di programmazione di alto livello. Per esempio, una classe in C++ può essere rappresentata attraverso una combinazione di strutture, funzioni e array.

Licenza

[modifica | modifica wikitesto]

LLVM e clang sono pubblicamente disponibili sotto la University of Illinois/NCSA Open Source License [1], una licenza compatibile con la GPL.

Note

[modifica | modifica wikitesto]

Voci correlate

[modifica | modifica wikitesto]
  • GNU Compiler Collection
  • libjit

Altri progetti

[modifica | modifica wikitesto]

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su LLVM

Collegamenti esterni

[modifica | modifica wikitesto]
  • (EN) Sito ufficiale, su llvm.org. Modifica su Wikidata
  • (EN) Blog ufficiale, su blog.llvm.org. Modifica su Wikidata
  • LLVM (canale), su YouTube. Modifica su Wikidata
  • LLVM, su packages.debian.org. Modifica su Wikidata
  • (EN) LLVM, su GitHub. Modifica su Wikidata
  • Repository sorgenti di LLVM, su github.com. Modifica su Wikidata
  • (EN) LLVM, su Free Software Directory. Modifica su Wikidata
  • (EN) The LLVM Compiler Infrastructure Project, su llvm.org.
  • (EN) LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation (PDF), su llvm.org. — un documento pubblicato da Chris Lattner e Vikram Adve.
  • (EN) LLVM Language Reference Manual, su llvm.org. — descrive la rappresentazione intermedia LLVM
  • (EN) LLVM 2.0 Presentation, su video.google.com. URL consultato il 23 giugno 2008 (archiviato dall'url originale il 30 dicembre 2007). — Google Tech Talk Presentation in merito a LLVM 2.0
V · D · M
Software libero e open source
GeneraleCopyleft · Eventi · Software libero · Definizione · Gratis versus libre · Open source
Famiglie di sistemi operativiAros Research Operating System · BSD · Darwin · eCos · FreeDOS · GNU · Haiku · Inferno · Linux · Mach · Minix · OpenSolaris · Plan 9 · ReactOS · Redox · Symbian OS
Sviluppo software open sourceEclipse · Free Pascal · GCC · Gambas · Java · LLVM · Lua · NetBeans · Octave · Open64 · Perl · PHP · Python · ROSE · Ruby · Tcl
Storia del software liberoGNU · Haiku · Linux · Mozilla (Application Suite · Firefox · Thunderbird)
OrganizzazioniApache Software Foundation · Blender Foundation · Eclipse Foundation · freedesktop.org · Free Software Foundation (Europe · India · Latin America) · FSMI · GNOME Foundation · Google Code · KDE · Linux Foundation · Mozilla Foundation · Open Source Geospatial Foundation · Open Source Initiative · Software Freedom Conservancy · SourceForge · Symbian Foundation · The Document Foundation · Ubuntu Foundation · Xiph.Org Foundation · XMPP Standards Foundation · X.Org Foundation · Software Freedom Law Center
Licenze libereApache · Artistica · BSD · GNU GPL · GNU LGPL · ISC · MIT · MPL · Ms-PL/RL · zlib · Licenze approvate da FSF
Standard di licenzeOpen Source Definition · The Free Software Definition · Debian Free Software Guidelines
SfideBlob binario · Canonical's contributor agreement · Digital rights management · Rebranding dei programmi Mozilla · Software proprietario · Causa SCO-IBM · Restrizioni hardware · Trusted computing · Licenza virale · Guerra dei browser · Halloween Documents
Altri argomentiTermini alternativi · Comunità software libero · Distribuzione Linux · Forking · Movimento software libero · Microsoft Open Specification Promise · Revolution OS
  Portale Software libero: accedi alle voci di Teknopedia che trattano di software libero
Estratto da "https://it.wikipedia.org/w/index.php?title=LLVM&oldid=140057081"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022