5 Repos
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 ist eine auf Haskell basierende Bibliothek und ein Kommandozeilen-Tool für die polyglotte Quellcode-Analyse. Es fungiert als Framework für statische Programmanalyse und als polyglotter Parser für abstrakte Syntaxbäume, der verschiedene Programmiersprachen in strukturierte Syntaxbäume auf Basis von Grammatikdefinitionen umwandelt. Das System zeichnet sich durch eine semantische Code-Vergleichs-Engine aus, die strukturelle und inhaltliche Änderungen zwischen Code-Versionen erkennt, anstatt sich auf rein textuelle Unterschiede zu verlassen. Es ermöglicht zudem die Analyse über verschiedene Programmiersyntaxen hinweg, indem es Oberflächensprachen in eine einheitliche, polyglotte Zwischenrepräsentation übersetzt. Das Framework bietet eine breite Palette an Funktionen für das Parsen von Sprachen wie Rust, Go, Python, Ruby, PHP, TypeScript und TSX. Es deckt die semantische Analyse durch Code-Scope-Mapping, Extraktion von Symbolen und die Generierung semantischer Graphen ab, ergänzt durch Werkzeuge zur Musteranalyse und Bewertung des Programmverhaltens. Das Toolset enthält Kommandozeilen-Dienstprogramme zur Standardisierung von Haskell-Quellcodedateien.
Adjusts the performance and sensitivity of program analyses to balance speed against result detail.
Cppcheck ist ein statisches Analysetool und Linter für C- und C++-Quellcode, das darauf ausgelegt ist, Programmierfehler, Speicherlecks und Sicherheitsverletzungen zu erkennen, ohne das Programm auszuführen. Es fungiert als Bug-Detection-Engine und Qualitätssicherungstool, um Nebenläufigkeitsprobleme, Type-Cast-Fehler und die Einhaltung sicherer Codierungsstandards zu identifizieren. Das Projekt bietet eine grafische Benutzeroberfläche zur Auswahl von Dateien und zur Überprüfung von Fehlern sowie einen Linter zur Durchsetzung von Namenskonventionen und Codierungsstandards. Es unterstützt die Erstellung benutzerdefinierter Analyse-Regeln mittels regulärer Ausdrücke, um spezifische Codierungsmuster zu identifizieren. Das Tool umfasst Funktionen für inkrementelle Analyse, Warnungsunterdrückung und Dateiausschluss, um große Codebasen zu verwalten. Zudem bietet es HTML-Berichterstellung und Integration in Editoren wie VS Code, um Fehleridentifizierung während der Entwicklung zu ermöglichen.
Allows adjusting analysis precision and depth to balance the trade-off between detection thoroughness and execution speed.
SpotBugs ist ein statisches Analysetool und Bytecode-Analyzer für Java-Anwendungen. Es scannt kompilierte Klassendateien, um Bugs, Sicherheitslücken und Leistungsprobleme zu identifizieren, ohne den Code auszuführen. Das System fungiert sowohl als Bug-Detektor als auch als Tool für statische Anwendungssicherheitstests (SAST), um logische Fehler und API-Missbrauch aufzuspüren. Das Projekt zeichnet sich durch eine Plugin-basierte Detektor-Architektur aus, die die Integration externer Bibliotheken zur Hinzufügung benutzerdefinierter Erkennungsregeln ermöglicht. Es bietet spezialisierte Sicherheitsaudits für Schwachstellen wie SQL-Injection, Cross-Site Scripting und Path Traversal sowie ein modulares System zur Verfeinerung der Analysepräzision und Reduzierung von False Positives. Das Tool deckt ein breites Spektrum an Erkennungsbereichen ab, einschließlich Synchronisationsfehlern bei Nebenläufigkeit, Null-Pointer-Dereferenzierungen, Ressourcenlecks und Typumwandlungsfehlern. Es identifiziert zudem toten Code, Leistungsineffizienzen und Verstöße gegen Serialisierungs-Idiome. Diese Funktionen sind über eine Kommandozeilenschnittstelle, eine grafische Benutzeroberfläche und die direkte Integration in IDEs zugänglich. SpotBugs kann in Build-Pipelines integriert werden, um Qualitäts-Gates durchzusetzen und Analyseberichte in HTML- oder XML-Formaten zu generieren.
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.