A rewriting logic approach to static checking of units of measurement in C

Mark Hills, Feng Chen, Grigore Roşu

Research output: Contribution to journalArticlepeer-review

Abstract

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.

Original languageEnglish (US)
Pages (from-to)51-67
Number of pages17
JournalElectronic Notes in Theoretical Computer Science
Volume290
DOIs
StatePublished - Dec 20 2012

Keywords

  • Unit safety
  • abstract semantics
  • rewriting logic
  • static analysis

ASJC Scopus subject areas

  • Theoretical Computer Science
  • General Computer Science

Fingerprint

Dive into the research topics of 'A rewriting logic approach to static checking of units of measurement in C'. Together they form a unique fingerprint.

Cite this