Machine Learning: Intel und MIT suchen nach Ähnlichkeiten im Code

Machine Inferred Code Similarity (MISIM) ist eine Engine, die durch Strukturvergleich automatisiert erfassen kann, welchem Zweck ein Stück Code jeweils dient.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 5 Beiträge

(Bild: sdecoret/Shutterstock.com)

Von

Intel und das Massachusetts Institute of Technology (MIT) haben gemeinsam mit dem Georgia Institute of Technology (Georgia Tech) Machine Inferred Code Similarity (MISIM) vorgestellt – die Engine erfasst automatisiert die Struktur von Code, indem sie ihr vorgelegte Codepassagen auf syntaktische Gemeinsamkeiten und Unterschiede zu anderem Code mit ähnlichem Verhalten hin untersucht.

Das Tool ist Teil eines in Entwicklung befindlichen Systems zum Machine Programming (MP) von Intel. Offenbar kann MP damit erkennen, welchen Zweck ein analysiertes Stück Code erfüllt und welche Absicht ein Algorithmus verfolgt. Ziel laut Intel ist, dass das Tool künftig Entwicklern in komplexen Umgebungen automatisierte Code-Vorschläge anbieten kann, insbesondere für die system- und architekturübergreifende Softwareentwicklung und bei der Problembehebung in bestehendem Code.

Machine Programming (zu Deutsch etwa: automatisiertes Programmieren) ist ein von Intel und dem MIT geprägter Begriff. Code Similarity, das Finden von Ähnlichkeiten im Code, ist offenbar eine Schlüsseltechnologie auf dem Weg zur Automatisierung von Prozessen der Softwareentwicklung. Treffsichere Code-Similarity-Systeme zu bauen, gilt derweil noch als Hürde. Unter der Haube versuchen Systeme wie MISIM, jeweils zwei Code-Schnipsel auf ihre Ähnlichkeit zu prüfen und untersuchen, ob sie ähnliche Merkmale aufweisen, um ähnliche Ziele zu erreichen. Laut Anbieter ist MISIM in der Lage, zu bestimmen, ob zwei Code-Passagen jeweils einen ähnlichen Rechenprozess anstoßen, und zwar selbst bei unterschiedlichen Algorithmen und Datenstrukturen.

MISIM ist weder das erste noch das einzige Code-Similarity-Programm. Ein Unterschied zu bestehenden Systemen ist offenbar dessen kontextbewusste semantische Struktur (CASS), die Nutzer für spezifische Kontexte konfigurieren können. Dadurch erhält das System Informationen auf der Metaebene, die gezielteren Einblick in die Natur des zu analysierenden Code erlauben. Das Code-Similarity-Programm muss keinen menschenlesbaren Code in vom Computer ausführbaren umwandeln, daher ist kein Compiler notwendig. Offenbar kann das System auch unvollständige Code-Schnipsel bereits ausführen und Ergänzungen vorschlagen, was beim Beheben von Problemen von Nutzen sein kann.

Nach der Implementierung in CASS bewerten neuronale Netzwerksysteme die Code-Passagen nach Ähnlichkeit, wobei die Ausführung ihrer zugewiesenen Aufgaben Grundlage für die Bewertung ist. So können zwei Code-Schnipsel durchaus unterschiedlich aussehen, aber ein ähnliches Rating erhalten, wenn sie dem gleichen Zweck dienen. Angeblich soll MISIM Ähnlichkeiten im Code rund 40mal schneller erkennen als andere Modelle.

MISIM verlässt nun die Forschungsebene und geht in die Vorführphase für eine Demoversion. Langfristiges Ziel laut Ankündigung im Firmenblog ist, dass MISIM eine Empfehlungs-Engine werden soll, die Softwareentwicklern architekturübergreifend beim Programmieren unter die Arme greift. Die Entwicklung ist zunächst auf die von Intel selbst angebotenen Architekturen konzentriert.

Mehr Informationen lassen sich der Ankündigung im Intel-Blog entnehmen. Zu MISIM liegt auch ein Forschungsbeitrag vor von Intel Labs, MIT und Georgia Tech, den Interessierte frei nachlesen können.

(sih)