5 repository-uri
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 este o bibliotecă bazată pe Haskell și un instrument CLI conceput pentru analiza poliglotă a codului sursă. Funcționează ca un framework de analiză statică a programelor și ca un parser poliglot de arbori de sintaxă abstractă (AST), care convertește codul din mai multe limbaje de programare în arbori de sintaxă structurați, pe baza definițiilor gramaticale. Sistemul se distinge printr-un motor de comparare semantică a codului care detectează modificările structurale și de logică între versiuni, în loc să se bazeze pe diferențe textuale. De asemenea, permite analiza între sintaxe diferite prin traducerea limbajelor de nivel înalt într-o reprezentare intermediară poliglotă unificată. Framework-ul oferă o suită largă de capabilități pentru parsarea limbajelor precum Rust, Go, Python, Ruby, PHP, TypeScript și TSX. Acoperă analiza semantică prin maparea scopului codului, extragerea simbolurilor și generarea de grafuri semantice, alături de instrumente pentru analiza modelelor și evaluarea comportamentului programelor. Setul de instrumente include utilitare CLI pentru standardizarea layout-ului fișierelor sursă Haskell.
Adjusts the performance and sensitivity of program analyses to balance speed against result detail.
Cppcheck este un instrument de analiză statică și linter pentru codul sursă C și C++, conceput pentru a detecta erori de programare, scurgeri de memorie și încălcări de securitate fără a executa programul. Funcționează ca un motor de detectare a bug-urilor și instrument de asigurare a calității pentru a identifica probleme de concurență, erori de tip cast și conformitatea cu standardele de codare securizată. Proiectul oferă o interfață grafică pentru selectarea fișierelor și revizuirea erorilor, alături de un linter pentru impunerea convențiilor de denumire și a standardelor de codare. Susține crearea de reguli de analiză personalizate folosind expresii regulate pentru a identifica tipare specifice de codare. Instrumentul include capabilități pentru analiză incrementală, suprimarea avertismentelor și excluderea fișierelor pentru a gestiona codebase-uri mari. De asemenea, oferă generare de rapoarte HTML și integrare cu editoare precum VS Code pentru a oferi identificarea erorilor în timpul dezvoltării.
Allows adjusting analysis precision and depth to balance the trade-off between detection thoroughness and execution speed.
SpotBugs este un instrument de analiză statică și un analizor de bytecode pentru aplicații Java. Acesta scanează fișierele de clasă compilate pentru a identifica bug-uri, vulnerabilități de securitate și probleme de performanță fără a executa codul. Sistemul funcționează atât ca un detector de bug-uri, cât și ca un instrument de testare statică a securității aplicațiilor pentru a localiza erori logice și utilizarea greșită a API-urilor. Proiectul se distinge printr-o arhitectură de detectare bazată pe plugin-uri care permite integrarea bibliotecilor externe pentru a adăuga reguli de detectare personalizate. Oferă audit de securitate specializat pentru vulnerabilități precum SQL injection, cross-site scripting și path traversal, alături de un sistem modular pentru rafinarea preciziei analizei și reducerea rezultatelor fals pozitive. Instrumentul acoperă o gamă largă de zone de detectare, inclusiv erori de sincronizare a concurenței, dereferențieri de pointeri nuli, scurgeri de resurse și erori de type casting. De asemenea, identifică codul mort, ineficiențele de performanță și încălcările idiomurilor de serializare. Aceste capabilități sunt accesibile printr-o interfață de linie de comandă, o interfață grafică și integrare directă în mediile de dezvoltare integrate (IDE). SpotBugs poate fi integrat în pipeline-urile de build pentru a impune porți de calitate și a genera rapoarte de analiză în formate HTML sau XML.
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.