Ein Transpiler übersetzt Quellcode von einer Sprache in eine andere gleichwertige Sprache — beide Seiten sind Hochsprachen. Anders als ein klassischer Compiler, der in Maschinencode oder Bytecode übersetzt, bleibt beim Transpilieren die Ausführungsebene erhalten.

Compiler, Interpreter, Transpiler

Ein Compiler erzeugt aus Quellcode ausführbaren Code. Ein Interpreter führt Quellcode direkt aus. Ein Transpiler ist ein Sonderfall: Er übersetzt von einer Hochsprache in eine andere, z.B. TypeScript nach JavaScript.

Typische Einsatzfälle

  • Neue Syntax in alten Umgebungen: Babel übersetzt modernes JavaScript (inkl. JSX) in eine Fassung, die ältere Browser verstehen.
  • Sprachwechsel: TypeScript, CoffeeScript oder Elm werden zu JavaScript transpiliert; SASS/LESS werden zu CSS.
  • Optimierung: Tools wie Webpack kombinieren das Transpilieren mit dem Bündeln und Minimieren von Modulen.

Transpiler vs. Compiler — die Grenze ist fließend

Viele Werkzeuge erledigen beides: Ein Compiler kann intern erst in eine Zwischensprache transpilieren und diese dann zu Maschinencode übersetzen. Auch TypeScript als Sprache hat einen eigenen Compiler, der im Kern transpiliert, weil das Ziel JavaScript bleibt. Der Begriff „Transpiler“ betont also die Art der Übersetzung, nicht die Qualität des Werkzeugs.

Praxis-Tipps

  • Transpilierte Ausgaben niemals von Hand anfassen — immer die Quelldatei bearbeiten.
  • Source Maps aktivieren, damit der Debugger im Originalcode arbeitet.
  • Build-Schritte gehören in die Deployment-Pipeline und laufen dort reproduzierbar.

Verwandte Grundlagen: Compiler, Interpreter, Babel, React, Webpack.