Abstrakt. Javari är en förlängning av Java som stöder referens-Immutability begränsningar. Programmerare skriver skrivbara typkvalificerare och andra begränsningar, och Javari typkontroller upptäcker mutationsfel (okorrekta biverkningar) eller verifierar deras frånvaro. Även om fallstudier har visat Javaris praktiskhet och värde kvarstår ett hinder för användbarheten. Ett Javariprogram kommer inte att typchecka om inte alla referenser i API:erna för bibliotek som det använder är kommenterade med Javari typkvalificerare. Att manuellt konvertera befintliga Javabibliotek till Javari är tråkigt och felbenäget. Vi presenterar en algoritm för att härleda referens immutability i Javari. Den flödesokänsliga och sammanhangskänsliga algoritmen är ljud och producerar en uppsättning kvalificerare som typkontroll i Javari. Algoritmen är exakt genom att det härleder de mest readly-kvalificerare som är möjliga; att lägga till ytterligare readly-kvalificerare gör att programmet inte skriver kontroll. Vi har implementerat algoritmen i ett verktyg, Javarifier, som innehåller Javari typ kvalificerare över en uppsättning klassfiler. Javarifier konverterar automatiskt Javabibliotek till Javari. Dessutom underlättar Javarifier uppgiften att konvertera äldre program till Javari genom att dra slutsatsen att varje referens kan ändras i ett program. I fallstudier kan Javarifier korrekt sluta sig till mutabilitet över Javaprogram på upp till 110 KLOC.
Med hjälp av ett språk av begränsningar som återspeglar strukturen i programmet användes också i andra domäner, såsom slutsatsen om osannolika referenser, i Javari förlängning av Java REF.
Inference of reference immutability
{'venue': 'in Java. Master’s thesis, MIT Dept. of EECS', 'journal': None, 'mag_field_of_study': ['Computer Science']}