awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetServeur MCPÀ proposNotre méthodologiePresse
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
github avatar

github/semanticArchived

0
View on GitHub↗
9,041 stars·459 forks·Haskell·28 vues

Semantic

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.

Features

  • Semantic Code Analyzers - Implements semantic analysis to produce graphs and scope information by examining relationships and meanings within source code.
  • Static Analysis Frameworks - Provides a framework for mapping code scopes and extracting symbols to analyze program behavior.
  • Code Symbol Extractors - Provides specialized tools for identifying and indexing named identifiers and types within source code files.
  • Code Version Comparisons - Identifies structural and meaning-based changes between versions of source code instead of relying on simple text diffs.
  • Scope-Aware Graphs - Analyzes identifier visibility and accessibility to construct graphs mapping the relationships and meanings within a codebase.
  • Lexical Scope Analysis - Analyzes abstract syntax trees to determine the visibility and accessibility of identifiers across different scopes.
  • Symbol Indexing - Identifies and indexes named identifiers and types from source code to facilitate fast navigation and lookup.
  • Intermediate Representation Translation - Translates multiple surface languages into a unified internal language to enable consistent analysis across different programming syntaxes.
  • Polyglot AST Parsers - Converts multiple programming languages into structured syntax trees based on formal grammar definitions.
  • Polyglot Source Code Analyzers - Provides a library and CLI for parsing source code into abstract syntax trees and semantic graphs.
  • Polyglot Analyzers - Parses multiple programming languages into a unified format to analyze semantics and behavior across different files.
  • Source File Parsing - Converts source code from files or strings into abstract syntax trees using grammar definitions for multiple languages.
  • Typed Abstract Syntax Trees - Produces strongly typed abstract syntax trees from language definitions to enable structured static analysis.
  • Code Analysis Tools - Provides structural indexing and symbol extraction to facilitate codebase navigation and logic understanding.
  • Abstract Syntax Tree Generation - Converts raw source code into typed tree representations for deep structural analysis and developer tooling.
  • Structural Comparison Tools - Detects changes between versions of structured code using specialized tree difference algorithms.
  • AST Generators - Produces strongly typed abstract syntax trees by applying formal language grammar definitions to raw source text.
  • AST Difference Algorithms - Employs specialized tree-based diffing to identify structural and semantic changes between hierarchical versions of source code.
  • Static Analysis Pattern Matching - Identifies structural patterns and potential vulnerabilities within a codebase using static analysis.
  • Analysis Data Modeling - Uses protobuf schemas to define and generate structured data types for representing source code and semantic analysis results.
  • Go Parsers - Parses and analyzes Go source code to extract semantic information for processing or comparison.
  • Language Representation Types - Automates the creation of strongly typed Haskell data structures to represent language-specific syntax and semantics.
  • PHP Parsers - Analyzes PHP code to produce a structured representation for programmatic analysis and comparison.
  • Program Behavior Analysis - Analyzes source code by interpreting an intermediate language to extract program behavior and properties.
  • Python AST Parsing - Analyzes Python code to extract structured semantic information for use in program analysis or comparison.
  • Ruby Parsers - Analyzes Ruby source files to extract structural information and semantic data for code analysis.
  • TSX Parsers - Analyzes TypeScript JSX files to extract a structured representation of the source code for study.
  • TypeScript Parsers - Converts TypeScript code into a structured representation for programmatic analysis and comparison.
  • Rust Parsers - Analyzes Rust source code to extract semantic information and structure for further processing.
  • Developer Utilities - Tool for parsing and analyzing source code.

Historique des stars

Graphique de l'historique des stars pour github/semanticGraphique de l'historique des stars pour github/semantic

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Semantic

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Semantic.
  • chai2010/go-ast-bookAvatar de chai2010

    chai2010/go-ast-book

    5,510Voir sur GitHub↗

    go-ast-book is a collection of educational and technical resources focused on abstract syntax tree analysis, compiler development, and static code verification. It provides guides and manuals for parsing, traversing, and analyzing Go source code to extract semantic meaning. The project serves as a reference for building compiler frontends, covering the translation of high-level code into intermediate representations and single static assignment forms. It also provides instructions for using these techniques to develop language tooling and perform static code analysis. The resources cover a b

    Go
    Voir sur GitHub↗5,510
  • dtolnay/synAvatar de dtolnay

    dtolnay/syn

    3,292Voir sur GitHub↗

    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

    Rustproc-macro
    Voir sur GitHub↗3,292
  • svf-tools/svfAvatar de SVF-tools

    SVF-tools/SVF

    1,684Voir sur GitHub↗

    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

    C++code-analysiscode-securitydependency-analysis
    Voir sur GitHub↗1,684
  • aldanial/clocAvatar de AlDanial

    AlDanial/cloc

    23,201Voir sur GitHub↗

    cloc is a codebase metrics tool and multi-language code analyzer designed to count blank lines, comment lines, and physical lines of code. It serves as a source code line counter and report generator that identifies file types to calculate source volume across a wide variety of programming languages. The tool distinguishes itself by providing codebase version comparison to measure relative changes in source and comment lines between two versions of a directory or archive. It also supports the definition of custom languages and the extension of language recognition by loading custom comment fi

    Perl
    Voir sur GitHub↗23,201
Voir les 30 alternatives à Semantic→

Questions fréquentes

Que fait github/semantic ?

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.

Quelles sont les fonctionnalités principales de github/semantic ?

Les fonctionnalités principales de github/semantic sont : Semantic Code Analyzers, Static Analysis Frameworks, Code Symbol Extractors, Code Version Comparisons, Scope-Aware Graphs, Lexical Scope Analysis, Symbol Indexing, Intermediate Representation Translation.

Quelles sont les alternatives open-source à github/semantic ?

Les alternatives open-source à github/semantic incluent : chai2010/go-ast-book — go-ast-book is a collection of educational and technical resources focused on abstract syntax tree analysis, compiler… dtolnay/syn — syn is a Rust syntax tree parser and token stream converter. It serves as a toolkit for procedural macro development,… svf-tools/svf — SVF is an open-source static program analysis framework and points-to analysis library that tracks memory references,… aldanial/cloc — cloc is a codebase metrics tool and multi-language code analyzer designed to count blank lines, comment lines, and… typestrong/typedoc — TypeDoc is a documentation generator and AST analyzer that transforms TypeScript source code and comments into… universal-ctags/ctags — Universal Ctags is a multi-language symbol indexer and regex-based parsing engine used to extract and catalog…