LCLint: a tool for using specifications to check code

This paper describes LCLint, an efficient and flexible tool that accepts as input programs (written in ANSI C) and various levels of formal specification. Using this information, LCLint reports inconsistencies between a program and its specification. We also describe our experience using LCLint to help understand, document, and re-engineer legacy code.

[1]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[2]  D. Perry The Logic of Propagation in the Inscape Environment , 1989, Symposium on Testing, Analysis, and Verification.

[3]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[4]  Keith W. Miller,et al.  Adding data abstraction to Fortran software , 1988, IEEE Software.

[5]  Gary Feldman,et al.  The DECspec project: tools for Larch/C , 1992, [1992] Proceedings of the Fifth International Workshop on Computer-Aided Software Engineering.

[6]  Daniel Jackson,et al.  Aspect: a formal specification language for detecting bugs , 1992 .

[7]  Leon J. Osterweil,et al.  Interprocedural static analysis of sequencing constraints , 1992, TSEM.

[8]  David Evans Using specifications to check source code , 1994 .

[9]  V. Stavridou,et al.  Abstraction and specification in program development , 1988 .

[10]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[11]  Leon J. Osterweil,et al.  Omega—A Data Flow Analysis Tool for the C Programming Language , 1985, IEEE Transactions on Software Engineering.

[12]  Leon J. Osterweil,et al.  Omega -- A Data Flow Analysis Tool for the C Programming Language ; CU-CS-217-82 , 1982 .

[13]  Leon J. Osterweil,et al.  Data Flow Analysis in Software Reliability , 1976, CSUR.

[14]  Steven P. Reiss,et al.  CCEL: A Metalanguage for C++ , 1992, C++ Conference.

[15]  Yang Meng Tan Formal specification techniques for promoting software modularity, enhancing documentation, and testing specifications , 1994 .

[16]  Greg Nelson,et al.  Systems programming in modula-3 , 1991 .