5 repositorios
Tools and techniques for tracking the flow of pointer values through a program to ensure memory safety.
Distinguishing note: None of the candidates relate to static analysis of pointer states; they focus on data mapping and database hydration.
Explore 5 awesome GitHub repositories matching programming languages & runtimes · Pointer Analysis Frameworks. Refine with filters or upvote what's useful.
go-ast-book es una colección de recursos técnicos y educativos centrados en el análisis de árboles de sintaxis abstracta (AST), desarrollo de compiladores y verificación estática de código. Proporciona guías y manuales para analizar, recorrer y examinar código fuente en Go con el fin de extraer su significado semántico. El proyecto sirve como referencia para construir frontends de compiladores, cubriendo la traducción de código de alto nivel a representaciones intermedias y formas de asignación estática única (SSA). También proporciona instrucciones para utilizar estas técnicas en el desarrollo de herramientas de lenguaje y análisis estático de código. Los recursos cubren una amplia gama de capacidades de análisis estático, incluyendo tokenización léxica, análisis estructural de expresiones y declaraciones, y seguimiento de coordenadas para archivos fuente. También detalla procesos de análisis semántico como la resolución de identificadores, verificación de corrección de tipos y análisis de flujo de control para concurrencia y ejecución diferida.
Provides techniques for deconstructing pointer declarations to determine indirection depth and underlying base types.
Structs is a reflection utility and type inspection framework for Go. It provides tools for inspecting, converting, and validating data structures by extracting field names, tags, and values from Go objects. The library specializes in transforming Go structs into generic maps or slices for serialization and data manipulation. It utilizes tag-driven mapping to determine custom keys and exclusion rules during these transformations. The project covers broader capabilities including metadata extraction, type validation to verify if variables are structs or pointers, and initialization verificati
Resolves nested pointers to their base struct types to ensure consistent analysis regardless of memory address.
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
Implements inter-procedural pointer tracking through struct initializations to detect potential nil dereferences.
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
Calculates memory pointer relationships across programs using sensitive algorithms to trace data flow.
Phasar is a static analysis framework designed for the inspection of software logic through the processing of compiler intermediate representations. It provides a modular pipeline for building program representations, including call graphs, control flow graphs, and type hierarchies, which serve as the foundation for deep structural analysis of software behavior. The framework specializes in interprocedural data flow analysis and pointer alias resolution, enabling the tracking of information movement across function boundaries and the identification of indirect memory access patterns. By lever
Determines memory reference relationships and points-to information to resolve indirect memory access patterns.