Charpie (logiciel) - Lint (software)
| Auteur(s) original(aux) | Stephen C. Johnson |
|---|---|
| Développeur(s) | Laboratoires AT&T Bell |
| Première version | 26 juillet 1978 |
| Écrit en | C |
| Système opérateur | Multiplateforme |
| Disponible en | Anglais |
| Taper | Outils d'analyse de programme statique |
| Licence | Logiciel commercial propriétaire à l' origine , maintenant logiciel libre sous une licence de type BSD |
Lint , ou un linter , est un outil d' analyse de code statique utilisé pour signaler les erreurs de programmation, les bogues , les erreurs de style et les constructions suspectes. Le terme provient d'un utilitaire Unix qui a examiné le code source du langage C.
Histoire
Stephen C. Johnson , informaticien chez Bell Labs , a trouvé Lint en 1978 tout en déboguant la grammaire yacc qu'il écrivait pour C et en traitant des problèmes de portabilité résultant du portage d' Unix sur une machine 32 bits . Le terme « peluches » est dérivé du nom des minuscules morceaux de fibres et de peluches perdus par les vêtements, car la commande devrait agir comme un piège à peluches pour machine de séchage, détectant les petites erreurs avec de grands effets. En 1979, lint a été utilisé pour la première fois en dehors des Bell Labs dans la septième version ( V7 ) du système d' exploitation Unix .
Au fil des ans, différentes versions de lint ont été développées pour de nombreux compilateurs C et C++ et bien que les compilateurs modernes aient des fonctions similaires à celles de lint, les outils similaires ont également amélioré leurs capacités. Par exemple, PC-Lint de Gimpel , utilisé pour analyser le code source C++, est toujours vendu même s'il a été introduit en 1985.
Aperçu
L'analyse effectuée par des outils semblables à des peluches peut également être effectuée par un compilateur d'optimisation , qui vise à générer un code plus rapide. Dans son article original de 1978, Johnson a abordé cette question, concluant que « la notion générale d'avoir deux programmes est bonne » parce qu'ils se concentrent sur des choses différentes, permettant ainsi au programmeur de « se concentrer à une étape du processus de programmation uniquement sur le les algorithmes , les structures de données et l'exactitude du programme, puis plus tard, à l'aide de lint, les propriétés souhaitables d'universalité et de portabilité".
Même si les compilateurs modernes ont évolué pour inclure de nombreuses fonctions historiques de Lint, des outils similaires à Lint ont également évolué pour détecter une plus grande variété de constructions suspectes. Ceux-ci incluent "les avertissements concernant les erreurs de syntaxe, les utilisations de variables non déclarées , les appels à des fonctions déconseillées, les conventions d'espacement et de formatage, l'utilisation abusive de la portée, les erreurs implicites dans les instructions switch , les en-têtes de licence manquants, [et]... des fonctionnalités de langage dangereuses".
Les outils de type Lint sont particulièrement utiles pour les langages à typage dynamique tels que JavaScript et Python . Parce que les compilateurs de ces langages n'appliquent généralement pas autant de règles strictes avant l' exécution , les outils linter peuvent également être utilisés comme de simples débogueurs pour trouver des erreurs courantes (par exemple des divergences syntaxiques) ainsi que des erreurs difficiles à trouver telles que heisenbugs (attirant l'attention sur le code suspect en tant qu'"erreurs possibles"). Les outils de type Lint effectuent généralement une analyse statique du code source.
Des outils semblables à des peluches ont également été développés pour d'autres aspects du langage, y compris les guides de grammaire et de style.
Spécialisation
Fortran
Les compilateurs Fortran utilisant des techniques de compression d'espace (par exemple IBM 1130 ) ont rendu impossible pour le compilateur de voir le problème avec des lignes telles que :
- .... DO 120 J=1 . 256 ... 120 CONTINUER
- c'est pourquoi des programmes comme Lint for Fortran peuvent être utiles.
Voir également
Les références
Lectures complémentaires
- Darwin, Ian F. (1991). Vérification des programmes C avec Lint : Utilitaire de programmation C (éd. révisé). États-Unis : O'Reilly Media. ISBN 978-0937175309.
- "LINT(1)" . Manuel des commandes générales de FreeBSD (FreeBSD 11.2) . 2015-03-23.