首页 > 最新文献

CoRR最新文献

英文 中文
Lightweight Interactive Proving inside an Automatic Program Verifier 自动程序验证器中的轻量级交互式证明
Pub Date : 2018-11-27 DOI: 10.4204/EPTCS.284.1
Sylvain Dailler, C. Marché, Yannick Moy
Among formal methods, the deductive verification approach allows establishing the strongest possible formal guarantees on critical software. The downside is the cost in terms of human effort required to design adequate formal specifications and to successfully discharge the required proof obligations. To popularize deductive verification in an industrial software development environment, it is essential to provide means to progressively transition from simple and automated approaches to deductive verification. The SPARK environment, for development of critical software written in Ada, goes towards this goal by providing automated tools for formally proving that some code fulfills the requirements expressed in Ada contracts. In a program verifier that makes use of automatic provers to discharge the proof obligations, a need for some additional user interaction with proof tasks shows up: either to help analyzing the reason of a proof failure or, ultimately, to discharge the verification conditions that are out-of-reach of state-of-the-art automatic provers. Adding interactive proof features in SPARK appears to be complicated by the fact that the proof toolchain makes use of the independent, intermediate verification tool Why3, which is generic enough to accept multiple front-ends for different input languages. This paper reports on our approach to extend Why3 with interactive proof features and also with a generic client-server infrastructure allowing integration of proof interaction into an external, front-end graph-ical user interface such as the one of SPARK.
在形式化方法中,演绎验证方法允许在关键软件上建立最强有力的形式化保证。缺点是设计足够的正式规范和成功履行所需的证明义务所需的人力成本。为了在工业软件开发环境中普及演绎验证,提供从简单和自动化方法逐步过渡到演绎验证的方法是必要的。用于开发用Ada编写的关键软件的SPARK环境,通过提供自动化工具来正式证明某些代码满足Ada契约中表达的需求,从而实现了这一目标。在使用自动证明器履行证明义务的程序验证器中,需要与证明任务进行一些额外的用户交互:要么帮助分析证明失败的原因,要么最终履行最先进的自动证明器无法达到的验证条件。在SPARK中添加交互式证明功能似乎很复杂,因为证明工具链使用了独立的中间验证工具Why3,该工具足够通用,可以接受不同输入语言的多个前端。本文报告了我们使用交互式证明功能和通用客户端-服务器基础设施扩展Why3的方法,该基础设施允许将证明交互集成到外部前端图形用户界面(如SPARK)中。
{"title":"Lightweight Interactive Proving inside an Automatic Program Verifier","authors":"Sylvain Dailler, C. Marché, Yannick Moy","doi":"10.4204/EPTCS.284.1","DOIUrl":"https://doi.org/10.4204/EPTCS.284.1","url":null,"abstract":"Among formal methods, the deductive verification approach allows establishing the strongest possible formal guarantees on critical software. The downside is the cost in terms of human effort required to design adequate formal specifications and to successfully discharge the required proof obligations. To popularize deductive verification in an industrial software development environment, it is essential to provide means to progressively transition from simple and automated approaches to deductive verification. The SPARK environment, for development of critical software written in Ada, goes towards this goal by providing automated tools for formally proving that some code fulfills the requirements expressed in Ada contracts. In a program verifier that makes use of automatic provers to discharge the proof obligations, a need for some additional user interaction with proof tasks shows up: either to help analyzing the reason of a proof failure or, ultimately, to discharge the verification conditions that are out-of-reach of state-of-the-art automatic provers. Adding interactive proof features in SPARK appears to be complicated by the fact that the proof toolchain makes use of the independent, intermediate verification tool Why3, which is generic enough to accept multiple front-ends for different input languages. This paper reports on our approach to extend Why3 with interactive proof features and also with a generic client-server infrastructure allowing integration of proof interaction into an external, front-end graph-ical user interface such as the one of SPARK.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"19 1","pages":"1-15"},"PeriodicalIF":0.0,"publicationDate":"2018-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91166672","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Experience Report on Formally Verifying Parts of OpenJDK's API with KeY 使用KeY正式验证OpenJDK部分API经验报告
Pub Date : 2018-11-27 DOI: 10.4204/EPTCS.284.5
Alexander Knüppel, Thomas Thüm, C. Pardylla, Ina Schaefer
Deductive verification of software has not yet found its way into industry, as complexity and scalability issues require highly specialized experts. The long-term perspective is, however, to develop verification tools aiding industrial software developers to find bugs or bottlenecks in software systems faster and more easily. The KeY project constitutes a framework for specifying and verifying software systems, aiming at making formal verification tools applicable for mainstream software development. To help the developers of KeY, its users, and the deductive verification community, we summarize our experiences with KeY 2.6.1 in specifying and verifying real-world Java code from a users perspective. To this end, we concentrate on parts of the Collections-API of OpenJDK 6, where an informal specification exists. While we describe how we bridged informal and formal specification, we also exhibit accompanied challenges that we encountered. Our experiences are that (a) in principle, deductive verification for API-like code bases is feasible, but requires high expertise, (b) developing formal specifications for existing code bases is still notoriously hard, and (c) the under-specification of certain language constructs in Java is challenging for tool builders. Our initial effort in specifying parts of OpenJDK 6 constitutes a stepping stone towards a case study for future research.
软件的演绎验证尚未进入工业领域,因为复杂性和可伸缩性问题需要高度专业化的专家。然而,长期的观点是开发验证工具,帮助工业软件开发人员更快、更容易地发现软件系统中的错误或瓶颈。KeY项目构成了一个用于指定和验证软件系统的框架,旨在使正式的验证工具适用于主流软件开发。为了帮助KeY的开发人员、用户和演绎验证社区,我们从用户的角度总结了KeY 2.6.1在指定和验证实际Java代码方面的经验。为此,我们将重点放在OpenJDK 6的Collections-API部分,其中存在非正式规范。当我们描述我们如何将非正式规范和正式规范连接起来时,我们也展示了我们所遇到的挑战。我们的经验是:(a)原则上,对类似api的代码库进行演绎验证是可行的,但需要很高的专业知识;(b)为现有的代码库开发正式的规范仍然是出了名的困难;(c) Java中某些语言结构的不规范对工具构建者来说是一个挑战。我们最初在指定OpenJDK 6的部分方面所做的努力为未来的研究提供了一个案例研究的垫脚石。
{"title":"Experience Report on Formally Verifying Parts of OpenJDK's API with KeY","authors":"Alexander Knüppel, Thomas Thüm, C. Pardylla, Ina Schaefer","doi":"10.4204/EPTCS.284.5","DOIUrl":"https://doi.org/10.4204/EPTCS.284.5","url":null,"abstract":"Deductive verification of software has not yet found its way into industry, as complexity and scalability issues require highly specialized experts. The long-term perspective is, however, to develop verification tools aiding industrial software developers to find bugs or bottlenecks in software systems faster and more easily. The KeY project constitutes a framework for specifying and verifying software systems, aiming at making formal verification tools applicable for mainstream software development. To help the developers of KeY, its users, and the deductive verification community, we summarize our experiences with KeY 2.6.1 in specifying and verifying real-world Java code from a users perspective. To this end, we concentrate on parts of the Collections-API of OpenJDK 6, where an informal specification exists. While we describe how we bridged informal and formal specification, we also exhibit accompanied challenges that we encountered. Our experiences are that (a) in principle, deductive verification for API-like code bases is feasible, but requires high expertise, (b) developing formal specifications for existing code bases is still notoriously hard, and (c) the under-specification of certain language constructs in Java is challenging for tool builders. Our initial effort in specifying parts of OpenJDK 6 constitutes a stepping stone towards a case study for future research.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"2 1","pages":"53-70"},"PeriodicalIF":0.0,"publicationDate":"2018-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73398935","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
User Support for the Combinator Logic Synthesizer Framework 对组合器逻辑合成器框架的用户支持
Pub Date : 2018-11-27 DOI: 10.4204/EPTCS.284.2
Jan Bessai, Anna A. Vasileva
Usability is crucial for the adoption of software development technologies. This is especially true in development stages, where build processes fail, because software is not yet complete or was incompletely modified. We present early work that aims to improve usability of the Combinatory Logic Synthesizer (CL)S framework, especially in these stages. (CL)S is a publicly available type-based development tool for the automatic composition of software components from a user-specified repository. It provides an implementation of a type inhabitation algorithm for Combinatory Logic with intersection types, which is fully integrated into the Scala programming language. Here, we specifically focus on building a web-based IDE to make potentially incomplete or erroneous input specifications for and decisions of the algorithm understandable for non-experts. A main aspect of this is providing graphical representations illustrating the step-wise search process of the algorithm. We also provide a detailed discussion of possible future work to further improve the understandability of these representations.
可用性对于采用软件开发技术是至关重要的。在开发阶段尤其如此,因为软件尚未完成或未完全修改,构建过程会失败。我们提出了早期的工作,旨在提高组合逻辑合成器(CL)S框架的可用性,特别是在这些阶段。(CL)S是一种公开可用的基于类型的开发工具,用于从用户指定的存储库自动组合软件组件。它为具有交叉类型的组合逻辑提供了类型驻留算法的实现,该算法完全集成到Scala编程语言中。在这里,我们特别关注于构建一个基于web的IDE,以使可能不完整或错误的输入规范和非专家可以理解的算法决策。其中一个主要方面是提供图形表示来说明算法的逐步搜索过程。我们还详细讨论了未来可能的工作,以进一步提高这些表示的可理解性。
{"title":"User Support for the Combinator Logic Synthesizer Framework","authors":"Jan Bessai, Anna A. Vasileva","doi":"10.4204/EPTCS.284.2","DOIUrl":"https://doi.org/10.4204/EPTCS.284.2","url":null,"abstract":"Usability is crucial for the adoption of software development technologies. This is especially true in development stages, where build processes fail, because software is not yet complete or was incompletely modified. We present early work that aims to improve usability of the Combinatory Logic Synthesizer (CL)S framework, especially in these stages. (CL)S is a publicly available type-based development tool for the automatic composition of software components from a user-specified repository. It provides an implementation of a type inhabitation algorithm for Combinatory Logic with intersection types, which is fully integrated into the Scala programming language. Here, we specifically focus on building a web-based IDE to make potentially incomplete or erroneous input specifications for and decisions of the algorithm understandable for non-experts. A main aspect of this is providing graphical representations illustrating the step-wise search process of the algorithm. We also provide a detailed discussion of possible future work to further improve the understandability of these representations.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"Volume 16 1","pages":"16-25"},"PeriodicalIF":0.0,"publicationDate":"2018-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80003345","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Isabelle/jEdit as IDE for Domain-specific Formal Languages and Informal Text Documents Isabelle/jEdit作为特定领域的正式语言和非正式文本文档的IDE
Pub Date : 2018-11-27 DOI: 10.4204/EPTCS.284.6
M. Wenzel
Isabelle/jEdit is the main application of the Prover IDE (PIDE) framework and the default user-interface of Isabelle, but it is not limited to theorem proving. This paper explores possibilities to use it as a general IDE for formal languages that are defined in user-space, and embedded into informal text documents. It covers overall document structure with auxiliary files and document antiquotations, formal text delimiters and markers for interpretation (via control symbols). The ultimate question behind this: How far can we stretch a plain text editor like jEdit in order to support semantic text processing, with support by the underlying PIDE framework?
Isabelle/jEdit是Prover IDE (PIDE)框架的主要应用程序,也是Isabelle的默认用户界面,但它并不局限于定理证明。本文探讨了将它用作在用户空间中定义并嵌入到非正式文本文档中的正式语言的通用IDE的可能性。它涵盖了整个文档结构,包括辅助文件和文档反引号、正式文本分隔符和用于解释的标记(通过控制符号)。这背后的终极问题是:在底层PIDE框架的支持下,我们可以将jEdit这样的纯文本编辑器扩展到什么程度,以支持语义文本处理?
{"title":"Isabelle/jEdit as IDE for Domain-specific Formal Languages and Informal Text Documents","authors":"M. Wenzel","doi":"10.4204/EPTCS.284.6","DOIUrl":"https://doi.org/10.4204/EPTCS.284.6","url":null,"abstract":"Isabelle/jEdit is the main application of the Prover IDE (PIDE) framework and the default user-interface of Isabelle, but it is not limited to theorem proving. This paper explores possibilities to use it as a general IDE for formal languages that are defined in user-space, and embedded into informal text documents. It covers overall document structure with auxiliary files and document antiquotations, formal text delimiters and markers for interpretation (via control symbols). The ultimate question behind this: How far can we stretch a plain text editor like jEdit in order to support semantic text processing, with support by the underlying PIDE framework?","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"44 1","pages":"71-84"},"PeriodicalIF":0.0,"publicationDate":"2018-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84068319","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Improving the Visualization of Alloy Instances 改进合金实例的可视化
Pub Date : 2018-11-27 DOI: 10.4204/EPTCS.284.4
Rui Couto, J. C. Campos, Nuno Macedo, Alcino Cunha
Alloy is a lightweight formal specification language, supported by an IDE, which has proven well-suited for reasoning about software design in early development stages. The IDE provides a visualizer that produces graphical representations of analysis results, which is essential for the proper validation of the model. Alloy is a rich language but inherently static, so behavior needs to be explicitly encoded and reasoned about. Even though this is a common scenario, the visualizer presents limitations when dealing with such models. The main contribution of this paper is a principled approach to generate instance visualizations, which improves the current Alloy Visualizer, focusing on the representation of behavior.
Alloy是一种轻量级的正式规范语言,由IDE支持,它已被证明非常适合在早期开发阶段对软件设计进行推理。IDE提供了一个可视化工具,可以生成分析结果的图形化表示,这对于模型的正确验证是必不可少的。Alloy是一种丰富的语言,但本质上是静态的,因此需要显式地对行为进行编码和推理。尽管这是一种常见的场景,但是可视化工具在处理此类模型时仍然存在局限性。本文的主要贡献是一种有原则的方法来生成实例可视化,它改进了当前的Alloy Visualizer,专注于行为的表示。
{"title":"Improving the Visualization of Alloy Instances","authors":"Rui Couto, J. C. Campos, Nuno Macedo, Alcino Cunha","doi":"10.4204/EPTCS.284.4","DOIUrl":"https://doi.org/10.4204/EPTCS.284.4","url":null,"abstract":"Alloy is a lightweight formal specification language, supported by an IDE, which has proven well-suited for reasoning about software design in early development stages. The IDE provides a visualizer that produces graphical representations of analysis results, which is essential for the proper validation of the model. Alloy is a rich language but inherently static, so behavior needs to be explicitly encoded and reasoned about. Even though this is a common scenario, the visualizer presents limitations when dealing with such models. The main contribution of this paper is a principled approach to generate instance visualizations, which improves the current Alloy Visualizer, focusing on the representation of behavior.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"2 1","pages":"37-52"},"PeriodicalIF":0.0,"publicationDate":"2018-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80208942","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Information Flow in Pregroup Models of Natural Language 自然语言预群模型中的信息流
Pub Date : 2018-11-08 DOI: 10.4204/EPTCS.283.2
P. Hines
This paper is about pregroup models of natural languages, and how they relate to the explicitly categorical use of pregroups in Compositional Distributional Semantics and Natural Language Processing. These categorical interpretations make certain assumptions about the nature of natural languages that, when stated formally, may be seen to impose strong restrictions on pregroup grammars for natural languages. We formalize this as a hypothesis about the form that pregroup models of natural languages must take, and demonstrate by an artificial language example that these restrictions are not imposed by the pregroup axioms themselves. We compare and contrast the artificial language examples with natural languages (using Welsh, a language where the 'noun' type cannot be taken as primitive, as an illustrative example). The hypothesis is simply that there must exist a causal connection, or information flow, between the words of a sentence in a language whose purpose is to communicate information. This is not necessarily the case with formal languages that are simply generated by a series of 'meaning-free' rules. This imposes restrictions on the types of pregroup grammars that we expect to find in natural languages; we formalize this in algebraic, categorical, and graphical terms. We take some preliminary steps in providing conditions that ensure pregroup models satisfy these conjectured properties, and discuss the more general forms this hypothesis may take.
本文研究了自然语言的预群模型,以及它们与预群在组合分布语义和自然语言处理中的明确分类使用的关系。这些分类解释对自然语言的本质做出了一定的假设,当这些假设被正式陈述时,可能会被视为对自然语言的前组语法施加了强烈的限制。我们将其形式化为关于自然语言的预群模型必须采取的形式的假设,并通过人工语言示例证明这些限制不是由预群公理本身施加的。我们将人工语言示例与自然语言进行比较和对比(使用威尔士语,一种不能将“名词”类型视为原始语言的语言,作为说明性示例)。这个假设很简单,在一种语言中,句子中的单词之间必须存在因果联系,或者信息流,而这种语言的目的是交流信息。对于简单地由一系列“无意义”规则生成的形式语言来说,情况就不一定是这样了。这对我们期望在自然语言中找到的预组语法类型施加了限制;我们用代数的、分类的和图形的术语来形式化它。我们采取了一些初步的步骤来提供条件,以确保预群模型满足这些推测的性质,并讨论了这个假设可能采取的更一般的形式。
{"title":"Information Flow in Pregroup Models of Natural Language","authors":"P. Hines","doi":"10.4204/EPTCS.283.2","DOIUrl":"https://doi.org/10.4204/EPTCS.283.2","url":null,"abstract":"This paper is about pregroup models of natural languages, and how they relate to the explicitly categorical use of pregroups in Compositional Distributional Semantics and Natural Language Processing. These categorical interpretations make certain assumptions about the nature of natural languages that, when stated formally, may be seen to impose strong restrictions on pregroup grammars for natural languages. \u0000We formalize this as a hypothesis about the form that pregroup models of natural languages must take, and demonstrate by an artificial language example that these restrictions are not imposed by the pregroup axioms themselves. We compare and contrast the artificial language examples with natural languages (using Welsh, a language where the 'noun' type cannot be taken as primitive, as an illustrative example). \u0000The hypothesis is simply that there must exist a causal connection, or information flow, between the words of a sentence in a language whose purpose is to communicate information. This is not necessarily the case with formal languages that are simply generated by a series of 'meaning-free' rules. This imposes restrictions on the types of pregroup grammars that we expect to find in natural languages; we formalize this in algebraic, categorical, and graphical terms. \u0000We take some preliminary steps in providing conditions that ensure pregroup models satisfy these conjectured properties, and discuss the more general forms this hypothesis may take.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"81 1","pages":"13-27"},"PeriodicalIF":0.0,"publicationDate":"2018-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85817729","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Applying Distributional Compositional Categorical Models of Meaning to Language Translation 分布组合范畴意义模型在语言翻译中的应用
Pub Date : 2018-11-08 DOI: 10.4204/EPTCS.283.3
Brian Tyrrell
The aim of this paper is twofold: first we will use vector space distributional compositional categorical models of meaning to compare the meaning of sentences in Irish and in English (and thus ascertain when a sentence is the translation of another sentence) using the cosine similarity score. Then we shall outline a procedure which translates nouns by understanding their context, using a conceptual space model of cognition. We shall use metrics on the category ConvexRel to determine the distance between concepts (and determine when a noun is the translation of another noun). This paper will focus on applications to Irish, a member of the Gaelic family of languages.
本文的目的是双重的:首先,我们将使用向量空间分布组成意义分类模型来比较爱尔兰语和英语句子的意义(从而确定一个句子何时是另一个句子的翻译)使用余弦相似度评分。然后,我们将概述一个程序,通过理解名词的语境,使用认知的概念空间模型翻译名词。我们将使用范畴ConvexRel上的度量来确定概念之间的距离(并确定一个名词何时是另一个名词的翻译)。这篇论文将集中于应用于爱尔兰语,盖尔语家族的一员。
{"title":"Applying Distributional Compositional Categorical Models of Meaning to Language Translation","authors":"Brian Tyrrell","doi":"10.4204/EPTCS.283.3","DOIUrl":"https://doi.org/10.4204/EPTCS.283.3","url":null,"abstract":"The aim of this paper is twofold: first we will use vector space distributional compositional categorical models of meaning to compare the meaning of sentences in Irish and in English (and thus ascertain when a sentence is the translation of another sentence) using the cosine similarity score. Then we shall outline a procedure which translates nouns by understanding their context, using a conceptual space model of cognition. We shall use metrics on the category ConvexRel to determine the distance between concepts (and determine when a noun is the translation of another noun). This paper will focus on applications to Irish, a member of the Gaelic family of languages.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"32 1","pages":"28-49"},"PeriodicalIF":0.0,"publicationDate":"2018-11-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88286246","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Some Challenges of Specifying Concurrent Program Components 指定并发程序组件的一些挑战
Pub Date : 2018-10-23 DOI: 10.4204/EPTCS.282.2
I. Hayes
The purpose of this paper is to address some of the challenges of formally specifying components of shared-memory concurrent programs. The focus is to provide an abstract specification of a component that is suitable for use both by clients of the component and as a starting point for refinement to an implementation of the component. We present some approaches to devising specifications, investigating different forms suitable for different contexts. We examine handling atomicity of access to data structures, blocking operations and progress properties, and transactional operations that may fail and need to be retried.
本文的目的是解决正式指定共享内存并发程序组件的一些挑战。重点是提供组件的抽象规范,该规范既适合组件的客户端使用,也适合作为细化组件实现的起点。我们提出了一些设计规范的方法,研究适合不同环境的不同形式。我们将研究访问数据结构、阻塞操作和进度属性以及可能失败并需要重试的事务操作的处理原子性。
{"title":"Some Challenges of Specifying Concurrent Program Components","authors":"I. Hayes","doi":"10.4204/EPTCS.282.2","DOIUrl":"https://doi.org/10.4204/EPTCS.282.2","url":null,"abstract":"The purpose of this paper is to address some of the challenges of formally specifying components of shared-memory concurrent programs. The focus is to provide an abstract specification of a component that is suitable for use both by clients of the component and as a starting point for refinement to an implementation of the component. We present some approaches to devising specifications, investigating different forms suitable for different contexts. We examine handling atomicity of access to data structures, blocking operations and progress properties, and transactional operations that may fail and need to be retried.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"30 1","pages":"10-22"},"PeriodicalIF":0.0,"publicationDate":"2018-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88285797","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Refining Santa: An Exercise in Efficient Synchronization 精炼圣诞老人:高效同步的练习
Pub Date : 2018-10-23 DOI: 10.4204/EPTCS.282.6
E. Sekerinski, Shucai Yao
The Santa Claus Problem is an intricate exercise for concurrent programming. This paper outlines the refinement steps to develop a highly efficient implementation with concurrent objects, starting from a simple specification. The efficiency of the implementation is compared to those in other languages.
圣诞老人问题是并发编程的一个复杂练习。本文从一个简单的规范开始,概述了开发具有并发对象的高效实现的细化步骤。与其他语言的实现效率进行了比较。
{"title":"Refining Santa: An Exercise in Efficient Synchronization","authors":"E. Sekerinski, Shucai Yao","doi":"10.4204/EPTCS.282.6","DOIUrl":"https://doi.org/10.4204/EPTCS.282.6","url":null,"abstract":"The Santa Claus Problem is an intricate exercise for concurrent programming. This paper outlines the refinement steps to develop a highly efficient implementation with concurrent objects, starting from a simple specification. The efficiency of the implementation is compared to those in other languages.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"133 1","pages":"68-86"},"PeriodicalIF":0.0,"publicationDate":"2018-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73624073","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Programming Without Refining 不精炼的编程
Pub Date : 2018-10-23 DOI: 10.4204/EPTCS.282.4
Marwa Benabdelali, L. L. Jilani, Wided Ghardallou, A. Mili
To derive a program for a given specification R means to find an artifact P that satisfies two conditions: P is executable in some programming language; and P is correct with respect to R. Refinement-based program derivation achieves this goal in a stepwise manner by enhancing executability while preserving correctness until we achieve complete executability. In this paper, we argue that it is possible to invert these properties, and to derive a program by enhancing correctness while preserving executability (proceeding from one executable program to another) until we achieve absolute correctness. Of course, this latter process is possible only if we know how to enhance correctness.
为给定规范R导出程序意味着找到满足两个条件的工件P: P在某种编程语言中是可执行的;而P相对于r是正确的。基于细化的程序派生通过逐步增强可执行性来实现这一目标,同时保持正确性,直到我们达到完全可执行性。在本文中,我们认为有可能颠倒这些属性,并通过增强正确性来派生程序,同时保持可执行性(从一个可执行程序到另一个可执行程序),直到我们达到绝对的正确性。当然,后一个过程只有在我们知道如何提高正确性的情况下才有可能实现。
{"title":"Programming Without Refining","authors":"Marwa Benabdelali, L. L. Jilani, Wided Ghardallou, A. Mili","doi":"10.4204/EPTCS.282.4","DOIUrl":"https://doi.org/10.4204/EPTCS.282.4","url":null,"abstract":"To derive a program for a given specification R means to find an artifact P that satisfies two conditions: P is executable in some programming language; and P is correct with respect to R. Refinement-based program derivation achieves this goal in a stepwise manner by enhancing executability while preserving correctness until we achieve complete executability. In this paper, we argue that it is possible to invert these properties, and to derive a program by enhancing correctness while preserving executability (proceeding from one executable program to another) until we achieve absolute correctness. Of course, this latter process is possible only if we know how to enhance correctness.","PeriodicalId":10720,"journal":{"name":"CoRR","volume":"1 1","pages":"39-52"},"PeriodicalIF":0.0,"publicationDate":"2018-10-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86325600","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
期刊
CoRR
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
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