Lint (Programmierwerkzeug)

Programmierwerkzeug zur statischen Code-Analyse

Lint (englisch für „Fussel“) ist eine Software zur statischen Code-Analyse. Davon abgeleitet hat sich das Verb linten (englisch to lint) für das Durchführen der statischen Code-Analyse etabliert.

Geschichte

Bearbeiten

Lint war das erste einer ganzen Reihe von Werkzeugen zur statischen Code-Analyse von Quelltext von Computerprogrammen. Sein hauptsächlicher Verwendungszweck war es, die Schwächen der damals existierenden Compiler auszugleichen. Diese setzten über weite Strecken richtigen Quellcode voraus und führten nur rudimentäre Prüfungen durch. Neben dem Aufspüren von gefährlichen Konstrukten, wie nicht initialisierten Variablen, legte Lint auch großes Gewicht auf die Überprüfung eines einheitlichen Layouts des Quelltextes und auf das Erkennen nicht portabler Konstrukte, wie etwa Abhängigkeiten vom Betriebssystem oder vom Compiler.

Ursprünglich von den Bell Labs für die Programmiersprache C entwickelt, wurde Lint 1979 mit der siebten Version (V7) des Betriebssystems Unix als Teil des Portable C Compiler veröffentlicht. Dies war der zweite Compiler für dieses System nach dem PDP-11-Compiler. Die Unterschiede zwischen System V und BSD sind bei Lint besonders deutlich.[1]

Bereits 1985 wurde eine Portierung von Lint auch für den Einsatz am PC angeboten und seit damals als Softwareprodukt beworben.[2]

Entwicklung

Bearbeiten

Viele der Prüfungen, die Lint durchführte, sind durch die Fortschritte im Compilerbau in die heutigen Compiler eingeflossen. Diese erzeugen nun hochgradig optimierten Code, wobei sie auch wesentlich weitreichendere statische Analysen vornehmen müssen.

Manche Überprüfungen sind hinfällig geworden, weil durch bessere Standardisierungen der Programmiersprachen gewisse Portabilitätsprobleme nicht mehr existieren. Durch die Verwendung moderner Entwicklungsumgebungen und kontextsensitiver Texteditoren mit Syntaxhervorhebung und automatischer Einrückung hat sich auch das Formatierungsproblem etwas entspannt.

Mit dem Entstehen und der Verbreitung von C++ wurde versucht, Lint um Prüfungen speziell für die neuen Sprachkonstrukte zu erweitern. Das Alleinstellungsmerkmal der ersten Jahre hat Lint aber verloren. Auf dem Markt wird heute eine Reihe von teilweise weit ausgefeilteren Werkzeugen für die statische Code-Analyse angeboten. Unabhängig davon eignet sich Lint aufgrund seiner geringen Größe, hohen Stabilität, weiten Konfigurierbarkeit und plattformübergreifenden Verfügbarkeit besonders auch für verteilte Projekte. Dabei wird Quellcode von unterschiedlichen Entwicklern beigesteuert, der aber dennoch einheitlichen Qualitätskriterien genügen soll. Nur so können automatisiert Erstellungsläufe ausgeführt oder eine Dokumentation erstellt werden.

Bezeichnung

Bearbeiten

Der Name Lint leitet sich von der englischen Bezeichnung für unerwünschte Anteile an Fasern und Flaum in Schafwolle ab.

Abgeleitete Namensverwendungen

Bearbeiten

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • Stephen C. Johnson: Lint, a C program checker (= Computer Science Technical Report. Nr. 65, ISSN 1053-864X). Bell Laboratories, Murray Hill NJ 1977.
  • Ian F. Darwin: Checking C Programs with Lint. O’Reilly, Newton MA u. a. 1988, ISBN 0-937175-30-7.
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Helmut Weber: Praktische Systemprogrammierung. Grundlagen und Realisierung unter UNIX und verwandten Systemen. Vieweg, Braunschweig u. a. 1998, ISBN 3-528-05658-4, online bei Google.
  2. Celebrating 30 Years of PC-lint.
  3. Android Tools Project Site. Lint.
  4. Android Tools Project Site. Android Lint.