K-Go:K框架下Go语言的可执行形式语义

IET Blockchain Pub Date : 2023-03-13 DOI:10.1049/blc2.12024
Can Zhao, Qin Liu, Zonghua Hu, Ze Yu, Dejun Wang, Bo Meng
{"title":"K-Go:K框架下Go语言的可执行形式语义","authors":"Can Zhao,&nbsp;Qin Liu,&nbsp;Zonghua Hu,&nbsp;Ze Yu,&nbsp;Dejun Wang,&nbsp;Bo Meng","doi":"10.1049/blc2.12024","DOIUrl":null,"url":null,"abstract":"<p>Go is a relatively new programming language and has become one of the most important programming languages used widely in blockchain. A formal semantics plays an important role in program synthesis, analysis and verification. The existed formal semantics of Go are not executable and do not cover the core features, hence, this paper presents an executable formal semantics for Go, called K-Go, using rewriting logic in <math>\n <semantics>\n <mi>K</mi>\n <annotation>$\\mathbb{K}$</annotation>\n </semantics></math> framework to make sure the semantics is both executable and applicable. K-Go includes syntax, configuration and rules and covers the declaration and definition of basic types, basic expression, concurrency, main statement data reading and writing based on channel. K-Go is validated by test set with 100% semantic coverage based on the official test suite. The evaluation experiment shows that K-Go is correct. Using formal semantics of Go language, building Go program synthesis, analysis and verification tools is easy for analyzing more characteristics of Go programs.</p>","PeriodicalId":100650,"journal":{"name":"IET Blockchain","volume":"3 2","pages":"61-73"},"PeriodicalIF":0.0000,"publicationDate":"2023-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://onlinelibrary.wiley.com/doi/epdf/10.1049/blc2.12024","citationCount":"0","resultStr":"{\"title\":\"K-Go: An executable formal semantics of Go language in K framework\",\"authors\":\"Can Zhao,&nbsp;Qin Liu,&nbsp;Zonghua Hu,&nbsp;Ze Yu,&nbsp;Dejun Wang,&nbsp;Bo Meng\",\"doi\":\"10.1049/blc2.12024\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<p>Go is a relatively new programming language and has become one of the most important programming languages used widely in blockchain. A formal semantics plays an important role in program synthesis, analysis and verification. The existed formal semantics of Go are not executable and do not cover the core features, hence, this paper presents an executable formal semantics for Go, called K-Go, using rewriting logic in <math>\\n <semantics>\\n <mi>K</mi>\\n <annotation>$\\\\mathbb{K}$</annotation>\\n </semantics></math> framework to make sure the semantics is both executable and applicable. K-Go includes syntax, configuration and rules and covers the declaration and definition of basic types, basic expression, concurrency, main statement data reading and writing based on channel. K-Go is validated by test set with 100% semantic coverage based on the official test suite. The evaluation experiment shows that K-Go is correct. Using formal semantics of Go language, building Go program synthesis, analysis and verification tools is easy for analyzing more characteristics of Go programs.</p>\",\"PeriodicalId\":100650,\"journal\":{\"name\":\"IET Blockchain\",\"volume\":\"3 2\",\"pages\":\"61-73\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2023-03-13\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://onlinelibrary.wiley.com/doi/epdf/10.1049/blc2.12024\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"IET Blockchain\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://onlinelibrary.wiley.com/doi/10.1049/blc2.12024\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"IET Blockchain","FirstCategoryId":"1085","ListUrlMain":"https://onlinelibrary.wiley.com/doi/10.1049/blc2.12024","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

Go是一种相对较新的编程语言,已成为区块链中广泛使用的最重要的编程语言之一。形式语义在程序综合、分析和验证中起着重要作用。由于Go已有的形式语义是不可执行的,并且没有覆盖核心特征,因此,本文在K$\mathbb{K}$框架中使用重写逻辑,提出了一种Go的可执行形式语义K-Go,以确保该语义是可执行的和可应用的。K-Go包括语法、配置和规则,涵盖了基本类型的声明和定义、基本表达式、并发性、基于通道的主语句数据读写。K-Go通过基于官方测试套件的100%语义覆盖的测试集进行验证。评价实验表明K-Go是正确的。利用Go语言的形式语义,构建Go程序的综合、分析和验证工具,可以方便地分析Go程序的更多特征。
本文章由计算机程序翻译,如有差异,请以英文原文为准。

K-Go: An executable formal semantics of Go language in K framework

K-Go: An executable formal semantics of Go language in K framework

Go is a relatively new programming language and has become one of the most important programming languages used widely in blockchain. A formal semantics plays an important role in program synthesis, analysis and verification. The existed formal semantics of Go are not executable and do not cover the core features, hence, this paper presents an executable formal semantics for Go, called K-Go, using rewriting logic in K $\mathbb{K}$ framework to make sure the semantics is both executable and applicable. K-Go includes syntax, configuration and rules and covers the declaration and definition of basic types, basic expression, concurrency, main statement data reading and writing based on channel. K-Go is validated by test set with 100% semantic coverage based on the official test suite. The evaluation experiment shows that K-Go is correct. Using formal semantics of Go language, building Go program synthesis, analysis and verification tools is easy for analyzing more characteristics of Go programs.

求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
CiteScore
1.80
自引率
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学术文献互助群
群 号:481959085
Book学术官方微信