Der Artikel präsentiert JARVIS, einen Ansatz zur Konstruktion anwendungszentrierter Aufrufgraphen für Python-Programme. JARVIS hat drei Hauptmerkmale:
Anwendungszentrierte Aufrufgraphenkonstruktion: JARVIS konstruiert den Aufrufgraphen nur für die Anwendungsfunktionen, ohne die gesamte Programmbibliothek zu analysieren. Dies verbessert die Skalierbarkeit erheblich.
Flussempfindliche Typinferenz: JARVIS verfolgt den Kontrollfluss und führt starke Aktualisierungen durch, um präzisere Typinformationen zu erhalten. Dies erhöht die Genauigkeit des Aufrufgraphen.
Umfassendere Unterstützung für Python-Sprachmerkmale: JARVIS unterstützt Python-Sprachmerkmale wie Kontextmanager und eingebaute Typen besser als der Stand der Technik, was die Vollständigkeit des Aufrufgraphen verbessert.
Die Evaluation zeigt, dass JARVIS im Vergleich zum Stand der Technik PYCG mindestens 67% schneller ist, 84% höhere Präzision und mindestens 20% höhere Rückrufrate aufweist.
다른 언어로
소스 콘텐츠 기반
arxiv.org
더 깊은 질문