Lint
Lint es una herramienta de programación; originalmente lint era el nombre de una herramienta de programación utilizada para detectar código sospechoso, confuso o incompatible entre distintas arquitecturas en programas escritos en C; es decir, errores de programación que escapan al habitual análisis sintáctico que hace el compilador. En la actualidad, se utiliza este término para designar a herramientas que realizan estas tareas de comprobación en cualquier lenguaje de programación. Las herramientas de tipo lint generalmente funcionan realizando un análisis estático del código fuente.
Las construcciones sospechosas que se suelen buscar son usos de variables antes de ser inicializadas o creadas, condiciones que no varían bajo ninguna circunstancia (Son siempre verdaderas o siempre falsas) y cálculos cuyos resultados probablemente caigan fuera del rango permitido por las variables utilizadas.
En los compiladores optimizados (Cuya principal motivación es la generación de código de alta calidad) también se pueden encontrar muchos de los análisis habitualmente realizados por lint. También se está empezando a incluir la detección de estas construcciones incorrectas en su lista de avisos (Warnings).
Las sucesivas generaciones de herramientas del estilo de lint han seguido ampliando en rango de construcciones incorrectas o sospechosas. Las herramientas más avanzadas realizan cada vez más comprobaciones, como por ejemplo, que el código sea consistente entre distintos compiladores, o el soporte para incorporar anotaciones acerca del comportamiento esperado o las propiedades del código.
Historia
La primera versión de lint (fuera de los laboratorios Bell Labs) apareció en la versión 7 (V7) del sistema operativo UNIX, en 1979. Formaba parte del compilador PCC (Portable C Compiler), que fue el segundo compilador de C incorporado a las máquinas PDP-11. Su autor, Stephen C. Johnson, es también el creador de yacc (Yet another compiler compiler).
Véase también
Referencias
- Stephen Johnson. Lint, a C program checker. Computer Science Technical Report 65, Bell Laboratories, December 1977.
Datos: Q1727373