Lint (software) - Lint (software)
Původní autoři | Stephen C. Johnson |
---|---|
Vývojáři | AT & T Bell Laboratories |
První vydání | 26. července 1978 |
Napsáno | C |
Operační systém | Cross-platform |
K dispozici v | Angličtina |
Typ | Nástroje pro statickou analýzu programu |
Licence | Původně vlastní obchodní software , nyní svobodný software pod BSD-like licence |
Lint , neboli linter , je nástroj pro analýzu statického kódu, který se používá k označení chyb programování, chyb , stylistických chyb a podezřelých konstrukcí. Termín pochází z unixového nástroje, který zkoumal zdrojový kód jazyka C.
Dějiny
Počítačový vědec Stephen C. Johnson , Bell Labs , přišel s lintem v roce 1978 při ladění yacc gramatiky, kterou psal pro C, a řešení problémů s přenositelností vyplývajících z přenesení Unixu na 32bitový stroj. Pojem „žmolky“ byl odvozen z názvu drobných kousků vláken a chuchvalců svlékaných oděvem, protože příkaz by měl fungovat jako lapač vláken na stroji, který detekuje malé chyby s velkými efekty. V roce 1979 byl v sedmé verzi ( V7 ) operačního systému Unix poprvé použit vlákna mimo Bell Labs .
V průběhu let byly vyvinuty různé verze vláken pro mnoho kompilátorů C a C ++ a zatímco moderní kompilátory mají funkce podobné vláknům, nástroje podobné vláknům také rozšířily své možnosti. Například Gimpel's PC-Lint , používaný k analýze zdrojového kódu C ++, se stále prodává, přestože byl představen v roce 1985.
Přehled
Analýzu prováděnou nástroji podobnými vláknům může provádět také optimalizační překladač , jehož cílem je generovat rychlejší kód. Ve svém původním příspěvku z roku 1978 se Johnson zabýval tímto problémem a dospěl k závěru, že „obecná představa mít dva programy je dobrá“, protože se soustředili na různé věci, což umožnilo programátorovi „soustředit se v jedné fázi procesu programování výhradně na algoritmy , datové struktury a správnost programu a poté později dovybavit pomocí žmolků žádoucí vlastnosti univerzálnosti a přenositelnosti “.
I když se moderní kompilátory vyvinuly tak, aby zahrnovaly mnoho historických funkcí, které se používají pro vlákna, vyvinuly se i nástroje podobné vláknům, aby detekovaly ještě širší škálu podezřelých konstrukcí. Patří sem „upozornění na chyby syntaxe, použití nehlášených proměnných , volání zastaralých funkcí, mezery a formátovací konvence, zneužití rozsahu, implicitní propad v prohlášeních přepínačů , chybějící záhlaví licencí [a] ... nebezpečné jazykové funkce“.
Nástroje podobné vláknům jsou zvláště užitečné pro dynamicky psané jazyky, jako je JavaScript a Python . Protože kompilátory takových jazyků obvykle nevyžadují tolik a jako přísná pravidla před spuštěním , lze nástroje linter použít také jako jednoduché debuggery pro hledání běžných chyb (např. Syntaktických nesrovnalostí) i těžko dostupných chyb, jako jsou heisenbugs (upozorňování na podezřelý kód jako „možné chyby“). Nástroje podobné vláknům obecně provádějí statickou analýzu zdrojového kódu.
Nástroje podobné vláknům byly vyvinuty také pro další aspekty jazyka, včetně průvodců gramatiky a stylu.
Specializace
Fortran
Kompilátory Fortran používající techniky stlačování prostoru (např. IBM 1130 ) znemožnily kompilátoru vidět problém s řádky jako:
- .... DO 120 J = 1 . 256 ... 120 POKRAČOVAT
- proto mohou být užitečné programy jako Lint for Fortran .
Viz také
Reference
Další čtení
- Darwin, Ian F. (1991). Kontrola programů C pomocí nástroje Lint: C Programming Utility (revidované vydání). Spojené státy: O'Reilly Media. ISBN 978-0937175309.
- „LINT (1)“ . FreeBSD General Commands Manual (FreeBSD 11.2) . 23. 3. 2015