Medan en typisk programvarukomponent har ett tydligt specificerat (statiskt) gränssnitt när det gäller de metoder och de inmatnings-/utmatningstyper som de stöder, är information om korrekt sekvensering av metodanrop som kunden måste åberopa vanligtvis odokumenterad. I detta dokument föreslår vi en ny lösning för att automatiskt extrahera sådana tidsspecifikationer för Javaklasser. Med tanke på en Java-klass, och en säkerhetsfastighet som "undantaget E bör inte höjas", är motsvarande (dynamiska) gränssnitt det vanligaste sättet att åberopa metoderna i klassen så att säkerhetsfastigheten inte kränks. Vår syntesmetod konstruerar först en symbolisk representation av det finita tillståndsövergångssystem som erhållits från klassen med hjälp av predikativ abstraktion. Skapar gränssnittet sedan motsvarar att lösa en partiell information två-spelare spel på denna symboliska graf. Vi presenterar en sund strategi för att lösa detta beräknings svårt problem ungefär med hjälp av algoritmer för att lära ändliga automata och symbolisk modell kontroll för förgrening-tidslogik. Vi beskriver en implementering av de föreslagna teknikerna i verktyget JIST-Java Interface Synthesis Tool-och visar att verktyget kan konstruera gränssnitt exakt och effektivt för prov Java2SDK bibliotek klasser.
Arbetet i REF infers gränssnitt för Java klasser med hjälp av L *.
Synthesis of interface specifications for Java classes
{'venue': "POPL '05", 'journal': None, 'mag_field_of_study': ['Computer Science']}