Articulo de referencia

Férula (herramienta de programación)

Splint , abreviatura de Secure Programming Lint , es una herramienta de programación para comprobar estáticamente los programas C en busca de vulnerabilidades de seguridad y err...

Splint , abreviatura de Secure Programming Lint , es una herramienta de programación para comprobar estáticamente los programas C en busca de vulnerabilidades de seguridad y errores de codificación. Anteriormente llamada LCLint, es una versión moderna de la herramienta de análisis de lint de Unix .

Splint tiene la capacidad de interpretar anotaciones especiales en el código fuente , lo que le otorga una verificación más sólida que la que se puede realizar simplemente mirando el código fuente. Splint es utilizado por gpsd como parte de un esfuerzo por diseñar para cero defectos. [1]

Splint es un software libre publicado bajo los términos de la Licencia Pública General GNU .

La actividad principal de desarrollo en Splint se detuvo en 2010. Según el CVS en SourceForge , a septiembre de 2012 el cambio más reciente en el repositorio fue en noviembre de 2010. [2] Un repositorio de Git en GitHub tiene cambios más recientes, a partir de julio de 2019. [3]

Ejemplo

#include <stdio.h> int main () { char c ; while ( c != 'x' ); { c = getchar (); if ( c = 'x' ) return 0 ; switch ( c ) { case '\n' : case '\r' : printf ( "Nueva línea \n " ); predeterminado : printf ( "%c" , c ); } } return 0 ; } 
 

     
       
    
          
           
             
          
         
         
            
        
            
        
    
     

Salida de la férula:

Variable c utilizada antes de la definición
Se sospecha que existe un bucle infinito. Ningún valor utilizado en la prueba de bucle (c) es modificado por la prueba o el cuerpo del bucle.
Asignación de int a char: c = getchar()
Expresión de prueba para si es expresión de asignación: c = 'x'
Expresión de prueba para si no es booleano, tipo char: c = 'x'
Caso de caída (sin interrupción previa)

Fuente fija:

#include <stdio.h> int main () { int c = 0 ; // Se agregó una definición de asignación inicial. 
 

         

    mientras ( c != 'x' ) { c = getchar (); // Se corrigió el tipo de c a int if ( c == 'x' ) // Se corrigió el error de asignación para convertirlo en un operador de comparación. return 0 ; switch ( c ) { case '\n' : case '\r' : printf ( "Newline \n " ); break ; // Se agregó la declaración break para evitar el paso de línea. default : printf ( "%c" , c ); break ; // Se agregó la declaración break al catch predeterminado, por buena práctica. } } return 0 ; }    
            
            
             
          
         
         
            
              
        
            
              
        
    
     

Véase también

Referencias

  1. ^ Raymond (2012). Brown, Amy; Wison, Greg (eds.). La arquitectura de aplicaciones de código abierto, volumen II (Eric ed.). Lulu. ISBN 9781105571817.
  2. ^ "Estadísticas CVS del proyecto Splint" . Consultado el 11 de septiembre de 2012 .
  3. ^ "Historial de Git del proyecto Splint". GitHub . Consultado el 16 de septiembre de 2020 .


Obtenido de "https://es.wikipedia.org/w/index.php?title=Splint_(herramienta_de_programación)&oldid=1229722711"