Code2Logic: AST-Based Code Analysis with PageRank - Status Projektu Luty 2026

Code2Logic v1.0.11 — narzędzie do analizy kodu źródłowego z AST parsing, PageRank, multi-format output (TOON, YAML, function-logic). Obsługa 10+ języków. Status: Production Ready

2026-02-10Softreck

Code2Logic: AST-Based Code Analysis

Status: ✅ Production Ready
Wersja: 1.0.11 (PyPI)
Accuracy: 71.1% reproduction
Technologies: Tree-sitter, PageRank, Python

Co to jest Code2Logic?

Code2Logic to narzędzie badawcze do analizy kodu źródłowego, które wykorzystuje:

  • Tree-sitter do parsowania AST (Abstract Syntax Tree)
  • Algorytm PageRank do rankingu ważności komponentów
  • Graph analysis do identyfikacji zależności

Cel: automatyczne zrozumienie struktury i logiki dużych baz kodu.

Motywacja

Przy pracy z legacy codebase lub nieznanym projektem, programiści spędzają 60-70% czasu na zrozumieniu istniejącego kodu. Code2Logic ma na celu:

  1. Identyfikację kluczowych plików i funkcji
  2. Mapowanie zależności między modułami
  3. Sugestię punktów wejścia do analizy
  4. Generowanie dokumentacji struktury

Architektura

┌─────────────────────────────────────────────────────────┐
│                    Code2Logic Pipeline                   │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌──────────┐    ┌──────────┐    ┌──────────────┐       │
│  │  Source  │───▶│ Tree-    │───▶│ Dependency   │       │
│  │  Code    │    │ sitter   │    │ Graph        │       │
│  └──────────┘    └──────────┘    └──────────────┘       │
│                        │                │               │
│                        ▼                ▼               │
│                  ┌──────────┐    ┌──────────────┐       │
│                  │   AST    │    │  PageRank    │       │
│                  │  Nodes   │    │  Scoring     │       │
│                  └──────────┘    └──────────────┘       │
│                        │                │               │
│                        ▼                ▼               │
│                  ┌─────────────────────────────┐        │
│                  │     Analysis Report         │        │
│                  └─────────────────────────────┘        │
└─────────────────────────────────────────────────────────┘

Obsługiwane Języki

JęzykParserStatus
Pythontree-sitter-python✅ Pełne
JavaScripttree-sitter-javascript✅ Pełne
TypeScripttree-sitter-typescript✅ Pełne
Gotree-sitter-go✅ Pełne
Rusttree-sitter-rust✅ Pełne
Javatree-sitter-java✅ Pełne
C#tree-sitter-c-sharp✅ Pełne
SQLtree-sitter-sql✅ Pełne
.mjs/.cjs/.mts/.ctstree-sitter-javascript✅ Nowe
Pliki bez rozszerzeniaShebang detection✅ Nowe

Wyniki Badań

Benchmark: Reproduction Accuracy

Test polegał na rekonstrukcji dokumentacji z samego kodu:

ProjektAccuracyFilesLOC
Flask73.2%8912,400
FastAPI69.8%15628,300
Django (core)71.4%23445,600
Średnia71.1%--

Kluczowe Wnioski

  1. PageRank skutecznie identyfikuje entry points - pliki z wysokim PR score często są głównymi punktami wejścia (main.py, app.py, index.js)

  2. Zależności cykliczne zaburzają scoring - projekty z circular imports mają niższą accuracy

  3. Komentarze i docstrings poprawiają wyniki - projekty z dobrą dokumentacją inline mają +8-12% accuracy

Użycie

from code2logic import Analyzer
# Analiza projektu
analyzer = Analyzer("./my-project")
results = analyzer.analyze()
# Top 10 najważniejszych plików
for file, score in results.top_files(10):
print(f"{file}: {score:.3f}")
# Graf zależności
results.export_graph("dependencies.dot")
# Raport markdown
results.generate_report("analysis.md")

Formaty Wyjściowe

FormatStatusOpis
TOON✅ StabilnyToken-Oriented Object Notation — kompaktowy
YAML✅ StabilnyVerbose mode z pełnymi detalami
Function Logic✅ StabilnyLogika funkcji w pseudokodzie
Markdown✅ StabilnyRaport czytelny dla człowieka
JSON✅ StabilnyMaszynowo przetwarzalny

Status Komponentów

KomponentStatusUwagi
Tree-sitter Parsing✅ Stabilny10+ języków
PageRank Algorithm✅ StabilnyCustomizable damping
Dependency Graph✅ StabilnyImport/export detection
TOON Generator✅ StabilnyKompaktowy format LLM-friendly
YAML Generator✅ StabilnyVerbose mode
Function Logic✅ StabilnyPseudokod logiki
Report Generation✅ StabilnyMarkdown, JSON
Shebang Detection✅ StabilnyPython/Node bez rozszerzenia
Re-export Detection✅ StabilnyJS/TS/Python
Visualization🔄 In ProgressD3.js interactive
LLM Summaries⏳ PlannedQ2 2026

Wyzwania

Dynamic Imports

Języki z dynamic imports (Python importlib, JS require()) są trudne do analizy statycznej.

Rozwiązanie: Heurystyki oparte o patterns + opcjonalna analiza runtime

Monorepo Support

Duże monorepa z wieloma pakietami wymagają segmentacji.

Rozwiązanie: Automatic package boundary detection

Roadmap

Q1 2026

  • Java, C#, SQL parser
  • .mjs/.cjs/.mts/.cts support
  • Shebang detection (pliki bez rozszerzenia)
  • TOON format output
  • YAML verbose output
  • Function Logic output
  • Re-export detection (JS/TS/Python)
  • Interactive visualization (D3.js)
  • VS Code extension

Q2 2026

  • LLM-enhanced summaries
  • API documentation generation
  • CI/CD integration

Publikacje

  • "Applying PageRank to Code Dependency Analysis" - draft paper
  • Blog post: "How We Achieved 71% Reproduction Accuracy"

Linki


Ostatnia aktualizacja: 10 lutego 2026