stringtranslate.com

pelusa (software)

Lint es el término informático para una herramienta de análisis de código estático que se utiliza para señalar errores de programación, errores , errores de estilo y construcciones sospechosas. [4] El término proviene de una utilidad Unix que examinaba el código fuente del lenguaje C. [1] Un programa que realiza esta función también se conoce como "linter".

Historia

Stephen C. Johnson , un científico informático de Bell Labs , ideó el término "lint" en 1978 mientras depuraba la gramática yacc que estaba escribiendo para C y lidiaba con problemas de portabilidad derivados de la migración de Unix a una máquina de 32 bits . [5] [1] El término fue tomado de la palabra pelusa , los pequeños trozos de fibra y pelusa que se desprenden de la ropa, ya que el comando que escribió actuaría como una trampa de pelusa en una secadora de ropa, capturando las fibras de desecho y dejando las telas enteras intactas. . En 1979, la programación lint se utilizó por primera vez fuera de Bell Labs, en la séptima versión ( V7 ) de Unix.

A lo largo de los años, se han desarrollado diferentes versiones de lint para muchos compiladores de C y C++ , y aunque los compiladores modernos tienen funciones similares a lint, las herramientas similares a lint también han mejorado sus capacidades. Por ejemplo, PC-Lint de Gimpel , introducido en 1985 y utilizado para analizar el código fuente C++, todavía está a la venta. [5]

Descripción general

En su artículo original de 1978, Johnson expresó su razonamiento al crear un programa separado para detectar errores, distinto del que analizó: "... la noción general de tener dos programas es buena" [porque se concentran en cosas diferentes, por lo que permitiendo al programador] "concentrarse en una etapa del proceso de programación únicamente en los algoritmos , las estructuras de datos y la corrección del programa, y ​​luego adaptar, con la ayuda de pelusa, las propiedades deseables de universalidad y portabilidad". [1]

Linter sucesores

El análisis realizado por herramientas tipo pelusa también puede realizarse mediante un compilador optimizador , cuyo objetivo es generar código más rápido. 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, usos 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 Lint son especialmente útiles para lenguajes escritos dinámicamente como JavaScript y Python . Debido a que los compiladores de dichos lenguajes generalmente no imponen reglas tan estrictas antes de la ejecución , las herramientas linter también se pueden usar como simples depuradores 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 Lint generalmente realizan análisis estáticos del código fuente. [8]

También se han desarrollado herramientas similares a Lint para otros aspectos del desarrollo de software: hacer cumplir las guías gramaticales y de estilo para el código fuente de un lenguaje determinado. [ cita necesaria ] Algunas herramientas (como Eslint) también permiten que las reglas se corrijan automáticamente: una definición de regla también puede venir con la definición de una transformación que hace que la regla ya no se active. Es especialmente probable que las reglas sobre estilo vengan con una corrección automática. Si el linter se ejecuta en modo "reparar todo" en un archivo que activa solo reglas sobre formato, el linter actuará como un formateador.

Ver también

Referencias

  1. ^ abcd Johnson, Stephen C. (25 de octubre de 1978). "Lint, un verificador de programas C". comp. Ciencia. Tecnología. Representante . Laboratorios Bell: 78–1273. CiteSeerX  10.1.1.56.1841 . Archivado desde el original el 23 de enero de 2022.
  2. ^ "¡UNIX es gratis!". lemis.com. 2002-01-24.
  3. ^ Broderick, Bill (23 de enero de 2002). "Estimados entusiastas de Unix" (PDF) . Caldera Internacional . 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. ^ ab Morris, Richard (1 de octubre de 2009). "Stephen Curtis Johnson: friki de la semana". Software de puerta roja . Consultado el 19 de enero de 2018 .
  6. ^ "Guía del usuario arcanista: Lint". Fabricante . Consultado el 19 de enero de 2018 .
  7. ^ "ESLint: herramienta de linting de JavaScript personalizable (1)". el CodeCampus . 2015-06-09 . Consultado el 21 de abril de 2019 .
  8. ^ Jones, Nigel (1 de mayo de 2002). "Cómo utilizar Lint para el análisis de código estático". Grupo Barr .

Otras lecturas