Behavioural Types: Bridging Theory and Practice (Dagstuhl Seminar 21372)

M. Dezani-Ciancaglini, Roland Kuhn, S. Lindley, A. Scalas
{"title":"Behavioural Types: Bridging Theory and Practice (Dagstuhl Seminar 21372)","authors":"M. Dezani-Ciancaglini, Roland Kuhn, S. Lindley, A. Scalas","doi":"10.4230/DagRep.11.8.52","DOIUrl":null,"url":null,"abstract":"Behavioural types specify the way in which software components interact with one another. Unlike data types (which describe the structure of data), behavioural types describe communication protocols, and their verification ensures that programs do not violate such protocols. The behavioural types research community has developed a flourishing literature on communicationcentric programming, exploring many directions. One of the most studied behavioural type systems are session types, introduced by Honda et al. in the ‘90s, and awarded with prizes for their influence in the past 20 and 10 years (by the ESOP and POPL conferences, respectively). Other varieties of behavioural types include typestate systems, choreographies, and behavioural contracts; research on verification techniques covers the spectrum from fully static verification at compile-time to fully dynamic verification at run-time. In the last decade, research on behavioural types has shifted emphasis towards practical applications, using both novel and existing programming languages (e.g., Java, Python, Go, C, Haskell, OCaml, Erlang, Scala, Rust). An earlier Dagstuhl Seminar, 17051 “Theory and Applications of Behavioural Types” (January 29–February 3, 2017), played an important role in coordinating this effort. Yet, despite the vibrant community and the stream of new results, the use of behavioural types for mainstream software development and verification remains limited. This limitation is largely down to the rapid pace at which mainstream industrial practice for the design and development of concurrent and distributed systems evolves, often resulting in substantial divergence from academic research. In the absence of established tools to express communication protocols, widely used implementations concentrate solely on scalability and reliability. The flip side is that these systems are either overly loose, supporting any conceivable communication structure (via brokers), or overly restricted, supporting only simple requestresponse protocols (like HTTP or RPC). In this seminar, experts from academia and industry explored together how best to bridge the gap between theory and mainstream practice. They tackled challenges that are fundamental in practical systems development, but are rarely or only partially addressed in the behavioural types literature – in particular, failure handling, asynchronous communication, and dynamic reconfiguration. Moreover they explored how the tools of behavioural types and programming languages theory (such as linearity, gradual types, and dependent types) can help to address these challenges. Seminar September 12–17, 2021 – http://www.dagstuhl.de/21372 2012 ACM Subject Classification Theory of computation → Models of computation; Theory of computation → Process calculi; Theory of computation → Type structures","PeriodicalId":91064,"journal":{"name":"Dagstuhl reports","volume":"206 1","pages":"52-75"},"PeriodicalIF":0.0000,"publicationDate":"2021-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Dagstuhl reports","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.4230/DagRep.11.8.52","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

Behavioural types specify the way in which software components interact with one another. Unlike data types (which describe the structure of data), behavioural types describe communication protocols, and their verification ensures that programs do not violate such protocols. The behavioural types research community has developed a flourishing literature on communicationcentric programming, exploring many directions. One of the most studied behavioural type systems are session types, introduced by Honda et al. in the ‘90s, and awarded with prizes for their influence in the past 20 and 10 years (by the ESOP and POPL conferences, respectively). Other varieties of behavioural types include typestate systems, choreographies, and behavioural contracts; research on verification techniques covers the spectrum from fully static verification at compile-time to fully dynamic verification at run-time. In the last decade, research on behavioural types has shifted emphasis towards practical applications, using both novel and existing programming languages (e.g., Java, Python, Go, C, Haskell, OCaml, Erlang, Scala, Rust). An earlier Dagstuhl Seminar, 17051 “Theory and Applications of Behavioural Types” (January 29–February 3, 2017), played an important role in coordinating this effort. Yet, despite the vibrant community and the stream of new results, the use of behavioural types for mainstream software development and verification remains limited. This limitation is largely down to the rapid pace at which mainstream industrial practice for the design and development of concurrent and distributed systems evolves, often resulting in substantial divergence from academic research. In the absence of established tools to express communication protocols, widely used implementations concentrate solely on scalability and reliability. The flip side is that these systems are either overly loose, supporting any conceivable communication structure (via brokers), or overly restricted, supporting only simple requestresponse protocols (like HTTP or RPC). In this seminar, experts from academia and industry explored together how best to bridge the gap between theory and mainstream practice. They tackled challenges that are fundamental in practical systems development, but are rarely or only partially addressed in the behavioural types literature – in particular, failure handling, asynchronous communication, and dynamic reconfiguration. Moreover they explored how the tools of behavioural types and programming languages theory (such as linearity, gradual types, and dependent types) can help to address these challenges. Seminar September 12–17, 2021 – http://www.dagstuhl.de/21372 2012 ACM Subject Classification Theory of computation → Models of computation; Theory of computation → Process calculi; Theory of computation → Type structures
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
行为类型:衔接理论与实践(Dagstuhl Seminar 21372)
行为类型指定了软件组件彼此交互的方式。与数据类型(描述数据结构)不同,行为类型描述通信协议,它们的验证确保程序不违反这些协议。行为类型研究界已经开发了大量关于以通信为中心的编程的文献,探索了许多方向。研究最多的行为类型系统之一是会话类型,由Honda等人在90年代提出,并因其在过去20年和10年的影响力而获得奖项(分别由ESOP和POPL会议颁发)。其他种类的行为类型包括类型状态系统、编排和行为契约;验证技术的研究涵盖了从编译时的完全静态验证到运行时的完全动态验证的范围。在过去十年中,对行为类型的研究已经将重点转向实际应用,使用新的和现有的编程语言(例如,Java, Python, Go, C, Haskell, OCaml, Erlang, Scala, Rust)。早前的Dagstuhl研讨会,17051“行为类型的理论和应用”(2017年1月29日至2月3日),在协调这一努力中发挥了重要作用。然而,尽管有活跃的社区和新的结果流,主流软件开发和验证中行为类型的使用仍然有限。这种限制很大程度上归结于并发和分布式系统设计和开发的主流工业实践的快速发展,经常导致与学术研究的实质性分歧。在缺乏表达通信协议的既定工具的情况下,广泛使用的实现只关注可伸缩性和可靠性。另一方面,这些系统要么过于松散,支持任何可能的通信结构(通过代理),要么过于受限,只支持简单的请求响应协议(如HTTP或RPC)。在本次研讨会上,来自学术界和工业界的专家共同探讨了如何最好地弥合理论与主流实践之间的差距。他们解决了在实际系统开发中基本的挑战,但是在行为类型文献中很少或仅仅部分地解决了这些挑战——特别是,故障处理、异步通信和动态重新配置。此外,他们还探讨了行为类型和编程语言理论的工具(如线性、渐进类型和依赖类型)如何帮助解决这些挑战。研讨会2021年9月12-17日- http://www.dagstuhl.de/21372 2012 ACM学科分类计算理论→计算模型;计算理论→过程演算;计算理论→类型结构
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Computer Science Methods for Effective and Sustainable Simulation Studies (Dagstuhl Seminar 22401) Intelligent Security: Is "AI for Cybersecurity" a Blessing or a Curse (Dagstuhl Seminar 22412) Logic and Random Discrete Structures (Dagstuhl Seminar 22061) Security of Decentralized Financial Technologies (Dagstuhl Seminar 22421) Developmental Machine Learning: From Human Learning to Machines and Back (Dagstuhl Seminar 22422)
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1