Pelusa (software)


De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Lint , o linter , es una herramienta de análisis de código estático que se utiliza para marcar errores de programación, errores , errores de estilo y construcciones sospechosas. [4] El término se origina en una utilidad de Unix que examinó el código fuente del lenguaje C. [1]

Historia

Stephen C. Johnson , un científico informático de Bell Labs , ideó lint en 1978 mientras depuraba la gramática yacc que estaba escribiendo para C y se ocupaba de los problemas de portabilidad derivados de la migración de Unix a una máquina de 32 bits . [5] [1] El término "pelusa" se deriva del nombre de los pequeños trozos de fibra y pelusa que desprende la ropa, ya que el comando debería actuar como una trampa de pelusa de una secadora, detectando pequeños errores con grandes efectos. En 1979, lint se usó fuera de Bell Labs por primera vez en la séptima versión ( V7 ) del sistema operativo Unix .

A lo largo de los años, se desarrollaron diferentes versiones de lint para muchos compiladores de C y C ++ y, aunque los compiladores de hoy en día tienen funciones similares a lint, las herramientas similares a lint también han avanzado sus capacidades. Por ejemplo, PC-Lint de Gimpel , que se utiliza para analizar el código fuente de C ++, todavía se vende a pesar de que se introdujo en 1985. [5]

Visión general

El análisis realizado por herramientas similares a pelusa también puede ser realizado por un compilador de optimización , que tiene como objetivo generar código más rápido. En su artículo original de 1978, Johnson abordó este tema, concluyendo que "la noción general de tener dos programas es buena" porque se concentran en cosas diferentes, lo que permite al programador "concentrarse en una etapa del proceso de programación únicamente en el algoritmos , estructuras de datos y corrección del programa, y ​​luego modernizar, con la ayuda de lint, las propiedades deseables de universalidad y portabilidad ". [1]

Aunque los compiladores modernos han evolucionado para incluir muchas de las funciones históricas de lint, las herramientas similares a lint también han evolucionado para detectar una variedad aún más amplia de construcciones sospechosas. Estos incluyen "advertencias sobre errores de sintaxis, uso de variables no declaradas , llamadas a funciones obsoletas, convenciones de espaciado y formato, uso indebido del alcance, fallas implícitas en declaraciones de cambio , encabezados de licencia faltantes, [y] ... características de lenguaje peligrosas". [6]

Las herramientas tipo pelusa son especialmente útiles para lenguajes de tipado dinámico como JavaScript y Python . Debido a que los compiladores de dichos lenguajes generalmente no imponen tantas reglas estrictas antes de la ejecución , las herramientas de linter también se pueden usar como depuradores simples para encontrar errores comunes (por ejemplo, discrepancias sintácticas), así como errores difíciles de encontrar como heisenbugs. (llamando la atención sobre el código sospechoso como "posibles errores"). [7] Las herramientas tipo pelusa generalmente realizan análisis estáticos del código fuente. [8]

También se han desarrollado herramientas tipo pelusa para otros aspectos del lenguaje, incluidas guías de estilo y gramática. [ cita requerida ]

Especialización

Fortran

Los compiladores de Fortran que utilizan técnicas de compresión de espacio (por ejemplo, IBM 1130 ) [9] hicieron imposible que el compilador vea el problema con líneas como:

.... HAGA 120 J = 1 . 256 ... 120 CONTINUAR
razón por la cual programas como Lint para Fortran [10] pueden resultar útiles. [11] [12]

Ver también

  • Lista de herramientas para el análisis de código estático

Referencias

  1. ↑ a b c d Johnson, Stephen C. (25 de octubre de 1978). "Lint, a C Program Checker": 78–1273. CiteSeerX  10.1.1.56.1841 . Cite journal requiere |journal=( ayuda )
  2. ^ "¡UNIX es gratis!" . lemis.com. 2002-01-24.
  3. ^ Broderick, Bill (23 de enero de 2002). "Estimados entusiastas de Unix" (PDF) . Caldera International . Archivado desde el original (PDF) el 19 de febrero de 2009.
  4. ^ "Acerca de SublimeLinter" . La comunidad SublimeLinter, revisión 1cecc79c . Consultado el 29 de marzo de 2020 .
  5. ↑ a b Morris, Richard (1 de octubre de 2009). "Stephen Curtis Johnson: Geek de la semana" . Software Red Gate . Consultado el 19 de enero de 2018 .
  6. ^ "Guía del usuario de Arcanist: pelusa" . Phabricator . Consultado el 19 de enero de 2018 .
  7. ^ "ESLint - Herramienta de linting JavaScript personalizable (1)" . theCodeCampus . 2015-06-09 . Consultado el 21 de abril de 2019 .
  8. ^ Jones, Nigel (1 de mayo de 2002). "Cómo utilizar Lint para análisis de código estático" . Barr Group .
  9. ^ Software: lee las declaraciones de origen en la memoria, descarta las líneas de comentarios, elimina los espacios excepto en los literales de texto, concatena las líneas de continuación
  10. ^ Pelusa para Fortran : Denis W. Haskin (2 de mayo de 1988). "Agitando sus programas FORTRAN". Revisión digital . págs. 41–47. similar al Source Code Analyzer de DEC, ... entra en juego mucho antes ... antes de que los usuarios compilen sus programas
  11. ^ "Archivos COMP-FORTRAN-90" . Fortran90-lint, para el análisis del programa Fortran 90, también otras herramientas, de http://www.cleanscape.net/stdprod/ftp/ftpflint.html
  12. ^ "Capítulo 2. Uso básico del depurador" . Existe una versión de dominio público de lint para FORTRAN 77 llamada ftnchek

Otras lecturas

  • Darwin, Ian F. (1991). Comprobación de programas C con Lint: Utilidad de programación C (edición revisada). Estados Unidos: O'Reilly Media. ISBN 978-0937175309.
  • "Pelusa (1)" . Manual de comandos generales de FreeBSD (FreeBSD 11.2) . 2015-03-23.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Lint_(software)&oldid=1030181021 "