5 रिपॉजिटरी
Analysis technique that transforms code into a form where each variable is assigned exactly once.
Distinct from Variable Assignments: Specific static analysis technique for data flow tracking, distinct from general variable assignment primitives.
Explore 5 awesome GitHub repositories matching programming languages & runtimes · Static Single Assignment Analysis. Refine with filters or upvote what's useful.
gosec is a static analysis security tool designed to scan Go source code for vulnerabilities and common coding flaws. It functions as a security analyzer that inspects the abstract syntax tree to identify insecure function calls, API usage, and potential security risks. The tool distinguishes itself by mapping detected vulnerabilities to Common Weakness Enumeration identifiers for standardized reporting and integrating with external AI models to suggest code fixes for identified issues. Its capabilities cover the detection of injection vulnerabilities, hardcoded credentials, weak cryptograph
Tracks variable assignments and data flow to identify vulnerabilities that depend on value changes.
Binaryen is a WebAssembly compiler toolchain and optimizer designed to transform, validate, and shrink binary modules. It provides a comprehensive intermediate representation framework that converts binary code into a single-assignment form to enable advanced program analysis and code transformation. The project includes a specialized transformation engine that applies iterative optimization passes to increase execution speed and reduce binary size. Additionally, it functions as a transpiler that translates WebAssembly binary modules into executable JavaScript for environments that lack nativ
Transforms code into single-assignment form so each variable has one assignment to simplify optimization.
go-ast-book एब्स्ट्रैक्ट सिंटैक्स ट्री (AST) विश्लेषण, कंपाइलर डेवलपमेंट और स्टेटिक कोड वेरिफिकेशन पर केंद्रित शैक्षिक और तकनीकी संसाधनों का एक संग्रह है। यह Go सोर्स कोड को पार्स करने, ट्रैवर्स करने और उसका विश्लेषण करके अर्थ निकालने के लिए गाइड और मैनुअल प्रदान करता है। यह प्रोजेक्ट कंपाइलर फ्रंटएंड बनाने के लिए एक संदर्भ के रूप में कार्य करता है, जो हाई-लेवल कोड को इंटरमीडिएट रिप्रेजेंटेशन और सिंगल स्टेटिक असाइनमेंट फ़ॉर्म में अनुवाद करने को कवर करता है। यह भाषा टूलिंग विकसित करने और स्टेटिक कोड विश्लेषण करने के लिए इन तकनीकों का उपयोग करने के निर्देश भी प्रदान करता है। संसाधन लेक्सिकल टोकनाइज़ेशन, एक्सप्रेशन्स और डिक्लेरेशन्स की स्ट्रक्चरल पार्सिंग और सोर्स फ़ाइलों के लिए कोऑर्डिनेट ट्रैकिंग सहित स्टेटिक विश्लेषण क्षमताओं की एक विस्तृत श्रृंखला को कवर करते हैं। यह आइडेंटिफ़ायर रिज़ॉल्यूशन, टाइप करेक्टनेस वेरिफिकेशन और कॉनकरेंसी और डिफ़र्ड एक्ज़ीक्यूशन के लिए कंट्रोल फ़्लो विश्लेषण जैसी सिमेंटिक विश्लेषण प्रक्रियाओं का भी विवरण देता है।
Implements analysis techniques that transform high-level code into a form where each variable is assigned exactly once.
Nilaway is a static analysis tool and linter plugin for Go designed to identify potential nil pointer dereferences in source code to prevent runtime panics. It functions as an inter-procedural pointer analyzer that tracks data flow across functions and packages to detect memory safety issues. The tool differentiates itself by tracking pointer states through anonymous functions, closures, and struct initializations. It employs a pointer analysis framework that monitors how values flow through a program to determine if a variable is safe to dereference at a specific point. The analyzer can be
Uses Static Single Assignment (SSA) form to track how pointer values flow through the program.
SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references, variable aliases, and data dependencies across whole programs. The platform translates compiled intermediate code formats into unified internal representations, constructing constraint graphs, call graphs, and control-flow graphs to model interprocedural execution behavior and memory state. The framework incorporates specialized engines for flow-sensitive, flow-insensitive, and context-sensitive pointer analysis alongside sparse value-flow graph generation. It features memory
Constructs detailed program assignment graphs representing pointer values and memory objects.