Abstract Moderna programvarusystem är beroende av kommunikation, till exempel mobila applikationer som kommunicerar med en central server, distribuerade system som samordnar ett telekomnätverk eller samtidiga system som hanterar händelser och processer i en stationär applikation. Men resonemang om samtidiga program är svårt, eftersom vi måste resonera om varje process och den ordning i vilken kommunikation kan hända mellan processer. I detta dokument beskriver jag ett typstyrt tillvägagångssätt för att genomföra kommunicerande samtidiga program, med hjälp av det beroende maskinskrivna programmeringsspråket Idris. Jag visar hur typsystemet kan användas för att beskriva resursåtkomstprotokoll (t.ex. kontrollera åtkomst till en filhantering) och verifiera att program korrekt följer dessa protools. Slutligen visar jag hur man använder typsystemet för att resonera om ordningen för kommunikation mellan samtidiga processer, vilket säkerställer att varje ände av en kommunikationskanal följer ett definierat protokoll.
REF visar hur man använder denna funktionskombination för att utveckla samtidiga system.
Type-driven Development of Concurrent Communicating Systems
{'venue': 'Computer Science', 'journal': 'Computer Science (AGH)', 'mag_field_of_study': ['Computer Science']}