Programmieren und KI: Künstliche Intelligenz in der Softwareentwicklung

Künstliche Intelligenz hilft Entwicklern beim Coden, aber kann sie Entwickler-Know-how auch ersetzen? Wir beleuchten den Forschungsstand.

In Pocket speichern vorlesen Druckansicht 10 Kommentare lesen
Stand:
Lesezeit: 14 Min.
Von
  • Prof. Bernd Finkbeiner
  • Frederik Schmitt
Inhaltsverzeichnis

Entwickler müssen in der modernen Softwareentwicklung immer seltener Probleme von Grund auf neu lösen. Ein Großteil der Funktionen steckt in Bibliotheken, und Plattformen wie GitHub und Stack Overflow liefern Millionen Codebeispiele zu nahezu jeder denkbaren Programmieraufgabe. Machine Learning könnte die Programmierarbeit noch einmal vereinfachen.

Der Wunsch nach Programmen, die Programme schreiben, ist so alt wie die Informatik. Schon 1957 formulierte Alonzo Church, einer der Gründer der damals noch jungen Disziplin, die Herausforderung: Ist es möglich, die Spezifikation einer Programmieraufgabe automatisch, also durch einen Algorithmus, in ein Computerprogramm zu übersetzen, sodass das Programm die Aufgabe für jede mögliche Eingabe korrekt löst?

Heute, mehr als 60 Jahre später, scheint die Antwort zum Greifen nah. Sprachmodelle wie das vom kalifornischen Start-up OpenAI im letzten Jahr vorgestellte GPT-3 (Generative Pre-trained Transformer 3) sind in der Lage, in natürlicher Sprache formulierte Anforderungen vollautomatisch in ein Computerprogramm zu übersetzen. Aus der Beschreibung "compute the greatest common divisor of two integers” und einem einzigen Codebeispiel zum Berechnen von Fibonacci-Zahlen erzeugt GPT-3 den im Listing gezeigten Python-Code.

iX-TRACT
  • Entwicklerinnen und Entwickler erhalten beim Programmieren Hilfe durch künstliche Intelligenz.
  • Sprachmodelle wie GPT-3 übertragen in natürlicher Sprache gegebene Anforderungen in ein Programm.
  • Die Programmsynthese aus logischen Spezifikationen eignet sich für sicherheitskritische Systeme.
Mehr zu Künstlicher Intelligenz

Listing: Von GPT-3 generierter Python-Code erscheint nur auf den ersten Blick korrekt

n = int(input("Enter n: "))
m = int(input("Enter m: "))
def gcd(x, y):
    return x if x == y else gcd(y, x % y)
print(f"The greatest common divisor of {x} and {y} is {gcd(x, y)}" )