Abstract
Named constants are used heavily in operating systems code, both as
internal flags and in interactions with devices. Decision making within an
operating system thus critically depends on the correct usage of these
values. Nevertheless, compilers for the languages typically used in
implementing operating systems provide little support for checking the
usage of named constants. This affects correctness, when a constant is
used in a context where its value is meaningless, and software maintenance,
when a constant has the right value for its usage context but the wrong
name.
We propose a hybrid program-analysis and data-mining based approach
to identify the uses of named constants and to identify anomalies in
these uses. We have applied our approach to a recent version of the Linux
kernel and have found a number of bugs affecting both correctness and
software maintenance. Many of these bugs have been validated by the Linux
developers.
internal flags and in interactions with devices. Decision making within an
operating system thus critically depends on the correct usage of these
values. Nevertheless, compilers for the languages typically used in
implementing operating systems provide little support for checking the
usage of named constants. This affects correctness, when a constant is
used in a context where its value is meaningless, and software maintenance,
when a constant has the right value for its usage context but the wrong
name.
We propose a hybrid program-analysis and data-mining based approach
to identify the uses of named constants and to identify anomalies in
these uses. We have applied our approach to a recent version of the Linux
kernel and have found a number of bugs affecting both correctness and
software maintenance. Many of these bugs have been validated by the Linux
developers.
Original language | English |
---|---|
Title of host publication | ASE'10 : Proceedings of the IEEE/ACM International conference on Automated Software Engineering |
Number of pages | 10 |
Publisher | Association for Computing Machinery |
Publication date | 2010 |
Pages | 103-112 |
ISBN (Print) | 978-1-4503-0116-9 |
DOIs | |
Publication status | Published - 2010 |
Event | 25th IEEE/ACM International Conference on Automated Software Engineering - Antwerp, Belgium Duration: 20 Sept 2010 → 24 Sept 2010 Conference number: 25 |
Conference
Conference | 25th IEEE/ACM International Conference on Automated Software Engineering |
---|---|
Number | 25 |
Country/Territory | Belgium |
City | Antwerp |
Period | 20/09/2010 → 24/09/2010 |