Clang

Clang
The LLVM Compiler Infrastructure
Entwickler: Das LLVM Team und University of Illinois at Urbana-Champaign[1]
Aktuelle Version: 2.5
(2. März 2009)
Betriebssystem: Mac OS X, Linux, Red Hat Enterprise Linux[2], Mingw32
Kategorie: Compiler
Lizenz: Open Source
Deutschsprachig: nein
LLVM Homepage

Die Low Level Virtual Machine (LLVM) ist eine modulare Compiler-Backend-Architektur mit einem virtuellen Befehlssatz und einem "ganzheitlich" optimierenden Übersetzungskonzept. Kennzeichnend ist u.a., dass sämtliche Zeit-Phasen (compile-time, link-time, run-time) einschließlich der Leerlauf-Phase ("idle-time") zur Optimierung herangezogen werden können.

Inhaltsverzeichnis

Arbeitsweise

Herkömmliche Compilersysteme führen Optimierungsvorgänge nur beim Kompilieren durch und binden die kompilierten Module dann aneinander. Dieser zweite Vorgang wird Linken genannt und bietet ebenfalls Optimierungsmöglichkeiten, die jedoch bisher nicht genutzt werden, da der Linker nur die einzelnen Module sieht und nicht das gesamte Programm. Hier setzt LLVM an, indem es einen Bytecode erstellt, der auch während des Linkens noch einmal optimiert werden kann.

Aufbau

Der LLVM Compiler verwendet derzeit die GNU Compiler Collection (GCC) als Frontend. Dabei eignet sich LLVM dazu, Programme, die in frei wählbaren imperativen Programmiersprachen geschrieben wurden, zu kompilieren.

Momentan können Programme, welche in den Programmiersprachen C, C++, Objective-C, D, Ada oder Fortran entwickelt wurden, kompiliert werden. Ein alternatives Frontend namens Clang befindet sich noch in der Entwicklung.

Mit LLVM lassen sich Virtuelle Maschinen für Sprachen wie Java, plattformspezifische Codegeneratoren und von Sprache und Plattform unabhängige Optimierer erstellen. Die LLVM Zwischenschicht (IR) liegt zwischen sprachspezifischen Modulen und den jeweiligen Codegeneratoren. LLVM unterstützt weiterhin dynamische, interprozedurale Optimierung sowie statische und Just-in-time Compiler.

Aktuelle Entwicklung

Viele Komponenten befinden sich noch in Entwicklung, unter anderem Frontends für Java Bytecode, Microsofts CIL und Python. Der LLVM JIT-Compiler ist in der Lage, ungenutzte statische Zweige des Programms zur Laufzeit zu erkennen und anschließend zu entfernen. Dies optimiert Programme mit einem hohen Grad an Verzweigung. Aus diesem Grund nutzt Apple seit Mac OS X 10.5[3] LLVM im OpenGL-Stack um fehlende Hardwarefähigkeiten teilweise nachzurüsten.

Weblinks

Einzelnachweise

  1. http://llvm.org/releases/2.3/LICENSE.TXT LLVM Release License
  2. http://www.llvm.org/releases/download.html#2.3
  3. [LLVMdev] A cool use of LLVM at Apple: the OpenGL stack

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Clang — Тип Компилятор Разработчик Apple Написана на …   Википедия

  • clang — clang; clang·or·ous; clang·er; clang·or; clang·or·ous·ly; …   English syllables

  • Clang — Développeur Université de l Illinois, Apple Éc …   Wikipédia en Français

  • Clang — Clang, v. i. To give out a clang; to resound. Clanging hoofs. Tennyson. [1913 Webster] …   The Collaborative International Dictionary of English

  • Clang — Clang, n. 1. A loud, ringing sound, like that made by metallic substances when clanged or struck together. [1913 Webster] The broadsword s deadly clang, As if a thousand anvils rang. Sir W. Scott. [1913 Webster] 2. (Mus.) Quality of tone. [1913… …   The Collaborative International Dictionary of English

  • clang — [klæŋ] v [I and T] [Date: 1500 1600; : Latin; Origin: clangere] if a metal object clangs, or if you clang it, it makes a loud ringing sound ▪ The gates clanged shut behind her. >clang n [singular] …   Dictionary of contemporary English

  • clang — [ klæŋ ] verb intransitive or transitive if something made of metal clangs, or if you clang it, it makes a loud sound ╾ clang noun count …   Usage of the words and phrases in modern English

  • Clang — (kl[a^]ng), v. t. [imp. & p. p. {Clanged} (kl[a^]ngd); p. pr. & vb. n. {Clanging}.] [L. clangere; akin to Gr. kla zein to clash, scream; or perh. to E. clank.] To strike together so as to produce a ringing metallic sound. [1913 Webster] The… …   The Collaborative International Dictionary of English

  • clang — ► NOUN ▪ a loud metallic sound. ► VERB ▪ make a clang. ORIGIN imitative, influenced by Latin clangere resound …   English terms dictionary

  • clang — fonosimb. CO voce che imita il suono di un oggetto metallico percosso, ad es. il suono del gong o del campanaccio delle mucche; anche s.m.inv. Sinonimi: clanghete. {{line}} {{/line}} DATA: sec. XX. ETIMO: voce onom …   Dizionario italiano

  • clang — (v.) 1570s, echoic (originally of trumpets and birds), akin to or from L. clangere resound, ring, and Gk. klange sharp sound, from PIE *klang , nasalized form of root *kleg to cry, sound. Related: Clanged; clanging. The noun is attested from… …   Etymology dictionary

Share the article and excerpts

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