EMZETT.
Login

Kurz: Eine Laufzeitumgebung ist die Plattform, auf der ein Programm läuft: sie führt Bytecode aus, verwaltet Speicher und Threads und bietet eine Standardbibliothek. Die bekanntesten sind die JVM (Java), die CLR (.NET), die BEAM (Erlang/Elixir) und die Browser-Engines für JavaScript.

Genauer: Mehrere Sprachen teilen sich oft dieselbe Laufzeit und können sich gegenseitig aufrufen. Wer die Laufzeit kennt, versteht Leistung, Fehlerbilder und Werkzeuge einer ganzen Sprachfamilie.

Im Detail

JVM (Java Virtual Machine)

Führt Bytecode (.class, .jar) aus. Mit JIT-Compiler, mehreren Garbage Collectors und riesigem Ökosystem (Maven Central). Sprachen: Java, Kotlin, Scala, Groovy. Einsatz: Unternehmenssoftware, Android (früher Dalvik/ART), Big Data (Spark, Kafka).

CLR (Common Language Runtime, .NET)

Die .NET-Laufzeit führt IL-Code aus; mit JIT und AOT. Sprachen: C#, F#, Visual Basic .NET, PowerShell. Ein gemeinsames Typsystem erlaubt, dass sie dieselben Bibliotheken (NuGet) nutzen. Läuft plattformübergreifend unter Windows, Linux und macOS.

BEAM (Erlang-VM)

Für Millionen leichtgewichtiger Prozesse mit Nachrichtenaustausch und Fehlertoleranz entworfen. Sprachen: Erlang, Elixir. Einsatz: Messaging, Telekommunikation, Echtzeit-Dienste. Code lässt sich im laufenden Betrieb austauschen (hot code loading).

Browser-Engines

V8 (Chrome, Node.js), SpiderMonkey (Firefox) und JavaScriptCore (Safari) führen JavaScript per JIT aus; WebAssembly (Wasm) erlaubt dort auch Rust, C, Go und andere. TypeScript, Dart und Nim lassen sich nach JavaScript übersetzen.

Interpreter-Laufzeiten

CPython (Python), MRI (Ruby), Zend (PHP), Lua-VM (Lua), Perl-Interpreter, Tcl: Sie übersetzen Quelltext in Bytecode und führen ihn in einer Schleife aus. Alternativen wie PyPy, LuaJIT oder PHP-JIT beschleunigen sie.

Native Toolchains und LLVM

C, C++, Rust, Swift, Zig und Julia nutzen häufig LLVM als gemeinsame Compiler-Infrastruktur; Go und Haskell (GHC) bringen eigene Backends mit. Ergebnis ist eine native Binärdatei ohne VM, aber mit kleinem Laufzeitsystem (GC, Scheduler).

Zusammenfassung

LaufzeitSprachenStärke
JVMJava, Kotlin, Scala, GroovyÖkosystem, Werkzeuge, Spitzenleistung
CLR/.NETC#, F#, VB.NET, PowerShellIntegration, Windows und Cross-Plattform
BEAMErlang, ElixirFehlertoleranz, Nebenläufigkeit
V8 & Co.JavaScript, TypeScriptüberall im Browser
NativC, C++, Rust, Go, Zig, SwiftGeschwindigkeit, geringer Speicher

Siehe auch: Kompiliert oder interpretiert?, Speicherverwaltung, Programmiersprachen im Überblick