„Clang“ – Versionsunterschied

[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K →‎Vergleich mit GCC: Eigene Erfahrungen mit gcc/g++ und clang/clang++
"eigene Erfahrungen" sind Theoriefindung und deshalb nicht zulässig
Zeile 27:Zeile 27:


Vorteile von Clang gegenüber GCC sind die Modularität und die BSD-ähnliche Lizenz. Durch die Modularität ist Clang im Vergleich zum GCC besser in anderen Programmen wie z. B. [[integrierte Entwicklungsumgebung|integrierten Entwicklungsumgebungen]] wiederverwendbar.
Vorteile von Clang gegenüber GCC sind die Modularität und die BSD-ähnliche Lizenz. Durch die Modularität ist Clang im Vergleich zum GCC besser in anderen Programmen wie z. B. [[integrierte Entwicklungsumgebung|integrierten Entwicklungsumgebungen]] wiederverwendbar.

Clang erreicht im Vergleich zu gcc eine um einige Faktoren (es wird von Ausmaßen im Bereich von 2 bis 10 berichtet) höhere Geschwindigkeit.

Der erzeugte Code ist zumeist etwas größer als äquivalenter, von gcc erzeugter, Code. Zumeist ist er auch um wenige Prozent schneller.


== Versionsnummern ==
== Versionsnummern ==

Version vom 12. Juni 2012, 16:42 Uhr

Clang
Basisdaten

HauptentwicklerChris Lattner[1]
EntwicklerThe LLVM Team[2]
Aktuelle Version3.1
(22. Mai 2012)
BetriebssystemUnix, GNU/Linux, Windows, Mac OS X, und andere
Programmier­spracheC++
KategorieCompiler-Frontend
LizenzUI/NCSAOSL (Freie Software)
clang.llvm.org

Clang ist ein Compiler-Frontend für die Programmiersprachen C, C++, Objective-C und Objective-C++. Es verfügt im Vergleich mit anderen Compiler-Frontends über umfangreichere und genauere statische und dynamische Analysemethoden, die die Fehlersuche erleichtern. Zudem ermöglicht es schnellere Übersetzungen der Quelltexte mit geringerem Speicherverbrauch und als Ergebnis oft kleinere ausführbare Programme. Clang wurde als Frontend für das Compiler-Backend Low Level Virtual Machine entwickelt; durch den modularen Aufbau von Clang lassen sich seine Bestandteile aber auch in andere Produkte integrieren.[3]

Clang untersteht einer BSD-ähnlichen Lizenz. Anders als bei der GNU General Public License besteht bei der liberaleren BSD-Lizenz kein Zwang, alle Quelltexte von Programmen offenzulegen, die Clang oder Teile davon verwenden, was vor allem für kommerzielle Produkte oft von Interesse ist.

Einsatz des Compilers

Das Clang-Entwicklungsprojekt ist eng mit dem LLVM-Projekt verzahnt, für das es als Ersatz für den GCC-Compiler entwickelt wurde. Seit September 2009 gilt Clang offiziell als stabil und produktiv verwendbar und findet sich mit LLVM Version 2.6 als fester Bestandteil im LLVM-Compiler-Paket.[4] Seit Version 2.7 wird die Programmiersprache C++ offiziell unterstützt.[5] Clang lässt sich aber auch ohne LLVM als rein statisches Programmanalyse- und Fehlerdiagnosewerkzeug, zum Beispiel beim Einsatz mit anderen Compilern, verwenden.[6]

Seit der Version 3.0 unterstützt das LLVM-Projekt den GCC-Compiler nicht mehr, sondern setzt Clang, oder alternativ den Dragonegg-Compiler, verbindlich voraus.[7] Am 12. Mai 2012 kündigte das FreeBSD-Projekt den Umstieg auf Clang statt GCC als Standard-Compiler ab der Version 10.0 des Betriebssystems an.[8][9]

Auf dem Apple Macintosh ist Clang der Standard-Compiler für Google Chrome.[10] Clang ist zur statischen Code-Analyse in die Entwicklungsumgebung Xcode von Apple für die Programmiersprachen C, Objective-C und C++ integriert.

Vergleich mit GCC

Neben GCC ist Clang ein oft eingesetzter Compiler im Open-Source-Umfeld. Er unterscheidet sich sowohl in technischer als auch lizenzrechtlicher Hinsicht von GCC.

Vorteile von Clang gegenüber GCC sind die Modularität und die BSD-ähnliche Lizenz. Durch die Modularität ist Clang im Vergleich zum GCC besser in anderen Programmen wie z. B. integrierten Entwicklungsumgebungen wiederverwendbar.

Versionsnummern

Die Versionsnummern steigen bei LLVM und Clang in der Regel etwa im halbjährlichen Rhythmus um eine Nachkommastelle. Die LLVM- und Clang-Versionsnummern entsprechen in Apples integrierter Entwicklungsumgebung Xcode wiederum anderen Versionsnummern.[11]

Verlauf und Beziehung der Versionsnummerierung:

LLVMClangXcode
2.61.01.0
2.71.11.5
2.82.81.6
2.92.91.7
3.03.02.0

Rezeption

Aufmerksamkeit erhielt der Compiler auf der Fachkonferenz Going Native 2012 im Rahmen eines dedizierten Vortrages zum Thema Clang sowie einer Podiumsdiskussion.[12]

Einzelnachweise

  1. The LLVM Compiler Infrastructure Project (englisch) – offizielle Webseite
  2. „Written by The LLVM Team“ (unterhalb der FAQ-Auflistung)
  3. http://clang.llvm.org/ Offizielle Präsenz von Clang
  4. LLVM 2.6 Release! (englisch) – Meldung bei lists.cs.uiuc.edu, vom 23. Oktober 2009
  5. clang: a C language family frontend for LLVM (englisch) – Projektseite bei LLVM; Stand: 18. Oktober 2010
  6. Expressive Diagnostics (englisch) – Seite bei LLVM; Stand: 27. November 2009
  7. [1] LLVM 3.0 trennt sich von GCC
  8. [2] FreeBSD Quarterly Status Report January-March, 2012
  9. [3] FreeBSD will Clang als Standard-Compiler
  10. [4] Clang als Standard-Compiler für Chrome auf Macintosh
  11. FYI: Version number change (englisch) – Beitrag bei Clang Developers, vom 25. Juni 2010
  12. [5] Going Native 2012