Abstract
Modern static-analysis tools provide powerful and specific insights into codebases. The Linux kernel team, for example, developed Coccinelle, a powerful tool for searching, analyzing, and rewriting C source code; because the Linux kernel contains more than 27 million lines of code, a static-analysis tool is essential both for finding bugs and for making automated changes across its many libraries and modules. Another tool targeted at the C family of languages is Clang scan-build, which comes with many useful analyses and provides an API for programmers to write their own analyses. Like so many things in computer science, the utility of static analysis is self-referential: To write reliable programs, we must also write programs for our programs. But this is no paradox. Static-analysis tools, complex though their theory and practice may be, are what will enable us, and engineers of the future, to overcome this challenge and yield the knowledge and insights that we practitioners deserve.
Publisher
Association for Computing Machinery (ACM)
Reference7 articles.
1. Abstract interpretation
2. The education of a computer;Hopper G. M.;Annals of the History of Computing,1988
3. Software complexity and software maintenance: A survey of empirical research
4. NASA Office of the Chief Engineer. 2011. Software Engineering and Assurance Handbook. National Aeronautics and Space Administration. SWE-135. https://swehb.nasa.gov/display/SWEHBVC. NASA Office of the Chief Engineer. 2011. Software Engineering and Assurance Handbook. National Aeronautics and Space Administration. SWE-135. https://swehb.nasa.gov/display/SWEHBVC.
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献