JavaScript används överallt från webbläsare till server, inklusive stationära och mobila enheter. Det aktuella läget i JavaScripts statiska analys ligger dock långt efter andra språk som C och Java. Vårt mål är att hjälpa till att råda bot på denna brist. Vi beskriver JSAI, en formellt specificerad, robust abstrakt tolk för JavaScript. JSAI använder nya abstrakta domäner för att beräkna en reducerad produkt av typ inferens, pekaranalys, kontrollflödesanalys, stränganalys och heltal och booleansk konstant förökning. En del av JSAI:s nyhet är användarkonfigurerbar analyskänslighet, dvs. kontext-, sökväg- och högkänslighet. JSAI är utformad för att vara korrekt med avseende på en specifik betongsemantik för JavaScript, som har testats i stor utsträckning mot en kommersiell JavaScript implementation. Vi ger en omfattande utvärdering av JSAI:s prestanda och precision med hjälp av en omfattande benchmarkingsvit, inklusive verkliga JavaScript-applikationer, maskingenererad JavaScript-kod via Emscripten och webbläsartillägg. Vi använder JSAI:s konfigurerbarhet för att utvärdera ett stort antal analyskänsligheter (några välkända, några romaner) och observera några överraskande resultat som går emot vanlig visdom. Dessa resultat belyser nyttan av en konfigurerbar analysplattform som JSAI.
JSAI REF, JavaScript Abstract tolk, är också en abstrakt tolk för JavaScript-program.
JSAI: a static analysis platform for JavaScript
{'venue': 'FSE 2014', 'journal': None, 'mag_field_of_study': ['Computer Science']}