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.
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]
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.
Der Name Lint leitet sich von der englischen Bezeichnung für unerwünschte Anteile an Fasern und Flaum in Schafwolle ab.