Compiler übersetzen Software-Quellcode in lauffähige Programme (Maschinencode). Früher (und ja, ich hasse es, dass ich mittlerweile auch von „früher“ rede) hat man im Studium hierfür eigene Vorlesungen „Compilerbau“ auf Basis des berühmten Drachenbuchs von Aho gehalten. Ob man das heute noch flächendeckend macht, weiß ich nicht.
Der Hauptunterschied zwischen Quell- und Maschinencode: Quellcode kann man lesen und verstehen, Maschinencode nicht mehr (bis auf wenige echte Nerds). Denn Maschinencode ist auf eine Prozessorarchitektur optimiert und enthält die direkten CPU- oder GPU-Befehle zum Lesen, Schreiben von Registern und zum Ausführen des Chip-Befehlssatzes. Sehr, sehr tief in 0 und 1, aber dafür auch sehr, sehr schnell in der Ausführung.
Nun stellt sich doch die Frage, ob es nicht besser wäre, wenn KI-Tools anstatt einer Programmiersprache gleich diesen Maschinencode erzeugen würden. Warum sollte man bspw. beim Vibe-Coding den Umweg über aufwändige Quellcodes gehen, wenn am Ende doch eh alles 0 und 1 wird? Wäre das für eine KI nicht deutlich einfacher? Die ist doch auch „nur“ 0 und 1 – oder?
Gut – ob sich diese Frage jetzt jedem stellt, lasse ich mal offen. Mir geht sie jedenfalls durch den Kopf. Und was da drin ist, muss manchmal wieder raus. Und manchmal auf LinkedIn. Sorry dafür…
Also zurück zum Thema: warum nehmen KI’s diese Abkürzung nicht?
Ich sehe hierfür hauptsächlich zwei Gründe:
1) die Tatsache, dass KI Systeme lesbaren Quellcode erzeugen, ist aktuell hilfreich, denn es gibt eine ganze Reihe Menschen (nämlich uns Informatiker), die diesen verstehen, bewerten, einordnen und ggf. auch korrigieren können. Solange KI Fehler macht, ist dieser Schritt unbedingt notwendig (und das wird noch ein Weilchen so bleiben).
2) derzeitige KI-Modelle sind Sprachmodelle, die sehr gut darin sind, Wörter, Sätze, grammatikalische Strukturen zu verarbeiten – nichts anderes sind Programmiersprachen. Außerdem gibt es Tonnen an Programmcodes, die für’s Training verwendet werden können. Und man braucht für das Beschreiben der Anforderungen natürliche Sprache und somit ohnehin ein Sprachmodell…
Deshalb macht es durchaus Sinn, dass KI erst mal noch ein Weilchen lesbaren Quellcode ausspuckt, der dann – wie schon immer – in Maschinencode übersetzt (oder meinetwegen auch zur Laufzeit interpretiert) wird. Vielleicht wird sich das irgendwann ändern, wenn die Modelle noch besser sind oder wenn wir noch weniger Anspruch haben, wirklich zu „verstehen“, was generative KI so ausspuckt. Die einigen wenigen echten Nerds, die noch Maschinencode „lesen“ können, werden dann vermutlich unfassbar reich…
Vielleicht sollten wir also wieder mehr Compilerbau unterrichten…..
#informatikersindcool#wasrausmussmussraus#gedankenzumsonntag
