15 repositorios
Tools that convert source code into structured representations to analyze patterns, constraints, or logic.
Distinct from Source Code Analysis: Shortlist candidates focus on vulnerability scanning, educational exercises, or web code, rather than general language syntax analysis.
Explore 15 awesome GitHub repositories matching programming languages & runtimes · Source Code Analysis Tools. 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.
Parses multiple programming languages into a unified format to analyze semantics and behavior across different files.
This project is a static code analysis tool that functions as a code unit resolver and source code line mapper. It identifies the specific function or method that contains a given line of code by analyzing the structure of source files without executing the program. The utility maps line numbers to their parent code units by examining the organization of source files and identifying the ownership of specific lines. It determines the boundaries of functions and methods through text-based structural parsing and range detection. These capabilities support source code analysis and static analysi
Analyzes the structure of source files to identify which function or method contains a specific line of code.
Este proyecto es una guía de programación satírica y una parodia de la calidad del código que sirve como catálogo de antipatrones de software. Proporciona una colección de principios de codificación intencionalmente malos diseñados para demostrar lo opuesto al código limpio y las mejores prácticas de la industria. Al implementar un conjunto de elecciones de diseño defectuosas y malos hábitos de codificación, el proyecto identifica errores comunes en la arquitectura de software. Utiliza estos ejemplos satíricos para resaltar la deuda técnica y las estructuras de código frágiles que conducen a problemas de mantenimiento e inestabilidad del sistema. El proyecto cubre dominios que incluyen el análisis de calidad de código y la educación en arquitectura de software, mapeando principios satíricos a fallas arquitectónicas del mundo real.
Includes methods for scanning source code to detect structural flaws aligned with poor design signatures.
danger-js es una herramienta de revisión de código automatizada y plugin de pipeline de CI que funciona como un linter de pull requests. Verifica mensajes de commit, rastrea cambios en dependencias y asegura que los pull requests cumplan con los estándares del proyecto publicando comentarios y feedback automatizados directamente en la interfaz de control de versiones. El sistema se integra con varios proveedores de Git, incluyendo GitHub, GitLab y BitBucket, para recuperar metadatos de pull requests y ejecutar reglas de revisión personalizadas. Permite a los equipos empaquetar y distribuir convenciones de revisión como módulos compartibles y admite la ejecución de reglas escritas en lenguajes transpilados mediante configuración de runtime. El proyecto cubre una amplia gama de capacidades de automatización, incluyendo gobernanza de calidad de código, auditorías de gestión de dependencias y la aplicación de etiqueta en pull requests. Puede analizar resultados de linters externos, ejecutores de pruebas y herramientas de cobertura para reportar fallos, monitorear tamaños de bundle y detectar anti-patrones o palabras prohibidas dentro del código base. La herramienta puede ejecutarse como un paso de compilación dentro de un pipeline de integración continua o localmente mediante git-hooks.
Scans code changes for problematic patterns or structural flaws and triggers warnings.
Este proyecto es un recurso educativo integral y un curso para construir redes neuronales usando PyTorch. Cubre los bloques de construcción fundamentales del deep learning, incluyendo la manipulación de tensores, la diferenciación automática y la construcción de componentes modulares de redes neuronales. El repositorio sirve como guía técnica para varios dominios especializados. Proporciona detalles de implementación para tareas de visión artificial como clasificación de imágenes, detección de objetos y segmentación semántica, así como flujos de trabajo de procesamiento de lenguaje natural que involucran transformers, redes recurrentes y modelos generativos. Además, incluye una referencia para IA generativa, centrándose específicamente en la síntesis de imágenes mediante modelos de difusión y redes adversarias. El material se extiende a pipelines de optimización y despliegue de modelos. Cubre técnicas para reducir el tamaño del modelo y aumentar la velocidad de inferencia mediante cuantización y la exportación de modelos a formatos como ONNX y TensorRT. Otras áreas de capacidad incluyen ingeniería de datos para carga paralela, evaluación de modelos mediante métricas personalizadas y el despliegue de modelos de lenguaje grandes (LLM) de código abierto. El proyecto se entrega principalmente como una serie de Jupyter Notebooks.
Uses large language models to analyze source code for the purpose of creating performance optimization tools.
phpDocumentor is a PHP API documentation generator and source code analyzer that transforms PHP files and DocBlocks into structured HTML API references. It functions as a static site generator and an automatic documentation tool designed to synchronize technical documentation with code changes. The project distinguishes itself by acting as a UML diagram generator, producing class and architectural graphs via PlantUML based on source analysis. It also supports technical manual authoring, rendering hand-written guides in Markdown and ReStructuredText alongside the automatically generated API re
Analyzes source code files to transform them into structured intermediate representations for processing.
Appledoc es un generador de documentación de Objective-C y generador de sitios estáticos que analiza comentarios de código fuente para crear conjuntos de documentación HTML estructurados. Su propósito principal es generar guías de referencia para desarrolladores profesionales que se adhieran a la documentación de estilo oficial de Apple. La herramienta se distingue por integrarse directamente en el proceso de compilación del proyecto mediante scripts de fase de compilación automatizados, asegurando que las guías técnicas se actualicen a medida que cambia el código. Proporciona una amplia personalización a través de plantillas HTML y CSS externas, así como un sistema de configuración de lista de propiedades para gestionar la configuración global y la resolución dinámica de rutas en tiempo de ejecución. El proyecto cubre una amplia gama de capacidades, incluyendo el análisis de código fuente para extraer firmas de miembros de API y organizar métodos en secciones estructuradas. Cuenta con referencias cruzadas automáticas entre clases y protocolos, la capacidad de importar contenido estático externo o markdown en el índice principal y la generación de conjuntos de documentación indexados específicamente para entornos de desarrollo integrados. El sistema también incluye utilidades para publicar versiones de documentación a través de archivos de archivo y actualizar feeds atom, junto con herramientas de depuración para verificar el estado final resuelto de los ajustes de configuración.
Parses specially formatted comments and method signatures in source code to automatically create structured API references.
Oclint is a static analysis engine and extensible linting framework designed for C, C++, and Objective-C source code. It functions as a code quality tool that identifies bugs, code smells, and structural complexities by parsing source code into abstract syntax trees to perform semantic inspection. The project is distinguished by its modular architecture, which supports dynamic plugin loading for custom inspection rules and a pluggable reporter system for exporting analysis findings in multiple formats. It replicates build configurations by reading compiler flags and include paths to ensure th
Inspects source code to identify potential bugs, code smells, and structural complexities.
react-docgen is a static analysis library and automated documentation tool designed to extract structured metadata from React component definitions. It functions as an AST-based code parser that transforms source code into machine-readable formats, enabling the programmatic generation of technical documentation and developer portals. The tool identifies component names, descriptions, and methods by analyzing source code without executing it. It specifically extracts detailed property information, including type definitions, default values, and human-readable descriptions derived from docblock
Analyzes source code to create structured representations of component states using static analysis.
swift-syntax is a library for parsing, manipulating, and generating Swift source code. It provides a source-accurate abstract syntax tree representation of Swift code, acting as a parser, transformer, and code generator. The project serves as the infrastructure for Swift macro development, enabling the expansion and transformation of source code during compilation. It is used to build compiler tooling for static analysis, formatting, and automated refactoring. The system covers a broad range of source analysis capabilities, including the ability to convert source code into structured trees f
Provides a comprehensive parser to convert Swift source code into structured trees for programmatic analysis.
OpenRewrite is an automated refactoring engine and source-to-source migration framework. It uses a lossless semantic tree parser to represent source code as type-aware trees that preserve original whitespace and formatting, enabling precise and deterministic modifications. The project utilizes a declarative refactoring pipeline where sequences of transformations are defined in YAML to resolve breaking changes and technical debt. It features type-aware pattern matching and cross-language model mapping to apply similar refactoring patterns across different programming languages. The framework
Converts source code into structured representations to collect metadata across all source files for targeted changes.
syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development, providing a framework to parse Rust source code into structured syntax trees for analysis and transformation. The project enables the manipulation of Rust abstract syntax trees through specialized visitor and folder patterns for traversing and mutating nodes. It provides a bidirectional mapping that allows developers to convert token streams into structured trees and print those trees back into tokens for code generation. The library covers a broad range of syntax analysis ca
Converts Rust tokens into searchable tree representations to analyze code patterns and enforce architectural constraints.
nvim-treesitter-context is a Neovim editor extension that provides structural awareness of source files by displaying sticky headers of surrounding code blocks. It utilizes Tree-sitter queries to identify parent functions and classes, keeping them visible at the top of the editor window while scrolling. The tool allows for language rule customization, enabling the definition of specific structural queries to modify how context is detected for different programming languages. Users can also adjust the visual appearance of the context window through custom highlight groups. Beyond visual orien
Analyzes the source code structure to enable jumping between a line of code and its parent definition.
This project serves as a comprehensive library and architectural guide for implementing established software design patterns within the Unity engine using C#. It provides a structured approach to organizing game logic, focusing on improving code maintainability, scalability, and long-term project health through proven structural solutions. The collection distinguishes itself by offering practical implementations of architectural patterns that decouple game systems, such as event dispatching and request handling, while providing tools to identify and rectify common coding anti-patterns. It fur
Provides tools to identify and rectify common coding anti-patterns to improve overall codebase quality.
This project is a backend service that implements the Language Server Protocol to provide IDE-integrated intelligence for PHP development. It functions as a static analysis tool that parses source code to enable advanced editor features, including autocompletion, symbol navigation, and definition resolution. The server distinguishes itself through its ability to operate within isolated containers and remote development environments. By utilizing a virtual file system abstraction and flexible communication protocols, it maintains project-wide symbol indexing and code analysis even when files a
Analyzes source code to power essential IDE features like jump-to-definition and symbol navigation.