Künstliche Intelligenz zur Konvertierung zwischen Programmiersprachen

(Di Alessandro Rugolo)
03/08/20

Wir sind nicht länger überrascht, wenn wir davon hören Künstliche Intelligenz, wie Alan Turing vor 70 Jahren in seinem Aufsatz "Computing Machinery and Intelligence" vorausgesagt hatte. Wir sind nicht einmal überrascht, die Entwicklung eines anthropomorphen Roboters zu sehen, der mit Sensoren ausgestattet ist, die sprechen, schreiben, Schach spielen oder die unterschiedlichsten Aufgaben ausführen können.

Die Technologie bewegt sich schnell und wir sind einen Schritt davon entfernt, eine neue, weiterentwickelte Rasse zu sehen, die von Cyborgs, die unter den Menschen zirkulieren ...

Auf den ersten Blick könnte man denken, dass die gerade gelesenen Zeilen aus einer Anthologie des Fantastischen stammen, von denen, die vor dreißig Jahren unter den hitzigen Lesern der italienischen Strände sehr in Mode waren, aber es ist nicht so, es ist Realität.

Künstliche Intelligenz hat nun die Testphase bestanden und bereitet sich darauf vor, kraftvoll in unser tägliches Leben, das tägliche Leben des Mannes auf der Straße und das Arbeitsleben von Unternehmen einzutreten.

Aus der Welt der sozialen Netzwerke, Facebook, gibt es eine Neuheit bei der Verwendung künstlicher Intelligenz: "Facebooks AI Transcoder". Mal sehen, worum es geht.

Sie sind die Facebook-Forscher, die den ersten "Neural Transcompiler" entwickelt haben, einen Code-Konverter für Programmiersprachen. Es ist ein AI-basiertes System, das den Code von Programmiersprachen auf hoher Ebene (Java, Python, C ++ ...) in andere Programmiersprachen konvertieren kann und umgekehrt.

Das erstellte System gehört zur Kategorie "unbeaufsichtigt", dh ohne die Notwendigkeit von Anweisungen zu Trainingsdaten und theoretisch ohne die Notwendigkeit menschlicher Aufsicht.

Die Notwendigkeit, Programmcode zwischen verschiedenen Sprachen zu konvertieren, ist sehr spürbar. Mit der Entwicklung der Informatik und der Entwicklung verschiedener Programmiersprachen hat sich gezeigt, dass der Übergang zu neuen Systemen oder Informationsplattformen aufgrund mangelnder Kenntnisse älterer Programmiersprachen nicht immer billig und machbar war.

Für den Durchgang großer Systeme, zum Beispiel der Bankensysteme, sind die Kosten exorbitant geworden, und hier könnten die neuen ins Spiel kommen neuronaler Transcompiler.
Das neue System basiert auf der Verwendung einer "mehrsprachigen Sprache" (für die Vorbereitungsphase), die Ausdrücke mit ähnlicher Bedeutung für die verschiedenen Programmiersprachen abbildet.

Die Genauigkeit des neuen Systems ist sehr hoch, zumindest beim Übergang zwischen C ++ und Java (74,8%), während sie beim Wechsel von C ++ zu Python auf 67,2% sinkt.
Noch bessere Ergebnisse werden beim Übergang von Java zu C ++ erzielt (91,6%).
Geringere Genauigkeit beim Übergang von Python zu Java (56,1%) und von Python zu C ++ (57,8%).

In der industriellen und militärischen Welt ist es nicht verwunderlich, dass jahrzehntealte Systeme aufgrund der Unmöglichkeit der Umstellung und der enormen Kosten für die Modernisierung immer noch in Gebrauch sind. In diesem nicht kleinen Marktsektor ist das neue Instrument positioniert.
Es wird einige Zeit dauern, um die Genauigkeit des Systems zu verbessern, insbesondere für die Konvertierung von Systemen mit älteren Sprachen in neuere, aber der Weg scheint definitiv offen zu sein.

Unter Sicherheitsgesichtspunkten ist dies eine völlig andere Angelegenheit und muss von Fall zu Fall untersucht werden.

Um mehr zu erfahren:
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://medium.com/@learnbay/facebooks-ai-transcoder-6299a62bf222
https://www.infoq.com/news/2020/06/facebook-ai-transpiler/
https://medium.com/swlh/transcoder-facebooks-unsupervised-programming-la...