Abstrakt. Objektorienterade skriptspråk som JavaScript och Python är populära delvis på grund av sina dynamiska funktioner. Dessa inkluderar runtime-modifiering av objekt och klasser genom tillägg av fält eller uppdatering av metoder. Dessa funktioner gör det svårt att skriva statiskt och därför brukar dynamisk maskinskrivning användas. Följaktligen upptäcks inte fel som tillgång till icke-existerande medlemmar förrän i körtid. Vi utvecklar först en formalism för ett objektbaserat språk, JS0, med funktioner från JavaScript, inklusive dynamiskt tillägg av fält och uppdatering av metoder. Vi ger ett operativt semantik och statiskt typsystem för JS0 med hjälp av strukturella typer. Våra typer tillåter objekt att utvecklas på ett kontrollerat sätt genom att klassificera medlemmar som bestämda eller potentiella. Vi definierar en type inference algoritm för JS0 som är ljud med avseende på typsystemet. Om typen slutsats algoritm lyckas, då programmet är skrivbar. Därför kan programmerare dra nytta av den säkerhet som typsystemet erbjuder, utan att behöva skriva explicit typer i sina program.
Anderson och medarbetare REF definierar ett typsystem för JavaScript som levereras med en type inference algoritm.
Towards Type Inference for JavaScript
{'venue': 'ECOOP', 'journal': None, 'mag_field_of_study': ['Computer Science']}