I tidigare arbete på SafeJava presenterade vi en typ systemtillägg till Java källspråk som statiskt förhindrar data tävlingar och dödläge i multitrådade program. SafeJava är tillräckligt uttrycksfull för att stödja gemensamma programmeringsmönster, dess typkontroll är snabb och skalbar, och det kräver lite programmering overhead. SafeJava erbjuder därför ett lovande tillvägagångssätt för att göra multitrådade program mer tillförlitliga. Detta dokument presenterar en motsvarande typ systemtillägg för Java virtuella maskinspråk (JVML). Vi kallar det resulterande språket SafeJVML. Welltyped SafeJVML program är garanterade att vara fria från data tävlingar och dödläge. Att konstruera ett motsvarande typsystem för JVML är viktigt eftersom de flesta Java-koder levereras i JVML-format. Att utforma ett motsvarande typsystem för JVML är icke-trivialt på grund av viktiga skillnader mellan Java och JVML. Särskilt avsaknaden av blockstruktur i JVML-program och det faktum att de inte använder namngivna lokala variabler som Java-program gör typsystem för Java och JVML betydligt annorlunda. Till exempel, verifiera frånvaron av raser och dödläge i JVML program kräver att utföra en alias analys, något som inte var nödvändigt för att verifiera frånvaron av raser och dödlägen i Java program. Denna uppsats presenterar statiska och dynamiska semantik för SafeJVML. Det innehåller också ett bevis på att SafeJVML typ systemet är ljud och att det förhindrar data races och dödlägen. Såvitt vi vet är detta det första typsystemet för JVML som statiskt säkerställer frånvaro av synkroniseringsfel.
Typsystem används också för att förhindra data ras och död lås i en specifik Java språk REF.
A type system for preventing data races and deadlocks in the java virtual machine language: 1
{'venue': "LCTES '07", 'journal': None, 'mag_field_of_study': ['Computer Science']}