Lint (software) - Lint (software)

Puf
Autori originali Stephen C. Johnson
Dezvoltatori Laboratoarele AT&T Bell
Eliberarea inițială 26 iulie 1978 ; Acum 43 de ani ( 26.07.1978 )
Scris in C
Sistem de operare Cross-platform
Disponibil in Engleză
Tip Instrumente de analiză statică a programelor
Licență Inițial proprietate de software comercial , acum software - ul liber sub o BSD-ca licență

Lint , sau un linter , este un instrument static de analiză a codului folosit pentru a semnaliza erorile de programare, erorile , erorile stilistice și construcțiile suspecte. Termenul provine dintr-un utilitar Unix care a examinat codul sursă în limbajul C.

Istorie

Stephen C. Johnson , informatician la Bell Labs , a venit cu scame în 1978 în timp ce depana gramatica yacc pe care o scria pentru C și se ocupa de problemele de portabilitate care decurg din portarea Unix pe o mașină pe 32 de biți . Termenul "scame" a fost derivat din numele micilor bucăți de fibre și puf vărsate de îmbrăcăminte, deoarece comanda ar trebui să acționeze ca o mașină de scame pentru scame, detectând erori mici cu efecte mari. În 1979, scamele au fost utilizate în afara Bell Labs pentru prima dată în cea de-a șaptea versiune ( V7 ) a sistemului de operare Unix .

De-a lungul anilor, diferite versiuni de scame au fost dezvoltate pentru multe compilatoare C și C ++ și, în timp ce compilatoarele moderne au funcții asemănătoare scamei, instrumentele asemănătoare scamei și-au avansat capacitățile. De exemplu, PC-Lint de la Gimpel , folosit pentru a analiza codul sursă C ++, este încă vândut chiar dacă a fost introdus în 1985.

Prezentare generală

Analiza efectuată de instrumente asemănătoare scamei poate fi efectuată și de un compilator de optimizare , care are ca scop generarea unui cod mai rapid. În lucrarea sa originală din 1978, Johnson a abordat această problemă, concluzionând că „noțiunea generală de a avea două programe este una bună”, deoarece acestea s-au concentrat pe lucruri diferite, permițând astfel programatorului să „se concentreze într-o etapă a procesului de programare numai pe algoritmi , structuri de date și corectitudinea programului, și apoi adaptarea ulterioară, cu ajutorul scamei, a proprietăților dorite ale universalității și portabilității ".

Chiar dacă compilatoarele moderne au evoluat pentru a include multe dintre funcțiile istorice ale scamei, instrumentele asemănătoare scamei au evoluat și pentru a detecta o varietate și mai largă de constructe suspecte. Acestea includ „avertismente cu privire la erori de sintaxă, utilizări ale variabilelor nedeclarate , apeluri la funcții depreciate, convenții de spațiu și formatare, utilizare greșită a domeniului de aplicare, cădere implicită în instrucțiunile de comutare , anteturi de licență lipsă, [și] ... caracteristici de limbaj periculoase”.

Instrumentele asemănătoare scamei sunt utile în special pentru limbaje tastate dinamic, cum ar fi JavaScript și Python . Deoarece compilatoarele de astfel de limbaje nu aplică de regulă atât de multe reguli stricte înainte de execuție , instrumentele linter pot fi folosite și ca simple depanatoare pentru a găsi erori comune (de exemplu, discrepanțe sintactice), precum și erori greu de găsit, cum ar fi heisenbugs (atragând atenția asupra codului suspect ca „posibile erori”). Instrumentele asemănătoare scamei efectuează în general analize statice ale codului sursă.

Au fost dezvoltate și instrumente asemănătoare scamelor pentru alte aspecte ale limbajului, inclusiv ghiduri de gramatică și stil.

Specializare

Fortran

Compilatoarele Fortran folosind tehnici de stoarcere a spațiului (de exemplu, IBM 1130 ) au făcut imposibil pentru compilator să vadă problema cu linii precum:

.... DO 120 J = 1 . 256 ... 120 CONTINUAȚI
motiv pentru care programe precum Lint for Fortran pot fi de ajutor.

Vezi si

Referințe

Lecturi suplimentare