Electronic Notes in Theoretical Computer Science · 2012 · 21 citations · 16 references
ComputingComputer EngineeringComputer ScienceFormal MethodsProgramming LanguagesSafety EngineeringAbstract InterpretationError DetectionStatic AnalysisStatic Code AnalysisType CheckingType SystemsAbstract SemanticsAbstract TypesImplicit InformationInitial Performance EvaluationSafety Code ViolationsStatic Type Checking
Many C programs assume the use of implicit domain-specific information. A common example is units of measurement, where values can have both a standard C type and an associated unit. However, since there is no way in the C language to represent this additional information, violations of domain-specific policies, such as unit safety violations, can be difficult to detect. In this paper we present a static analysis, based on the use of an abstract C semantics defined using rewriting logic, for the detection of unit violations in C programs. In contrast to typed approaches, the analysis makes use of annotations present in C comments on function headers and in function bodies, leaving the C language unchanged. Initial evaluation results show that performance scales well, and that errors can be detected without imposing a heavy annotation burden.
16
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Jeffrey S. Foster, Manuel Fähndrich, Alex Aiken · 1999 · 263 citations · Full text
The rewriting logic semantics project
José Meseguer, Grigore Roşu · Theoretical Computer Science · 2006 · 158 citations