Ankush Das, Henry Deyoung, Andreia Mordido, F. Pfenning
Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this article, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that type equality is decidable by exhibiting a reduction to trace equivalence of deterministic first-order grammars. Recognizing the high theoretical complexity of the latter, we also propose a novel type equality algorithm and prove its soundness. We observe that the algorithm is surprisingly efficient and, despite its incompleteness, sufficient for all our examples. We have implemented our ideas by extending the Rast programming language with nested session types. We conclude with several examples illustrating the expressivity of our enhanced type system.
{"title":"Nested Session Types","authors":"Ankush Das, Henry Deyoung, Andreia Mordido, F. Pfenning","doi":"10.1145/3539656","DOIUrl":"https://doi.org/10.1145/3539656","url":null,"abstract":"Session types statically describe communication protocols between concurrent message-passing processes. Unfortunately, parametric polymorphism even in its restricted prenex form is not fully understood in the context of session types. In this article, we present the metatheory of session types extended with prenex polymorphism and, as a result, nested recursive datatypes. Remarkably, we prove that type equality is decidable by exhibiting a reduction to trace equivalence of deterministic first-order grammars. Recognizing the high theoretical complexity of the latter, we also propose a novel type equality algorithm and prove its soundness. We observe that the algorithm is surprisingly efficient and, despite its incompleteness, sufficient for all our examples. We have implemented our ideas by extending the Rast programming language with nested session types. We conclude with several examples illustrating the expressivity of our enhanced type system.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"41 1","pages":"178 - 206"},"PeriodicalIF":1.3,"publicationDate":"2020-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90760074","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Type systems as a technique to analyse or control programs have been extensively studied for functional programming languages. In particular, some systems allow one to extract from a typing derivation a complexity bound on the program. We explore how to extend such results to parallel complexity in the setting of pi-calculus, considered as a communication-based model for parallel computation. Two notions of time complexity are given: the total computation time without parallelism (the work) and the computation time under maximal parallelism (the span). We define operational semantics to capture those two notions and present two type systems from which one can extract a complexity bound on a process. The type systems are inspired both by sized types and by input/output types, with additional temporal information about communications.
{"title":"Types for Complexity of Parallel Computation in Pi-Calculus","authors":"Patrick Baillot, Alexis Ghyselen","doi":"10.1145/3495529","DOIUrl":"https://doi.org/10.1145/3495529","url":null,"abstract":"Type systems as a technique to analyse or control programs have been extensively studied for functional programming languages. In particular, some systems allow one to extract from a typing derivation a complexity bound on the program. We explore how to extend such results to parallel complexity in the setting of pi-calculus, considered as a communication-based model for parallel computation. Two notions of time complexity are given: the total computation time without parallelism (the work) and the computation time under maximal parallelism (the span). We define operational semantics to capture those two notions and present two type systems from which one can extract a complexity bound on a process. The type systems are inspired both by sized types and by input/output types, with additional temporal information about communications.","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"12 1","pages":"59 - 86"},"PeriodicalIF":1.3,"publicationDate":"2020-10-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81690247","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-07DOI: 10.1007/978-3-030-72019-3_18
Marcel Moosbrugger, E. Bartocci, J. Katoen, L. Kovács
{"title":"Automated Termination Analysis of Polynomial Probabilistic Programs","authors":"Marcel Moosbrugger, E. Bartocci, J. Katoen, L. Kovács","doi":"10.1007/978-3-030-72019-3_18","DOIUrl":"https://doi.org/10.1007/978-3-030-72019-3_18","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"18 1","pages":"491 - 518"},"PeriodicalIF":1.3,"publicationDate":"2020-10-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82446533","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-07-25DOI: 10.1007/978-3-030-72019-3_8
Gian Pietro Farina, Stephen Chong, Marco Gaboardi
{"title":"Coupled Relational Symbolic Execution for Differential Privacy","authors":"Gian Pietro Farina, Stephen Chong, Marco Gaboardi","doi":"10.1007/978-3-030-72019-3_8","DOIUrl":"https://doi.org/10.1007/978-3-030-72019-3_8","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"111 1","pages":"207 - 233"},"PeriodicalIF":1.3,"publicationDate":"2020-07-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79192295","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-07-22DOI: 10.1007/978-3-030-72019-3_9
Marco Gaboardi, Shin-ya Katsumata, Dominic A. Orchard, Tetsuya Sato
{"title":"Graded Hoare Logic and its Categorical Semantics","authors":"Marco Gaboardi, Shin-ya Katsumata, Dominic A. Orchard, Tetsuya Sato","doi":"10.1007/978-3-030-72019-3_9","DOIUrl":"https://doi.org/10.1007/978-3-030-72019-3_9","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"22 1","pages":"234 - 263"},"PeriodicalIF":1.3,"publicationDate":"2020-07-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88115119","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-07-16DOI: 10.1007/978-3-030-72019-3_20
Guilhem Jaber, Colin Riba
{"title":"Temporal Refinements for Guarded Recursive Types","authors":"Guilhem Jaber, Colin Riba","doi":"10.1007/978-3-030-72019-3_20","DOIUrl":"https://doi.org/10.1007/978-3-030-72019-3_20","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"75 1","pages":"548 - 578"},"PeriodicalIF":1.3,"publicationDate":"2020-07-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82764957","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-07-10DOI: 10.1007/978-3-030-72019-3_22
Matthijs V'ak'ar
{"title":"Reverse AD at Higher Types: Pure, Principled and Denotationally Correct","authors":"Matthijs V'ak'ar","doi":"10.1007/978-3-030-72019-3_22","DOIUrl":"https://doi.org/10.1007/978-3-030-72019-3_22","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"12648 1","pages":"607 - 634"},"PeriodicalIF":1.3,"publicationDate":"2020-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85895383","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-04-18DOI: 10.1007/978-3-030-44914-8_27
J. Williams, Nima Joharizadeh, A. Gordon, Advait Sarkar
{"title":"Higher-Order Spreadsheets with Spilled Arrays","authors":"J. Williams, Nima Joharizadeh, A. Gordon, Advait Sarkar","doi":"10.1007/978-3-030-44914-8_27","DOIUrl":"https://doi.org/10.1007/978-3-030-44914-8_27","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"11 1","pages":"743 - 769"},"PeriodicalIF":1.3,"publicationDate":"2020-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75044548","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-04-18DOI: 10.1007/978-3-030-44914-8_26
V. Vasconcelos, Filipe Casal, Bernardo Almeida, Andreia Mordido
{"title":"Mixed Sessions","authors":"V. Vasconcelos, Filipe Casal, Bernardo Almeida, Andreia Mordido","doi":"10.1007/978-3-030-44914-8_26","DOIUrl":"https://doi.org/10.1007/978-3-030-44914-8_26","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"15 1","pages":"715 - 742"},"PeriodicalIF":1.3,"publicationDate":"2020-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73949938","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-04-18DOI: 10.1007/978-3-030-44914-8_23
Ben Simner, Shaked Flur, Christopher Pulte, A. Armstrong, Jean Pichon-Pharabod, Luc Maranget, Peter Sewell
{"title":"ARMv8-A System Semantics: Instruction Fetch in Relaxed Architectures","authors":"Ben Simner, Shaked Flur, Christopher Pulte, A. Armstrong, Jean Pichon-Pharabod, Luc Maranget, Peter Sewell","doi":"10.1007/978-3-030-44914-8_23","DOIUrl":"https://doi.org/10.1007/978-3-030-44914-8_23","url":null,"abstract":"","PeriodicalId":50939,"journal":{"name":"ACM Transactions on Programming Languages and Systems","volume":"19 1","pages":"626 - 655"},"PeriodicalIF":1.3,"publicationDate":"2020-04-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80085288","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}