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

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
github avatar

github/semanticArchived

0
View on GitHub↗
9,041 stele·459 fork-uri·Haskell·12 vizualizări

Semantic

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.

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.

Istoric stele

Graficul istoricului de stele pentru github/semanticGraficul istoricului de stele pentru github/semantic

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Întrebări frecvente

Ce face github/semantic?

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.

Care sunt principalele funcționalități ale github/semantic?

Principalele funcționalități ale github/semantic sunt: Semantic Code Analyzers, Static Analysis Frameworks, Code Symbol Extractors, Code Version Comparisons, Scope-Aware Graphs, Lexical Scope Analysis, Symbol Indexing, Intermediate Representation Translation.

Care sunt câteva alternative open-source pentru github/semantic?

Alternativele open-source pentru github/semantic includ: 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…

Alternative open-source pentru Semantic

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Semantic.
  • chai2010/go-ast-bookAvatar chai2010

    chai2010/go-ast-book

    5,510Vezi pe 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
    Vezi pe GitHub↗5,510
  • dtolnay/synAvatar dtolnay

    dtolnay/syn

    3,292Vezi pe 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
    Vezi pe GitHub↗3,292
  • svf-tools/svfAvatar SVF-tools

    SVF-tools/SVF

    1,684Vezi pe 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
    Vezi pe GitHub↗1,684
  • aldanial/clocAvatar AlDanial

    AlDanial/cloc

    23,201Vezi pe 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
    Vezi pe GitHub↗23,201
Vezi toate cele 30 alternative pentru Semantic→