Lint (software) - Lint (software)

Vlákna
Původní autoři Stephen C. Johnson
Vývojáři AT & T Bell Laboratories
První vydání 26. července 1978 ; Před 43 lety ( 1978-07-26 )
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í