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.