KI lernt Programmiersprachen zu übersetzen| WOTech Technical Media

KI lernt Programmiersprachen zu übersetzen

IBM hat auf der Konferenz Think 2021 CodeNet vorgestellt, ein Computerprogramm, das auf der Basis von Künstlicher Intelligenz (KI) und Maschinellem Lernen (ML) Progamme übersetzen kann. Es handelt sich um einen umfangreichen Datensatz, der KI- und ML-Systemen das Übersetzen von Codes beibringen soll. Er besteht aus rund 14 Mio. Snippets, das sind kleine Programmteile, die integriert werden, und 500 Mio. Code-Zeilen, die auf mehr als 55 ältere und aktive Programmiersprachen verteilt sind - von Cobol über Fortran bis hin zu Java, C++ und Python.

Ruchir Puri, Chefwissenschaftler im IBM-Forschungsinstitut, vergleicht den neuen Datensatz mit ImageNet, einer Datenbank von Bildern, welche für Forschungsprojekte eingesetzt wird. Wir haben Computern beigebracht, wie Menschen zu sprechen, so Puri. Da habe er sich gesagt, es müsse doch auch möglich sein, ihnen beizubringen, wie Computer zu sprechen.

Wenn es einfach wäre und die regelbasierten Systeme funktionierten, wären frühe Programmiersprachen wie Cobol inzwischen konvertiert worden. Aber Programmiersprachen hätten einen Kontext. Die Bedeutung einer Aussage hänge mit dem Kontext zusammen, und es sei schwierig und zeitaufwendig, sie abzuleiten und zu übersetzen, genau wie bei menschlichen Sprachen.

Bidirektionale Übersetzung

Je größer ein Programm ist, desto schwieriger ist es zu übersetzen. Während sich der Kontext in der menschlichen Sprache auf einen Absatz bezieht, kann er sich bei Programmiersprachen auf mehrere Code-Bibliotheken beziehen. Da kann nur KI helfen. Grob gesagt, könnten regelbasierte Systeme zwischen 50 und 60 Prozent eines Programms erfolgreich übersetzen. Der Rest muss bisher von Menschen übersetzt werden.

CodeNet soll das ändern. Der riesige Datensatz ist so aufgebaut, dass eine bidirektionale Übersetzung möglich ist, sodass etwa Cobol in Java übersetzt werden kann und umgekehrt. Das Programm kann möglicherweise ein weltweites Software-Problem lösen. Bei komplexen Anwendungen, zum Beispiel von Banken, ist es künftig möglich, auf ein modernes leistungsfähigeres Programm umzusteigen. (pte)

http://ibm.com

Aktuelle Onlineartikel