5 repositorios
Static analysis techniques that differentiate between different call sites of the same function to improve precision.
Distinct from Context-Sensitive: The candidates are focused on autocomplete or hotkeys, not static analysis precision.
Explore 5 awesome GitHub repositories matching programming languages & runtimes · Context-Sensitive Analysis. Refine with filters or upvote what's useful.
Semantic es una librería basada en Haskell y una herramienta de línea de comandos diseñada para el análisis de código fuente políglota. Funciona como un framework de análisis estático de programas y un analizador de árboles de sintaxis abstracta políglota que convierte múltiples lenguajes de programación en árboles de sintaxis estructurados basados en definiciones gramaticales. El sistema se distingue por un motor de comparación semántica de código que detecta cambios estructurales y significativos entre versiones de código en lugar de depender de diferencias textuales. Además, permite el análisis entre diferentes sintaxis de programación traduciendo lenguajes de superficie a una representación intermedia políglota unificada. El framework proporciona un amplio conjunto de capacidades para analizar lenguajes como Rust, Go, Python, Ruby, PHP, TypeScript y TSX. Cubre el análisis semántico mediante el mapeo del alcance del código, la extracción de símbolos y la generación de grafos semánticos, junto con herramientas para el análisis de patrones y la evaluación del comportamiento del programa. El conjunto de herramientas incluye utilidades de línea de comandos para estandarizar el diseño de archivos fuente de Haskell.
Adjusts the performance and sensitivity of program analyses to balance speed against result detail.
Cppcheck es una herramienta de análisis estático y linter para código fuente en C y C++ diseñada para detectar errores de programación, fugas de memoria y violaciones de seguridad sin ejecutar el programa. Funciona como un motor de detección de errores y herramienta de aseguramiento de calidad para identificar problemas de concurrencia, errores de conversión de tipos y cumplimiento de estándares de codificación segura. El proyecto proporciona una interfaz gráfica de usuario para seleccionar archivos y revisar errores, junto con un linter para imponer convenciones de nomenclatura y estándares de codificación. Soporta la creación de reglas de análisis personalizadas utilizando expresiones regulares para identificar patrones de codificación específicos. La herramienta incluye capacidades para análisis incremental, supresión de advertencias y exclusión de archivos para gestionar grandes codebases. También cuenta con generación de informes HTML e integración con editores como VS Code para proporcionar identificación de errores durante el desarrollo.
Allows adjusting analysis precision and depth to balance the trade-off between detection thoroughness and execution speed.
SpotBugs is a static analysis tool and bytecode analyzer for Java applications. It scans compiled class files to identify bugs, security vulnerabilities, and performance issues without executing the code. The system functions as both a bug detector and a static application security testing tool to locate logical errors and API misuse. The project distinguishes itself through a plugin-based detector architecture that allows the integration of external libraries to add custom detection rules. It provides specialized security auditing for vulnerabilities such as SQL injection, cross-site scripti
Balances memory usage and computation cost by toggling interprocedural tracking and exception modeling.
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 context-sensitive modeling to differentiate between function calls and reduce false positives.
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
Determines points-to relationships using customizable data structures and algorithms such as flow-sensitive solvers.