Ein Precompiler (auch Präkompilierer, Präcompiler, Vorkompilierer oder Vorübersetzer genannt) ist ein Computerprogramm in der Softwareentwicklung, das einen Quellcode in einem Durchlauf vor dem eigentlichen Compiler bearbeitet.[1][2] Precompiler kommen zum Einsatz, wenn mit einer bestehenden Programmiersprache (Zielsprache) neue Konstrukte mit einer eigenen Syntax verarbeitet werden sollen. Der Precompiler wandelt diese Konstrukte in solche der bestehenden Sprache um. Je nach Definition kann ein Precompiler auch die Aufgabe haben, Zwischencode für einen Interpreter zu erzeugen.[3]
Ein verbreitetes Beispiel hierfür ist Embedded SQL. Hier übersetzt ein Precompiler SQL-Anweisungen, die zum Beispiel in ein C-Programm eingefügt sind, in C-Code.[4][5]
Im Unterschied etwa zum Präprozessor der Programmiersprache C führt der Precompiler nicht nur einfache Textersetzungen (Zeichenfolge gegen Zeichenfolge) aus, sondern analysiert die neuen Syntaxelemente, prüft sie auf syntaktische Korrektheit und setzt sie dann in äquivalente, oft wesentlich komplexere Konstrukte der Zielsprache um.[6]
Darüber hinaus bietet ein Precompiler auch die Möglichkeit des frühen oder erweiterten Debuggings. Oft werden Precompiler auch in prozeduralen Programmiersprachen eingesetzt, um objektorientierte Programmierung oder andere fortschrittliche Programmiertechniken zu ermöglichen. Durch das Vorschalten eines Precompilers können bestehende Compiler also um neue oder verbesserte Features erweitert werden.