About the Book
Chapters: Lint, Static Code Analysis, Data-Flow Analysis, Parasoft, Clang, List of Tools for Static Code Analysis, Definite Assignment Analysis, Veracode, Aliasing, Use-Define Chain, Linear Code Sequence and Jump, Grammatech, Shape Analysis, Alias Analysis, Ndepend, Semmlecode, Live Variable Analysis, Coverity, Pattern Insight, Jtest, Frontendart, Fortify Software, Cscope, Automated Code Review, Soatest, Sourceinventory, Splint, Dms Software Reengineering Toolkit, Sourceaudit, Reaching Definition, Ldra Testbed, Software Mining, Checkstyle, Pointer Analysis, Klocwork, Findbugs, Pmd, Yasca, Esc/java, Red Lizard Software, Fxcop, Sparse, Axivion Bauhaus Suite, Lattix, Inc., Soot, Codeit.right, Sofcheck Inspector, Daikon, Sotoarc, Flowchart4j, Qa-C, Understand, Rough Auditing Tool for Security, Pc-Lint, Hammurapi, Stylecop, Structure101, Jslint, Checking. Excerpt: Alias analysis is a technique in compiler theory , used to determine if a storage location may be accessed in more than one way. Two pointers are said to be aliased if they point to the same location. Alias analysis techniques are usually classified by flow-sensitivity and context-sensitivity. They may determine may-alias or must-alias information. The term alias analysis is often used interchangeably with term points-to analysis , a specific case. What Does Alias Analysis Do? In general, alias analysis determines whether or not separate memory references point to the same area of memory. This allows the compiler to determine what variables in the program will be affected by a statement. For example, consider the following section of code that accesses members of structures: ...; p.foo = 1; q.foo = 2; i = p.foo + 3; ... There are three possible alias cases here: If p and q cannot alias, then i = p.foo + 3; can be changed to i = 4. I...