Symbol Table for Hierarchical Data Flow Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Static code analysis tools face performance issues when analyzing large software projects with numerous structured data objects, as they struggle to efficiently handle data flow paths and identify security vulnerabilities without precluding all potential children in the symbol table, leading to poor performance.
Innovation Solution
The implementation of a dynamically growing symbol table and live data engine within the code analysis system, which selectively inserts leaf children impacting static code analysis, and uses intermediate representation to enhance the symbol data table, live data table, and live descendant data table for efficient data flow analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a complete symbol table containing all potential children is used, then analysis completeness is improved, but performance deteriorates due to large table size
Solution Approach 1:
The patent extracts only the necessary children from the complete symbol table that are actually relevant to security analysis. Instead of including all potential children, the system selectively includes only those children that can impact security-relevant statements, thereby reducing table size while maintaining analysis completeness for security vulnerabilities.
Solution Approach 2:
The patent applies partial action by including only the subset of children needed for security analysis rather than all children. The symbol table is dynamically grown to include children based on their relevance to security statements, performing exactly enough analysis to detect security vulnerabilities without unnecessary overhead.
2Reliability
If all children are included in the symbol table, then data flow path coverage is improved, but memory usage increases
Solution Approach 1:
The patent extracts and includes only those children in the symbol table that are relevant to security analysis. The system determines which children can actually impact security-relevant statements and includes only those in the data flow analysis, reducing memory consumption while maintaining adequate coverage for security vulnerability detection.
Solution Approach 2:
The patent implements a dynamic symbol table that grows as needed during analysis. Instead of pre-allocating space for all potential children, the table is dynamically expanded to include children based on their relevance to security statements encountered during the analysis process, optimizing memory usage adaptively.
3Productivity
If the symbol table is reduced in size, then performance is improved, but analysis precision may deteriorate
Solution Approach 1:
The patent applies local quality by making the symbol table content specific to security analysis needs rather than generic. The table includes children with properties and information tailored to security-relevant data flow analysis, ensuring high precision for security vulnerability detection while keeping the table compact for good performance.
Data Source
AI summary
Disclosed are a system, a computer-readable storage medium storing at least one program, and a computer-implemented method of code analysis. Whether a destination ancestor of a destination data structure and the destination data structure are included in a live data table is determined. Also, whether a destination leaf-descendant of the destination data structure is included in a live descendant data table is determined. In response to either the destination ancestor or the destination data structure being included in the live data table, the live data table is updated to include the source data structure. In response to the destination leaf-descendant being included in the live descendant data table, the live data table and a symbol data table are updated to include a leaf-descendant of the source data structure that corresponds to the destination leaf-descendant. The symbol data table is provided to a data flow analyzer.


