EMZETT.
Login

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