Clang

Clang ist ein Compiler-Frontend für die Programmiersprachen C, C++, Objective-C und Objective-C++.

Es verfügt im Vergleich zu 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 LLVM entwickelt; durch den modularen Aufbau von Clang lassen sich seine Bestandteile aber auch in andere Produkte integrieren.

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 proprietäre Produkte oft von Interesse ist.

Einsatz des Compilers

Das Clang-Entwicklungsprojekt ist eng mit dem LLVM-Projekt verzahnt.

Es wurde als Ersatz für das GCC-Compiler-Frontend entwickelt.

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.

Ab Version 2.7 wird die Programmiersprache C++ offiziell unterstützt.

Clang lässt sich aber auch ohne LLVM als rein statisches Programmanalyse- und Fehlerdiagnosewerkzeug, zum Beispiel beim Einsatz mit anderen Compilern, verwenden.

Ab der Version 3.0 unterstützt das LLVM-Projekt den GCC-Compiler nicht mehr, sondern setzt Clang, oder alternativ das Dragonegg-PlugIn, verbindlich voraus.

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.

Auf dem Apple Macintosh sowie seit Oktober 2014 auch auf Linux ist Clang der Standard-Compiler für Google Chrome.

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.

Ein Vorteil von Clang gegenüber GCC ist die Modularität.

Durch die Modularität ist Clang im Vergleich zum GCC besser in anderen Programmen wie z. B. integrierten Entwicklungsumgebungen wiederverwendbar.

Die BSD-ähnliche Lizenz macht es einfacher, Clang zusammen mit anderer Software als Gesamtpaket zu veröffentlichen.

Clang ist bei der Verarbeitung der Syntax und der Maschinencodegenerierung in einigen Fällen schneller als gcc oder g++.

Der Gesamt-Zeitgewinn hängt jedoch sehr stark vom Szenario ab.

Speziell unter Linux-Bedingungen ist dieser oftmals nicht so hoch wie zum Beispiel bei für Apple-Systeme typischen Umgebungen und Aufgaben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

code

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.