313:) also allow rules to be auto-fixable: a rule definition can also come with the definition of a transform that makes the rule no longer not triggered. Rules about style are especially likely to come with an auto-fix. If the linter is run in "fix all" mode on a file that triggers only rules about formatting, the linter will act just like a formatter.
211:, the tiny bits of fiber and fluff shed by clothing, as the command he wrote would act like a lint trap in a clothes dryer, capturing waste fibers while leaving whole fabrics intact. In 1979, lint programming was used outside of Bell Labs for the first time, in the seventh version (
241:
In his original 1978 paper
Johnson stated his reasoning in creating a separate program to detect errors, distinct from that which it analyzed: "...the general notion of having two programs is a good one" "concentrate at one stage of the programming process solely on the
266:
have evolved to include many of lint's historical functions, lint-like tools have also evolved to detect an even wider variety of suspicious constructs. These include "warnings about syntax errors, uses of
309:
Lint-like tools have also been developed for other aspects of software development: enforcing grammar and style guides for given language source code. Some tools (such as
382:
616:
611:
601:
327:
147:
250:, and correctness of the program, and then later retrofit, with the aid of lint, the desirable properties of universality and portability".
461:
229:, and while modern-day compilers have lint-like functions, lint-like tools have also advanced their capabilities. For example, Gimpel's
570:
347:
429:
287:
511:
580:
322:
87:
219:
192:
115:
53:
49:
271:, calls to deprecated functions, spacing and formatting conventions, misuse of scope, implicit fallthrough in
38:
606:
537:
390:
486:
290:. Because the interpreters of such languages typically do not enforce as many and as strict rules during
436:
291:
303:
196:
160:
400:
395:
259:
163:
142:
378:
268:
180:
75:
298:
for finding common errors (e.g. syntactic discrepancies) as well as hard-to-find errors such as
302:(drawing attention to suspicious code as "possible errors"). Lint-like tools generally perform
566:
272:
154:
122:
34:
208:
247:
212:
127:
595:
167:
42:
440:
56:
source code. A program which performs this function is also known as a "linter".
560:
279:
171:
283:
82:
70:
233:, introduced in 1985 and used to analyze C++ source code, is still for sale.
299:
243:
184:
295:
263:
226:
45:, stylistic errors and suspicious constructs. The term originates from a
218:
Over the years, different versions of lint have been developed for many
230:
17:
258:
The analysis performed by lint-like tools can also be performed by an
310:
204:
223:
414:
200:
188:
46:
275:, missing license headers, ...dangerous language features".
187:, came up with the term "lint" in 1978 while debugging the
262:, which aims to generate faster code. Even though modern
562:
Checking C Programs with Lint: C Programming
Utility
565:(Revised ed.). United States: O'Reilly Media.
512:"ESLint - Customizable JavaScript linting tool (1)"
153:
141:
133:
121:
111:
93:
81:
69:
585:FreeBSD General Commands Manual (FreeBSD 11.2)
352:The SublimeLinter Community, revision 1cecc79c
207:machine. The term was borrowed from the word
8:
64:
538:"How to Use Lint for Static Code Analysis"
462:"Stephen Curtis Johnson: Geek of the Week"
373:
371:
369:
367:
294:, linter tools can also be used as simple
278:Lint-like tools are especially useful for
63:
394:
339:
328:List of tools for static code analysis
41:tool used to flag programming errors,
455:
453:
7:
428:Broderick, Bill (January 23, 2002).
460:Morris, Richard (1 October 2009).
25:
27:Tool to flag poor computer code
617:Software using the BSD license
1:
612:Formerly proprietary software
602:Static program analysis tools
199:issues stemming from porting
148:Static program analysis tools
536:Jones, Nigel (1 May 2002).
487:"Arcanist User Guide: Lint"
383:"Lint, a C Program Checker"
280:dynamically typed languages
191:grammar he was writing for
633:
183:, a computer scientist at
88:AT&T Bell Laboratories
323:Splint (programming tool)
417:. lemis.com. 2002-01-24.
559:Darwin, Ian F. (1991).
430:"Dear Unix enthusiasts"
389:. Bell Labs: 78–1273.
99:; 46 years ago
446:on February 19, 2009.
437:Caldera International
348:"About SublimeLinter"
387:Comp. Sci. Tech. Rep
269:undeclared variables
39:static code analysis
381:(25 October 1978).
379:Johnson, Stephen C.
260:optimizing compiler
164:commercial software
66:
181:Stephen C. Johnson
97:July 26, 1978
76:Stephen C. Johnson
71:Original author(s)
466:Red Gate Software
273:switch statements
254:Successor linters
195:and dealing with
178:
177:
16:(Redirected from
624:
588:
576:
546:
545:
533:
527:
526:
524:
523:
508:
502:
501:
499:
497:
483:
477:
476:
474:
472:
457:
448:
447:
445:
439:. Archived from
434:
425:
419:
418:
411:
405:
404:
399:. Archived from
398:
375:
362:
361:
359:
358:
344:
306:of source code.
123:Operating system
107:
105:
100:
67:
35:computer science
21:
632:
631:
627:
626:
625:
623:
622:
621:
592:
591:
579:
573:
558:
555:
553:Further reading
550:
549:
535:
534:
530:
521:
519:
510:
509:
505:
495:
493:
485:
484:
480:
470:
468:
459:
458:
451:
443:
432:
427:
426:
422:
415:"UNIX is free!"
413:
412:
408:
377:
376:
365:
356:
354:
346:
345:
341:
336:
319:
304:static analysis
256:
248:data structures
239:
103:
101:
98:
94:Initial release
62:
28:
23:
22:
15:
12:
11:
5:
630:
628:
620:
619:
614:
609:
604:
594:
593:
590:
589:
577:
572:978-0937175309
571:
554:
551:
548:
547:
528:
503:
478:
449:
420:
406:
403:on 2022-01-23.
396:10.1.1.56.1841
363:
338:
337:
335:
332:
331:
330:
325:
318:
315:
255:
252:
238:
235:
176:
175:
157:
151:
150:
145:
139:
138:
135:
131:
130:
128:Cross-platform
125:
119:
118:
113:
109:
108:
95:
91:
90:
85:
79:
78:
73:
61:
58:
52:that examined
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
629:
618:
615:
613:
610:
608:
607:Unix software
605:
603:
600:
599:
597:
587:. 2015-03-23.
586:
582:
578:
574:
568:
564:
563:
557:
556:
552:
543:
539:
532:
529:
517:
516:theCodeCampus
513:
507:
504:
492:
488:
482:
479:
467:
463:
456:
454:
450:
442:
438:
431:
424:
421:
416:
410:
407:
402:
397:
392:
388:
384:
380:
374:
372:
370:
368:
364:
353:
349:
343:
340:
333:
329:
326:
324:
321:
320:
316:
314:
312:
307:
305:
301:
297:
293:
289:
285:
281:
276:
274:
270:
265:
261:
253:
251:
249:
245:
236:
234:
232:
228:
225:
221:
216:
214:
210:
206:
202:
198:
194:
190:
186:
182:
173:
169:
168:free software
165:
162:
158:
156:
152:
149:
146:
144:
140:
136:
132:
129:
126:
124:
120:
117:
114:
110:
96:
92:
89:
86:
84:
80:
77:
74:
72:
68:
59:
57:
55:
51:
48:
44:
40:
36:
32:
19:
584:
561:
541:
531:
520:. Retrieved
518:. 2015-06-09
515:
506:
494:. Retrieved
490:
481:
469:. Retrieved
465:
441:the original
423:
409:
401:the original
386:
355:. Retrieved
351:
342:
308:
277:
257:
240:
217:
179:
134:Available in
83:Developer(s)
30:
29:
491:Phabricator
215:) of Unix.
197:portability
161:proprietary
159:Originally
37:term for a
596:Categories
542:Barr Group
522:2019-04-21
496:19 January
471:19 January
357:2020-03-29
334:References
300:heisenbugs
284:JavaScript
244:algorithms
112:Written in
104:1978-07-26
54:C language
581:"LINT(1)"
391:CiteSeerX
296:debuggers
292:execution
264:compilers
227:compilers
185:Bell Labs
317:See also
237:Overview
172:BSD-like
170:under a
231:PC-Lint
174:license
155:License
137:English
102: (
60:History
50:utility
33:is the
18:Linting
569:
393:
311:ESLint
288:Python
205:32-bit
166:, now
444:(PDF)
433:(PDF)
282:like
203:to a
567:ISBN
498:2018
473:2018
286:and
222:and
209:lint
201:Unix
189:yacc
143:Type
65:Lint
47:Unix
43:bugs
31:Lint
224:C++
598::
583:.
540:.
514:.
489:.
464:.
452:^
435:.
385:.
366:^
350:.
246:,
213:V7
575:.
544:.
525:.
500:.
475:.
360:.
220:C
193:C
116:C
106:)
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.