Sessionstyp

I typteorin används sessionstyper för att säkerställa korrekthet i samtidiga program . De garanterar att meddelanden som skickas och tas emot mellan samtidiga program är i den förväntade ordningen och av den förväntade typen . Sessionstypssystem har anpassats för både kanal- och aktörssystem .

Sessionstyper används för att säkerställa önskvärda egenskaper i samtidiga och distribuerade system, dvs frånvaro av kommunikationsfel eller dödlägen, och protokollöverensstämmelse.

Binära kontra flerpartssessionstyper

Interaktion mellan två processer kan kontrolleras med binära sessionstyper, medan interaktioner mellan fler än två processer kan kontrolleras med flerpartssessionstyper . I flerpartssessionstyper beskrivs interaktioner mellan alla deltagare med en global typ , som sedan projiceras till lokala typer som beskriver kommunikation från varje deltagares lokala vy. Viktigt är att den globala typen kodar sekvenseringsinformationen för kommunikationen, som skulle gå förlorad om vi skulle använda binära sessionstyper för att koda samma kommunikation.

Formell definition av binära sessionstyper

Binära sessionstyper kan beskrivas med sändningsoperationer ( ), mottagningsoperationer ( ), grenar ( ), val ( ) , rekursion ( ) och terminering ( .

Till exempel, representerar en sessionstyp som först skickar en boolesk ( ), sedan tar emot en heltal ( ) innan den slutligen avslutas ( .

Genomföranden

Sessionstyper har anpassats för flera befintliga programmeringsspråk, inklusive: