Menü
Developer

Es werde Code

vorlesen Drucken Kommentare lesen 1 Beitrag

Einige Wissenschaftler des Computer Science and Artificial Intelligence Laboratory des Massachusetts Institute of Technology (MIT) haben Verfahren entwickelt, die für bestimmte Aufgaben normale englische Sprache in Programmier-Code überführen können. So lassen sich mit ihren Ergebnissen reguläre Ausdrücke oder Program Input Parser aus Text generieren.

Zwar gebe es schon Techniken, die die Umwandlung von Text in Code etwa für Suchanfragen in Datenbanken leisten könnten; das Erstellen von regulären Ausdrücken sei aber wesentlich komplexer, da sie sich nur schwer in eine natürliche Sprache überführen ließen. Allerdings haben die Forscher ermittelt, dass es für jeden regulären Ausdruck ein gut abzubildendes Äquivalent gibt, auch wenn dieses meistens weder sonderlich kompakt noch intuitiv auf Programmierer wirken mag. Durch die Verwendung eines Graphenansatzes ist es allerdings möglich, verschiedene Versionen eines Ausdrucks in einem Konstrukt vorzuhalten. Hat man also einmal eine symbolische Repräsentation der natürlichsprachigen Anfrage gefunden, kann im Graph noch nach einer knapperen Formulierung gesucht werden, die sich dann anderweitig verwenden lässt.

Um die Nützlichkeit der Erfindung zu demonstrieren, stellte einer der Entwickler bei der Präsentation des Verfahrens den anwesenden Wissenschaftlern die Aufgabe, einen regulären Ausdruck für eine vergleichsweise einfache Textsuche aufzuschreiben. Nur wenige kamen auf das im Anschluss gezeigte Ergebnis, als Stütze könnte das Verfahren also nützlich sein.

Natürliche Sprache und deren Umsetzung in einen regulären Ausdruck

Das zweite Projekt der MIT-Wissenschaftler in diesem Rahmen stellt ein System dar, das aus in natürlicher Sprache geschriebenen Spezifikationen Input Parser entwickelt. Dies sei im Grunde möglich, weil Anforderungen in einer klaren, präzisen Sprache formuliert seien, die sich ebenfalls umformen ließen. Mit Input Parsern lässt sich herausfinden, welche Teile einer Eingabedatei welche Daten enthalten, da verschiedene Formate unterschiedlich aufgebaut sind. Bestimmte Bilddateiformate beginnen beispielsweise mit Informationen zum Dateityp, zu Höhe und Breite sowie der Bits pro Pixel, bis die tatsächlichen Pixelwerte folgen. Das System wurde mit 100 verschiedenen Spezifikationen getestet, von denen sich wohl 80 Prozent direkt in Parser umwandeln ließen und in den restlichen wohl nur kleinere Änderungen notwendig waren.

Zu Beginn hat das System nur wenige Informationen über den Zusammenhang von Spezifikation und Browser und kennt nur wenige Wörter, aus denen sich eine erste Parser-Version generieren lässt. Diese testet es dann mit Beispieldateien – sollte sie auf einigen nicht funktionieren, wird die Interpretation der Spezifikation etwas geändert und die neue Variante erneut geprüft, bis sie auf allen Beispielen funktioniert. Das System soll sich außerdem mit jedem erfolgreich gebauten Parser verbessern.

Obwohl die Verfahren nicht für jegliche Form der Programmierung geeignet seien, könnten sie erfahrenen Entwicklern als Hilfsmittel dienen oder Menschen ohne Programmiererfahrung dabei helfen, Dateien in gewöhnlichen Formaten zu manipulieren. Außerdem können die Konzepte als Anregung für themenverwandte Problemstellungen dienen.

Detailliertere Informationen zu den Verfahren und ihrer Umsetzung lassen sich in den entsprechenden Papers nachlesen oder der Ankündigung entnehmen. (jul)