会话类型满足分离逻辑

Jesper Bengtson
{"title":"会话类型满足分离逻辑","authors":"Jesper Bengtson","doi":"10.1145/2631172.2631173","DOIUrl":null,"url":null,"abstract":"Session types and separation logic are two leading methodologies for software verification. Session types allow users to write protocols that concurrent programs must adhere to; a session type specifies the order in which messages have to be exchanged, and the types of the data those messages carry. By checking that programs follow compatible session types, we can reason about the ways processes interact, ultimately guaranteeing the absence of deadlocks and race conditions in sessions. Separation logic is an extension of Hoare logic that is typically used to prove full functional correctness of sequential stateful programs; using separation logic, we can write pre- and post-conditions for program statements that use mutable stores such as a heap and modularly verify that they satisfy these specifications. Separation logic is more expressive than session types when it comes to data: with it we can state properties such as \"x is a number greater than five\", whereas session types can only express that \"x is a number\". On the other hand, session types offer a powerful means of checking that the communications among concurrent programs do not interfere with each other or deadlock.","PeriodicalId":262518,"journal":{"name":"International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2014-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Session Types Meet Separation Logic\",\"authors\":\"Jesper Bengtson\",\"doi\":\"10.1145/2631172.2631173\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Session types and separation logic are two leading methodologies for software verification. Session types allow users to write protocols that concurrent programs must adhere to; a session type specifies the order in which messages have to be exchanged, and the types of the data those messages carry. By checking that programs follow compatible session types, we can reason about the ways processes interact, ultimately guaranteeing the absence of deadlocks and race conditions in sessions. Separation logic is an extension of Hoare logic that is typically used to prove full functional correctness of sequential stateful programs; using separation logic, we can write pre- and post-conditions for program statements that use mutable stores such as a heap and modularly verify that they satisfy these specifications. Separation logic is more expressive than session types when it comes to data: with it we can state properties such as \\\"x is a number greater than five\\\", whereas session types can only express that \\\"x is a number\\\". On the other hand, session types offer a powerful means of checking that the communications among concurrent programs do not interfere with each other or deadlock.\",\"PeriodicalId\":262518,\"journal\":{\"name\":\"International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2014-07-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2631172.2631173\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2631172.2631173","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

会话类型和分离逻辑是软件验证的两种主要方法。会话类型允许用户编写并发程序必须遵守的协议;会话类型指定了交换消息的顺序,以及这些消息所携带的数据类型。通过检查程序是否遵循兼容的会话类型,我们可以推断进程交互的方式,最终保证会话中没有死锁和竞争条件。分离逻辑是霍尔逻辑的扩展,通常用于证明顺序有状态程序的全功能正确性;使用分离逻辑,我们可以为使用可变存储(如堆)的程序语句编写前置和后置条件,并模块化地验证它们是否满足这些规范。当涉及到数据时,分离逻辑比会话类型更具表现力:使用它,我们可以声明属性,例如“x是大于5的数字”,而会话类型只能表示“x是一个数字”。另一方面,会话类型提供了一种强大的方法来检查并发程序之间的通信是否相互干扰或死锁。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Session Types Meet Separation Logic
Session types and separation logic are two leading methodologies for software verification. Session types allow users to write protocols that concurrent programs must adhere to; a session type specifies the order in which messages have to be exchanged, and the types of the data those messages carry. By checking that programs follow compatible session types, we can reason about the ways processes interact, ultimately guaranteeing the absence of deadlocks and race conditions in sessions. Separation logic is an extension of Hoare logic that is typically used to prove full functional correctness of sequential stateful programs; using separation logic, we can write pre- and post-conditions for program statements that use mutable stores such as a heap and modularly verify that they satisfy these specifications. Separation logic is more expressive than session types when it comes to data: with it we can state properties such as "x is a number greater than five", whereas session types can only express that "x is a number". On the other hand, session types offer a powerful means of checking that the communications among concurrent programs do not interfere with each other or deadlock.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信