Sessionstyper tillåter att kommunikationsprotokoll specificeras typteoretiskt så att protokollimplementeringar kan verifieras genom statisk typkontroll. Vi utökar tidigare arbete med sessionstyper för distribuerade objektorienterade språk på tre sätt. (1) Vi bifogar en sessionstyp till en klassdefinition, för att specificera möjliga sekvenser av metodanrop. (2) Vi tillåter att en sessionstyp (protokoll) implementeras modulärt, d.v.s. delas upp i separat kalla metoder. (3) Vi behandlar sessions-typade kommunikationskanaler som objekt och integrerar deras sessionstyper med sessionstyperna av klasser. Resultatet är en elegant förening av kommunikationskanaler och deras sessionstyper, distribuerad objektorienterad programmering, och en form av typtillstånd som stöder icke-uniforma objekt, dvs.. objekt som dynamiskt ändrar uppsättningen tillgängliga metoder. Vi definierar syntax, operationell semantik, ett ljudsystem och en korrekt och komplett typkontrollalgoritm för ett litet distribuerat klassbaserat objektorienterat språk. Statisk typning garanterar att både sekvenser av meddelanden på kanaler, och sekvenser av metod anropar objekt, överensstämmer med typ-teoretiska specifikationer, vilket garanterar typ-säkerhet. Språket innehåller förväntade inslag av sessionstyper, t.ex. delegering, och förväntade inslag i objektorienterad programmering, t.ex. inkapsling av den lokala staten. Vi beskriver även en prototypimplementation som en förlängning av Java.
REF formaliserar ett centralt distribuerat klassbaserat objektorienterat språk med ett statiskt typsystem som kombinerar sessionsdefinierade kanaler och en form av typtillstånd.
Modular session types for distributed object-oriented programming
{'venue': "POPL '10", 'journal': None, 'mag_field_of_study': ['Computer Science']}