Übersetzungszeit

In der Informatik wird der Begriff Übersetzungszeit oder Compile-Zeit mit Operationen assoziiert, die von einem Compiler im gleichen Zeitraum wie die Erzeugung des Objektcodes durchgeführt werden. Die Übersetzungszeit bildet damit das Gegenstück zur Laufzeit (Runtime).

Compiler führen typischerweise zur Compilezeit Analysen der zu übersetzenden Programme durch. Bei statisch typisierten Programmiersprachen wie Java, C#, Pascal oder Haskell gehört dazu die Prüfung der Einhaltung der Typverträglichkeit bei Zuweisungen und bei Übergaben von Parametern an Unterprogramme. Das Expandieren von Templates (z. B. bei C++) ist eine weitere Operation, die zur Übersetzungszeit stattfindet.

Im Regelfall folgt relativ direkt nach der Übersetzung des Quellcodes eines Programms das Binden (Linken), währenddessen die Objektdateien mehrerer Programmteile miteinander verknüpft werden. Die spätere Ausführung des Programms (Laufzeit) steht dagegen meist nicht in einem direkten Zusammenhang mit der Übersetzung. Bei Programmiersprachen, die keinen Compiler besitzen und interpretiert werden, gibt es meist keine Übersetzungszeit im eigentlichen Sinne. Teilweise wird aber mit Hilfe des Just-in-time-Kompilierens auch bei interpretierten Sprachen eine Kompilierung durchgeführt. Die hier aufgewendete Zeit wird aber üblicherweise nicht mehr als Übersetzungszeit gewertet, sondern der Laufzeit des Programms zugeordnet.

Eine Strategie zur Verbesserung der Softwarequalität ist es, möglichst viele Prüfungen zur Übersetzungszeit durchführen zu lassen, um Fehler nicht erst zur Laufzeit, das heißt während des eigentlichen Einsatzes des Programms, zu erkennen.