5 dépôts
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 est une collection de ressources éducatives et techniques axées sur l'analyse des arbres de syntaxe abstraite (AST), le développement de compilateurs et la vérification de code statique. Il fournit des guides et manuels pour parser, parcourir et analyser le code source Go afin d'en extraire la signification sémantique. Le projet sert de référence pour construire des frontends de compilateurs, couvrant la traduction de code de haut niveau en représentations intermédiaires et en formes d'assignation statique unique (SSA). Il fournit également des instructions pour utiliser ces techniques afin de développer des outils de langage et effectuer de l'analyse de code statique. Les ressources couvrent un large éventail de capacités d'analyse statique, incluant la tokenisation lexicale, le parsing structurel des expressions et déclarations, et le suivi des coordonnées pour les fichiers sources. Il détaille également les processus d'analyse sémantique tels que la résolution d'identifiants, la vérification de la correction des types et l'analyse du flux de contrôle pour la concurrence et l'exécution différée.
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.