Begriff
Static Analyzer / Linter
Werkzeuge, die Quellcode ohne Ausführung gegen formale Regeln prüfen — auf Basis von Syntaxbaum (AST) und Kontrollflussgraph. Sie arbeiten deterministisch und erschöpfend, anders als probabilistische LLMs.
Static Analyzer / Linter — ausführlicher erklärt
Ein Static Analyzer prüft Quellcode, ohne ihn auszuführen. Das Werkzeug parst den Code zunächst in ein vollständiges formales Modell — typischerweise einen Syntaxbaum (AST, Abstract Syntax Tree) und einen Kontrollflussgraphen — und wendet darauf einen festen Satz von Regeln an. Ein Linter ist die leichtgewichtige Variante davon: Er meldet Stil-Verstöße, verdächtige Muster und einfache Fehlerklassen.
Der entscheidende Charakterzug ist, dass diese Analyse deterministisch und erschöpfend ist. Deterministisch heißt: Derselbe Input liefert garantiert dasselbe Ergebnis — zweimal derselbe Code, zweimal exakt dieselben Befunde. Erschöpfend heißt: Das Werkzeug prüft jede Stelle, auf die eine Regel zutrifft, nicht nur eine Stichprobe. Beides folgt direkt daraus, dass über einem vollständigen Modell des Codes gegen klar definierte Regeln gerechnet wird.
Beispiel / Praxisbezug
Typische Vertreter sind ESLint (JavaScript/TypeScript), Ruff und Pylint (Python), clippy (Rust) oder SonarQube (sprachübergreifend). Ein Linter findet etwa eine ungenutzte Variable, einen vergessenen await, eine unerreichbare Code-Zeile oder eine Sicherheitsregel-Verletzung — immer an allen betroffenen Stellen, immer reproduzierbar im CI-Lauf.
Spannend wird es im Zusammenspiel mit KI-gestütztem Code-Review: Ein LLM arbeitet probabilistisch und selektiv — es liest Code wie ein Mensch, erkennt Absichten und logische Fehler, übersieht aber je nach Lauf mal das eine, mal das andere. Ein Static Analyzer arbeitet deterministisch und vollständig — er findet jede Regel-Verletzung zuverlässig, versteht aber nicht, ob der Code das Richtige tun soll. Die beiden Ansätze ergänzen sich daher, statt sich zu ersetzen: Der Linter sichert die regelbasierte Grundlinie ab, das LLM ergänzt das kontextuelle Urteil.
Abgrenzung zu ähnlichen Begriffen
Von der dynamischen Analyse (Tests, Profiler, Sanitizer) unterscheidet sich die statische Analyse dadurch, dass sie den Code gar nicht erst ausführt — sie braucht keine Laufzeitumgebung und keine Testdaten. Ein Compiler prüft zwar ebenfalls statisch, sein Ziel ist aber die Übersetzung; ein Static Analyzer geht über reine Übersetzbarkeit hinaus und bewertet Qualität, Stil und Fehleranfälligkeit. Vom LLM-Code-Review grenzt er sich durch Determinismus und Vollständigkeit ab — der Preis dafür ist, dass er nur das findet, wofür es eine explizit formulierte Regel gibt.
Entdecke mehr
Git Branch
Ein Branch ist eine eigenständige Entwicklungslinie in einem Git-Repository — ein bewegender Zeiger auf einen Commit, der parallele Arbeit ohne Konflikte mit dem Hauptcode ermöglicht.
LexikonGit-Grundlagen fuer Nicht-Entwickler
Was Versionskontrolle ist, welches Problem Git loest und das Mentalmodell dahinter: Repository, Commit, Branch, Merge und Remote, verstaendlich erklaert.
GlossarGitHub
GitHub ist die größte Hosting-Plattform für Git-Repositories — mit Pull Requests, Code Review, Issues und CI/CD über GitHub Actions als Standard-Werkzeugkasten der Software-Entwicklung.