Codeanalyse: Facebook gibt SPARTA als Open Source frei

Hinter dem Akronym verbirgt sich eine Library für die statische Codeanalyse auf Basis abstrakter Interpretation. Sie steht Entwicklern nun quelloffen bereit.

In Pocket speichern vorlesen Druckansicht 15 Kommentare lesen
Codeanalyse: Facebook gibt SPARTA als Open Source frei

(Bild: Facebook)

Lesezeit: 2 Min.
Von
  • Matthias Parbel

Die Entwickler bei Facebook öffnen ein weiteres Inkubatorprojekt für die Open-Source-Community: die C++-Library SPARTA steht ab sofort quelloffen für den Einsatz in der statischen Codeanalyse zur Verfügung. Der Name und das Logo deuten auf die bekannte Militärmacht im antiken Griechenland, das Akronym SPARTA steht laut Facebook allerdings für die drei Fundamente, auf denen eine Analyse aufgebaut sein sollte: Semantics, PARTitioning und Abstraction.

Von der statischen Codeanalyse auf Basis abstrakter Interpretation verspricht sich Facebook detaillierte Erkenntnisse, die zu effizienterem Code mit weniger Fehlern beitragen sollen. Wenn es beispielsweise um Fragen geht, welche Werte eine Variable annehmen kann oder welche Arten von Werten, in eine Funktion einfließen können und ob bestimmte Codeabschnitte überhaupt jemals ausgeführt werden oder überflüssig sind? Facebook nutzt SPARTA in diesem Sinne bereits im Rahmen seines Codeoptimierers für Android, ReDex. Gegenüber dem klassischen Ansatz der Datenflussanalyse bei der Registerzuweisung großer Apps habe Facebook mit SPARTA sowohl die Startzeit beschleunigen als auch die Speicherbelegung signifikant reduzieren können.

Mit der Freigabe von SPARTA als Open Source soll nicht nur die Community an der Weiterentwicklung der Library beteiligt werden, sondern Facebook möchte auch insgesamt den Einsatz von statischer Codeanalyse im Produktionsumfeld vorantreiben. SPARTA stellt dazu die erforderlichen Datenstrukturen bereit, wie sie typischerweise in statischen Analysatoren verwendet werden – darunter endliche Gitter, Power-Set-Domänen und abstrakte Umgebungen. Entwickler sollen sich dadurch auf den Entwurf einer geeigneten Logik konzentrieren können, die die gewünschten Informationen extrahiert.

Weitere Informationen zu SPARTA finden sich in der Ankündigung zur Freigabe als quelloffene Software unter MIT-Lizenz sowie auf den GitHub-Seiten des Projekts. Eine detaillierte Dokumentation ist darüber hinaus im Code der Library enthalten. (map)