REPL (Read-Eval-Print-Loop)
Kurz: Eine REPL ist eine interaktive Konsole: Sie liest (Read) eine Eingabe, wertet sie aus (Eval), gibt das Ergebnis aus (Print) und wiederholt das (Loop). So probiert man Code Zeile für Zeile aus.
Genauer: REPLs eignen sich zum Lernen, Experimentieren und Debuggen. Man startet sie in der Regel durch Eingabe des Sprachnamens im Terminal. Ihr Ursprung liegt in Lisp; heute bieten fast alle Sprachen eine REPL.
Im Detail
python3 # >>> 1 + 2 gibt 3 aus
node # > [1,2,3].map(x => x * 2)
jshell # Java ab Version 9
irb # Ruby
ghci # Haskell
iex # Elixir
sbcl # Common Lisp
racket
swipl # Prolog>>> x = 5
>>> x * 2
10
>>> import math
>>> math.sqrt(16)
4.0
>>> help(len)Nutzen
- Schnelles Feedback: Eine Idee in Sekunden testen, ohne Datei und Build.
- Erkunden von Bibliotheken: Funktionen aufrufen, Rückgaben ansehen,
help()lesen. - Debugging: Zustände prüfen und ändern.
- Lernen: Jede Anweisung einzeln beobachten.
In Lisp, Clojure, Racket oder Erlang prägt die REPL den ganzen Entwicklungsstil (REPL-driven development): Man verändert ein laufendes Programm, statt es neu zu starten. Ähnlich arbeiten Notebooks (Jupyter) mit Zellen. Gegenstück ist der Ablauf mit Compiler und fertiger Datei; REPLs gehören typischerweise zu Interpretern, gibt es aber auch für kompilierte Sprachen (z. B. evcxr für Rust, ghci).
Siehe auch: Interpreter, Debugging, Programmiersprachen im Überblick