HyperAIHyperAI

Command Palette

Search for a command to run...

Lernende Typinferenz für verbesserte Datenflussanalyse

Lukas Seidel*1&3 Sedick David Baker Effendi*2& Xavier Pinho1 Konrad Rieck3 Brink van der Merwe2 Fabian Yamaguchi1&2

Zusammenfassung

Die statische Analyse dynamisch typisierter Code ist eine herausfordernde Aufgabe, da selbst scheinbar triviale Aufgaben wie die Bestimmung der Ziele von Prozeduraufrufen ohne Kenntnis der Objekttypen zur Kompilierzeit nicht einfach sind. Um dieser Herausforderung zu begegnen, wird graduell Typisierung zunehmend in dynamisch typisierte Sprachen integriert, wobei TypeScript ein prominentes Beispiel ist, das JavaScript statische Typisierung hinzufügt. Graduelle Typisierung verbessert die Fähigkeit der Entwickler, das Programmverhalten zu überprüfen und trägt zu robusten, sicheren und fehlerfreundlichen Programmen bei. In der Praxis fügen Benutzer jedoch nur selten direkt Typanmerkungen hinzu. Gleichzeitig stellen herkömmliche Typinferenz vor leistungsbezogene Herausforderungen, wenn die Programmgröße zunimmt. Statistische Techniken auf Basis maschinellen Lernens bieten eine schnellere Inferenz, obwohl jüngste Ansätze insgesamt eine verbesserte Genauigkeit zeigen, performen sie bei benutzerdefinierten Typen signifikant schlechter als bei den am häufigsten verwendeten eingebauten Typen. Sie begrenzen ihre praktische Nutzbarkeit noch stärker dadurch, dass sie selten in benutzerorientierte Anwendungen integriert werden. Wir schlagen CodeTIDAL5 vor, ein auf Transformer basierendes Modell, das darauf trainiert wurde, Typanmerkungen zuverlässig vorherzusagen. Für effektive Ergebnisrückgewinnung und -reintegration extrahieren wir Verwendungsschnitte aus dem Code-Eigenschafts-Graph des Programms. Im Vergleich zu jüngsten neuronalen Typinferenzsystemen übertrifft unser Modell den aktuellen Stand der Technik um 7,85 % im ManyTypes4TypeScript-Benchmark und erreicht insgesamt 71,27 % Genauigkeit. Darüber hinaus präsentieren wir JoernTI, eine Integration unserer Methode in Joern, ein Open-Source-Tool für statische Analyse, und zeigen, dass die Analyse von den zusätzlichen Typprüfungen profitiert. Da unser Modell auch auf gängigen CPUs schnelle Inferenzzeiten ermöglicht, führt die Bereitstellung unseres Systems durch Joern zu hoher Zugänglichkeit und erleichtert Sicherheitsforschung.


KI mit KI entwickeln

Von der Idee bis zum Launch – beschleunigen Sie Ihre KI-Entwicklung mit kostenlosem KI-Co-Coding, sofort einsatzbereiter Umgebung und bestem GPU-Preis.

KI-gestütztes kollaboratives Programmieren
Sofort einsatzbereite GPUs
Die besten Preise

HyperAI Newsletters

Abonnieren Sie unsere neuesten Updates
Wir werden die neuesten Updates der Woche in Ihren Posteingang liefern um neun Uhr jeden Montagmorgen
Unterstützt von MailChimp