[LUGA] Mit freundlicher Unterstützung von:
init.at

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[luga] Lint (was Re: INN)



On Fri, Oct 24, 1997 at 04:28:56PM +0200, Peter Holzer wrote:
> Den lint kannst Du nur kaufen, aber Du brauchst ihn nicht zum
> kompilieren (Für die, die den lint nicht kennen: Das ist Programm, das
> Fehler in C-Programmen sucht: So ähnlich wie gcc -Wall -pedantic ...
> aber mit dem Unterschied, daß es sich alle Source-Files anschaut und
> daher Widersprüche entdecken kann und daß es keinen Source produziert
> sondern nur Fehlermeldungen).

Beim Durchlesen fällt mir auf, daß das etwas mißverständlich ist.

Also ausführlicher:

In den alten Tagen als Unix noch auf PDP-11's mit 96kB (ja, kB, nicht
MB) RAM lief, waren auch die C-Compiler entsprechend spartanisch. 
Alles was nicht unbedingt notwendig war, wurde nicht gemacht. Unter
"nicht unbedingt notwendig" firmierten auch alle Fehlerüberprüfungen,
die nicht für die Code-Generation notwendig waren. Die Verwendung einer
nicht-deklarierten Variable wurde also als Fehler gemeldet (weil der
Compiler keinen Code generieren konnte, ohne ihren Typ zu kennen), aber
die Verwendung einer nicht-deklarierten Funktion nicht (weil der
Compiler einfach die Argumente auf den Stack pushen und einen call
generieren konnte, ohne zu wissen, wie die Funktion definiert ist).

Irgendwann kamen aber die Leute auf die Idee, daß sich viele Fehler doch
automatisch entdecken lassen, und ein Programm, das solches tut, dem
Programmierer lange Debugging-Sessions erspart. Ein solches Programm
wurde geschrieben, es hieß lint und war von da an ein
Standard-Unix-Programm.

Die Sprache C hat sich weiterentwickelt, die Compiler machten immer mehr
der Prüfungen selbst, und die Unix-Hersteller kamen zu der Erkenntnis,
daß man mit den Entwicklungstools Geld verdienen könnte.

Ergebnis: Wenn heute noch ein Unix-Hersteller den lint mitliefert, dann
ist es eine uralte Version, die mit 99% aller C-Programme nichts mehr
anfangen kann. GNU hat nie einen lint geschrieben (sie sind offenbar der
Meinung, daß der gcc genug -W... flags hat), aber es gibt einige
kommerzielle Implementationen.

	hp

PS: Henry Spencers 1. Gebot (Thou shalt run lint frequently and study
its pronouncements with care, for verily its perception and judgement
oft exceed thine) muß man halt heute durch "Thou shalt run your C
compiler with all useful warnings enabled ..." ersetzen.

-- 
   _  | Peter J. Holzer             | Die Server-Ports sind komische
|_|_) | Sysadmin WSR                | gelbe Kästchen, die Dämonen fahren
| |   | hjp@wsr.ac.at               | in gelben Autos über Stadt und Land
__/   | http://wsrx.wsr.ac.at/~hjp/ | -- Ralf Döblitz <Doeblitz@gmx.de>



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010