5 dépôts
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 est une bibliothèque basée sur Haskell et un outil en ligne de commande conçu pour l'analyse de code source polyglotte. Il fonctionne comme un framework d'analyse statique et un parseur d'arbres de syntaxe abstraite (AST) capable de convertir plusieurs langages de programmation en arbres structurés basés sur des définitions de grammaire. Le système se distingue par son moteur de comparaison sémantique qui détecte les changements structurels et fonctionnels entre les versions de code, plutôt que de se limiter aux différences textuelles. Il permet une analyse transversale en traduisant les langages sources en une représentation intermédiaire polyglotte unifiée. Le framework offre une large gamme de capacités pour parser des langages comme Rust, Go, Python, Ruby, PHP, TypeScript et TSX. Il couvre l'analyse sémantique via le mappage de portée, l'extraction de symboles, la génération de graphes sémantiques, ainsi que des outils d'analyse de motifs et d'évaluation du comportement des programmes. L'ensemble d'outils inclut des utilitaires en ligne de commande pour standardiser la mise en page des fichiers sources Haskell.
Adjusts the performance and sensitivity of program analyses to balance speed against result detail.
Cppcheck est un outil d'analyse statique et un linter pour le code source C et C++ conçu pour détecter les erreurs de programmation, les fuites de mémoire et les violations de sécurité sans exécuter le programme. Il fonctionne comme un moteur de détection de bugs et un outil d'assurance qualité pour identifier les problèmes de concurrence, les erreurs de transtypage et la conformité aux standards de codage sécurisé. Le projet fournit une interface utilisateur graphique pour sélectionner les fichiers et examiner les erreurs, ainsi qu'un linter pour faire respecter les conventions de nommage et les standards de codage. Il supporte la création de règles d'analyse personnalisées utilisant des expressions régulières pour identifier des patterns de codage spécifiques. L'outil inclut des capacités pour l'analyse incrémentale, la suppression d'avertissements et l'exclusion de fichiers pour gérer les grandes bases de code. Il propose également la génération de rapports HTML et l'intégration avec des éditeurs comme VS Code pour fournir une identification des erreurs pendant le développement.
Allows adjusting analysis precision and depth to balance the trade-off between detection thoroughness and execution speed.
SpotBugs est un outil d'analyse statique et un analyseur de bytecode pour les applications Java. Il scanne les fichiers de classe compilés pour identifier les bugs, les vulnérabilités de sécurité et les problèmes de performance sans exécuter le code. Le système fonctionne à la fois comme un détecteur de bugs et un outil de test de sécurité d'application statique pour localiser les erreurs logiques et les abus d'API. Le projet se distingue par une architecture de détecteur basée sur des plugins qui permet l'intégration de bibliothèques externes pour ajouter des règles de détection personnalisées. Il fournit un audit de sécurité spécialisé pour les vulnérabilités telles que l'injection SQL, le cross-site scripting et le path traversal, parallèlement à un système modulaire pour affiner la précision de l'analyse et réduire les faux positifs. L'outil couvre un large éventail de domaines de détection, y compris les erreurs de synchronisation de concurrence, les déréférencements de pointeurs nuls, les fuites de ressources et les erreurs de transtypage. Il identifie également le code mort, les inefficacités de performance et les violations des idiomes de sérialisation. Ces capacités sont accessibles via une interface de ligne de commande, une interface utilisateur graphique et une intégration directe au sein des environnements de développement intégrés. SpotBugs peut être intégré dans des pipelines de build pour appliquer des portes de qualité et générer des rapports d'analyse aux formats HTML ou 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.