Werkzeuge: Linker, Compiler, Interpreter, Debugger, Testssoftware
Dieser Beitrag ist eine Begriffserklärung zur Toolchain – inklusive Prüfungsfragen, Kernkomponenten und Tags.
In a Nutshell
- Compiler übersetzen Quelltext in maschinennahe Repräsentationen.
- Linker fügt Objektdateien und Bibliotheken zu Programmen zusammen.
- Interpreter führt Code direkt oder via Bytecode/VM aus.
- Debugger inspiziert und steuert Laufzeit.
- Testssoftware prüft Verhalten automatisiert.
Kompakte Fachbeschreibung
Build-Kette
Typisch:
- Präprozessor
- Compiler (AST/IR → Objektcode)
- Assembler
- Linker (Symbolauflösung, Relocation, Executable z.B. ELF)
Binden:
- statisch: Bibliothek wird eingebettet
- dynamisch: Bibliothek wird zur Laufzeit geladen
Interpreter / VM
- Bauminterpretation (AST)
- Bytecode + VM
- JIT (Just-in-Time) für mehr Durchsatz
Debugger
Breakpoints, Step Into/Over, Watches, Call Stack, Speicherinspektion, Core Dump Analyse.
Testssoftware
Testframework, Runner, Assertions, Mocks, Coverage + Berichtswesen. In CI/CD automatisiert.
Prüfungsrelevante Stichpunkte
- Artefaktfluss: Quelltext → Objektdatei → Binary
- statisch vs dynamisch binden
- Bytecode/VM/JIT erklären
- Debugger: Symbole, Breakpoints, Call Stack
- Testpyramide: Unit/Integration/System/Abnahme
- Dokumentation: Toolversionen, Buildskripte, Testberichte
Kernkomponenten
- Präprozessor
- Compiler (Parser/AST/IR)
- Assembler
- Linker
- Loader/dynamischer Binder
- Interpreter/VM
- Debugger
- Testframework/Runner
- CI/CD-Automatisierung
- Reports/Logs/Coverage
Praxisbeispiel (Ablauf)
1) Kompilieren: summe.c -> summe.o
2) Linken: summe.o + main.o -> programm
3) Debug: Breakpoint in addiere(), Watch a,b
4) Tests: Unit-Test addiere(2,3)=5, Integrationstest CLI-Ausgabe
Vorteile und Nachteile
- Compiler: schnell, gute Optimierung; aber Buildzeit/Portabilität
- Interpreter: schnell iterieren; aber Laufzeit-Overhead
- Testssoftware: frühe Fehlererkennung; aber Pflegeaufwand
Typische Prüfungsfragen (mit Kurzantwort)
- Compiler vs Interpreter? Compiler vorab, Interpreter zur Laufzeit.
- Was macht der Linker? Symbole auflösen und Binary erzeugen.
- Welche Teststufen? Unit, Integration, System, Abnahme.
- Wie hilft Debugger? Breakpoints, Schrittmodus, Stackanalyse.