首页 > 最新文献

Journal of Historic Buildings and Places最新文献

英文 中文
Reversible Communicating Processes 可逆通信过程
4区 历史学 0 ARCHAEOLOGY Pub Date : 2016-02-10 DOI: 10.4204/EPTCS.203.4
Geoffrey M. Brown, A. Sabry
Reversible distributed programs have the ability to abort unproductive computation paths and backtrack, while unwinding communication that occurred in the aborted paths. While it is natural to assume that reversibility implies full state recovery (as with traditional roll-back recovery protocols), an interesting alternative is to separate backtracking from local state recovery. For example, such a model could be used to create complex transactions out of nested compensable transactions where a programmer-supplied compensation defines the work required to "unwind" a transaction. Reversible distributed computing has received considerable theoretical attention, but little reduction to practice; the few published implementations of languages supporting reversibility depend upon a high degree of central control. The objective of this paper is to demonstrate that a practical reversible distributed language can be efficiently implemented in a fully distributed manner. We discuss such a language, supporting CSP-style synchronous communication, embedded in Scala. While this language provided the motivation for the work described in this paper, our focus is upon the distributed implementation. In particular, we demonstrate that a "high-level" semantic model can be implemented using a simple point-to-point protocol.
可逆分布式程序具有中止非生产性计算路径和回溯的能力,同时解除在已中止的路径中发生的通信。虽然假设可逆性意味着完全状态恢复(与传统的回滚恢复协议一样)是很自然的,但一个有趣的替代方案是将回滚与本地状态恢复分开。例如,这样的模型可以用于从嵌套的可补偿事务中创建复杂的事务,其中程序员提供的补偿定义了“展开”事务所需的工作。可逆分布式计算在理论上受到了相当大的关注,但在实践中却很少减少;支持可逆性的少数已发布的语言实现依赖于高度的集中控制。本文的目的是证明一种实用的可逆分布式语言可以以完全分布式的方式有效地实现。我们将讨论这样一种语言,它支持嵌入Scala中的csp风格的同步通信。虽然这种语言为本文中描述的工作提供了动力,但我们的重点是分布式实现。特别是,我们演示了可以使用简单的点对点协议实现“高级”语义模型。
{"title":"Reversible Communicating Processes","authors":"Geoffrey M. Brown, A. Sabry","doi":"10.4204/EPTCS.203.4","DOIUrl":"https://doi.org/10.4204/EPTCS.203.4","url":null,"abstract":"Reversible distributed programs have the ability to abort unproductive computation paths and backtrack, while unwinding communication that occurred in the aborted paths. While it is natural to assume that reversibility implies full state recovery (as with traditional roll-back recovery protocols), an interesting alternative is to separate backtracking from local state recovery. For example, such a model could be used to create complex transactions out of nested compensable transactions where a programmer-supplied compensation defines the work required to \"unwind\" a transaction. \u0000Reversible distributed computing has received considerable theoretical attention, but little reduction to practice; the few published implementations of languages supporting reversibility depend upon a high degree of central control. The objective of this paper is to demonstrate that a practical reversible distributed language can be efficiently implemented in a fully distributed manner. \u0000We discuss such a language, supporting CSP-style synchronous communication, embedded in Scala. While this language provided the motivation for the work described in this paper, our focus is upon the distributed implementation. In particular, we demonstrate that a \"high-level\" semantic model can be implemented using a simple point-to-point protocol.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"2 1","pages":"45-59"},"PeriodicalIF":0.0,"publicationDate":"2016-02-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79007499","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Communicating machines as a dynamic binding mechanism of services 作为服务动态绑定机制的通信机器
4区 历史学 0 ARCHAEOLOGY Pub Date : 2016-02-10 DOI: 10.4204/EPTCS.203.7
Ignacio Vissani, C. L. Pombo, E. Tuosto
Distributed software is becoming more and more dynamic to support applications able to respond and adapt to the changes of their execution environment. For instance, service-oriented computing (SOC) envisages applications as services running over globally available computational resources where discovery and binding between them is transparently performed by a middleware. Asynchronous Relational Networks (ARNs) is a well-known formal orchestration model, based on hypergraphs, for the description of service-oriented software artefacts. Choreography and orchestration are the two main design principles for the development of distributed software. In this work, we propose Communicating Relational Networks (CRNs), which is a variant of ARNs, but relies on choreographies for the characterisation of the communicational aspects of a software artefact, and for making their automated analysis more efficient.
分布式软件正变得越来越动态,以支持能够响应和适应其执行环境变化的应用程序。例如,面向服务的计算(SOC)将应用程序设想为运行在全局可用计算资源上的服务,其中它们之间的发现和绑定由中间件透明地执行。异步关系网络(ARNs)是一种众所周知的基于超图的正式编排模型,用于描述面向服务的软件工件。编排和编排是分布式软件开发的两个主要设计原则。在这项工作中,我们提出了通信关系网络(crn),它是arn的一种变体,但依赖于编排来表征软件工件的通信方面,并使其自动化分析更有效。
{"title":"Communicating machines as a dynamic binding mechanism of services","authors":"Ignacio Vissani, C. L. Pombo, E. Tuosto","doi":"10.4204/EPTCS.203.7","DOIUrl":"https://doi.org/10.4204/EPTCS.203.7","url":null,"abstract":"Distributed software is becoming more and more dynamic to support applications able to respond and adapt to the changes of their execution environment. For instance, service-oriented computing (SOC) envisages applications as services running over globally available computational resources where discovery and binding between them is transparently performed by a middleware. Asynchronous Relational Networks (ARNs) is a well-known formal orchestration model, based on hypergraphs, for the description of service-oriented software artefacts. Choreography and orchestration are the two main design principles for the development of distributed software. In this work, we propose Communicating Relational Networks (CRNs), which is a variant of ARNs, but relies on choreographies for the characterisation of the communicational aspects of a software artefact, and for making their automated analysis more efficient.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"21 1","pages":"85-98"},"PeriodicalIF":0.0,"publicationDate":"2016-02-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74349252","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Using session types as an effect system 使用会话类型作为效果系统
4区 历史学 0 ARCHAEOLOGY Pub Date : 2016-02-10 DOI: 10.4204/EPTCS.203.1
Dominic A. Orchard, N. Yoshida
Side effects are a core part of practical programming. However, they are often hard to reason about, particularly in a concurrent setting. We propose a foundation for reasoning about concurrent side effects using sessions. Primarily, we show that session types are expressive enough to encode an effect system for stateful processes. This is formalised via an effect-preserving encoding of a simple imperative language with an effect system into the pi-calculus with session primitives and session types (into which we encode effect specifications). This result goes towards showing a connection between the expressivity of session types and effect systems. We briefly discuss how the encoding could be extended and applied to reason about and control concurrent side effects.
副作用是实际编程的核心部分。然而,它们通常很难推理,特别是在并发设置中。我们提出了一个使用会话来推理并发副作用的基础。首先,我们表明会话类型具有足够的表现力,可以为有状态进程编码一个效果系统。这是通过一个带有效果系统的简单命令式语言的保持效果的编码形式化到带有会话原语和会话类型的pi演算中(我们将效果规范编码到其中)。这个结果显示了会话类型的表现力和效果系统之间的联系。我们简要地讨论了如何扩展编码并应用于推断和控制并发副作用。
{"title":"Using session types as an effect system","authors":"Dominic A. Orchard, N. Yoshida","doi":"10.4204/EPTCS.203.1","DOIUrl":"https://doi.org/10.4204/EPTCS.203.1","url":null,"abstract":"Side effects are a core part of practical programming. However, they are often hard to reason about, particularly in a concurrent setting. We propose a foundation for reasoning about concurrent side effects using sessions. Primarily, we show that session types are expressive enough to encode an effect system for stateful processes. This is formalised via an effect-preserving encoding of a simple imperative language with an effect system into the pi-calculus with session primitives and session types (into which we encode effect specifications). This result goes towards showing a connection between the expressivity of session types and effect systems. We briefly discuss how the encoding could be extended and applied to reason about and control concurrent side effects.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"45 1","pages":"1-13"},"PeriodicalIF":0.0,"publicationDate":"2016-02-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78921831","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Sessions as Propositions 作为提案的会议
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-13 DOI: 10.4204/EPTCS.155.2
S. Lindley, J. Garrett Morris
Recently, Wadler presented a continuation-passing translation from a session-typed functional language, GV, to a process calculus based on classical linear logic, CP. However, this translation is one-way: CP is more expressive than GV. We propose an extension of GV, called HGV, and give translations showing that it is as expressive as CP. The new translations shed light both on the original translation from GV to CP, and on the limitations in expressiveness of GV.
最近,Wadler提出了一种从会话类型函数语言GV到基于经典线性逻辑的过程演算的连续传递翻译,但这种翻译是单向的:CP比GV更具表现力。我们提出了一种语言语言的扩展,称为HGV,并给出了与语言语言一样具有表达能力的翻译。新的翻译既揭示了从语言语言到语言语言的原始翻译,也揭示了语言语言在表达能力方面的局限性。
{"title":"Sessions as Propositions","authors":"S. Lindley, J. Garrett Morris","doi":"10.4204/EPTCS.155.2","DOIUrl":"https://doi.org/10.4204/EPTCS.155.2","url":null,"abstract":"Recently, Wadler presented a continuation-passing translation from a session-typed functional language, GV, to a process calculus based on classical linear logic, CP. However, this translation is one-way: CP is more expressive than GV. We propose an extension of GV, called HGV, and give translations showing that it is as expressive as CP. The new translations shed light both on the original translation from GV to CP, and on the limitations in expressiveness of GV.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"7 2 1","pages":"9-16"},"PeriodicalIF":0.0,"publicationDate":"2014-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77515730","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Multiparty Sessions based on Proof Nets 基于Proof Nets的多方会议
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-13 DOI: 10.4204/EPTCS.155.1
D. Mostrous
We interpret Linear Logic Proof Nets in a term language based on Solos calculus. The system includes a synchronisation mechanism, obtained by a conservative extension of the logic, that enables to define non-deterministic behaviours and multiparty sessions.
我们用基于Solos微积分的术语语言来解释线性逻辑证明网。该系统包括一个同步机制,通过逻辑的保守扩展获得,该机制允许定义非确定性行为和多方会话。
{"title":"Multiparty Sessions based on Proof Nets","authors":"D. Mostrous","doi":"10.4204/EPTCS.155.1","DOIUrl":"https://doi.org/10.4204/EPTCS.155.1","url":null,"abstract":"We interpret Linear Logic Proof Nets in a term language based on Solos calculus. The system includes a synchronisation mechanism, obtained by a conservative extension of the logic, that enables to define non-deterministic behaviours and multiparty sessions.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"26 1","pages":"1-8"},"PeriodicalIF":0.0,"publicationDate":"2014-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75099779","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
Session Types for Broadcasting 广播会话类型
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-13 DOI: 10.4204/EPTCS.155.4
Dimitrios Kouzapas, Ramunas Gutkovas, S. Gay
Concurrent systems, i.e., systems of parallel processes, are nearly ubiquitous and verifying the correctness of such systems is becoming an important subject. Many formalisms were invented for such purpose, however, new types of systems are introduced and there is a need for handling larger systems. One examples is wireless sensor networks that are being deployed in increasing numbers in various areas; and in particular safety-critical areas, e.g., bush fire detection. Thus, ensuring their correctness is important.A process calculus is a formal language for modeling concurrent systems. The pi-calculus is a prominent example of such a language featuring message-passing concurrency. Psi-calculi is a parametric framework that extends the pi-calculus with arbitrary data and logics. Psi-calculi feature a universal theory with its results checked in an automated theorem prover ensuring their correctness.In this thesis, we extend psi-calculi expressiveness and modeling precision by introducing a sort system and generalised pattern matching. We show that the extended psi-calculi enjoy the same meta-theoretical results.We have developed the Pwb, a tool for the psi-calculi framework. The tool provides a high-level interactive symbolic execution and automated behavioral equivalence checking. We exemplify the use of the tool by developing a high-level executable model of a data collection protocol for wireless sensor networks.We are the first to introduce a session types based system for systems with unreliable communication. Remarkably, we do not need to add specific extensions to the types to accommodate such systems. We prove the standard desirable properties for type systems hold also for our type system.
并发系统,即并行进程系统,几乎无处不在,验证这种系统的正确性正成为一个重要的课题。许多形式是为此目的而发明的,然而,引入了新类型的系统,并且需要处理更大的系统。一个例子是无线传感器网络,它正在越来越多地部署在各个领域;特别是在安全关键领域,如丛林火灾探测。因此,确保它们的正确性非常重要。过程演算是一种用于对并发系统进行建模的形式化语言。pi-calculus是这种语言的一个突出的例子,它具有消息传递并发性。pi-calculus是将pi-calculus扩展到任意数据和逻辑的参数化框架。微积分的特点是一个普遍的理论,它的结果在一个自动定理证明器中检查,以确保它们的正确性。在本文中,我们通过引入排序系统和广义模式匹配来扩展psi-微积分的表达性和建模精度。我们证明了扩展的psi-微积分具有相同的元理论结果。我们已经开发了Pwb,一个psi-微积分框架的工具。该工具提供了高级交互式符号执行和自动行为等价检查。我们通过开发用于无线传感器网络的数据收集协议的高级可执行模型来举例说明该工具的使用。我们首先为通信不可靠的系统引入了基于会话类型的系统。值得注意的是,我们不需要为这些类型添加特定的扩展来适应这样的系统。我们证明了类型系统的标准期望性质也适用于我们的类型系统。
{"title":"Session Types for Broadcasting","authors":"Dimitrios Kouzapas, Ramunas Gutkovas, S. Gay","doi":"10.4204/EPTCS.155.4","DOIUrl":"https://doi.org/10.4204/EPTCS.155.4","url":null,"abstract":"Concurrent systems, i.e., systems of parallel processes, are nearly ubiquitous and verifying the correctness of such systems is becoming an important subject. Many formalisms were invented for such purpose, however, new types of systems are introduced and there is a need for handling larger systems. One examples is wireless sensor networks that are being deployed in increasing numbers in various areas; and in particular safety-critical areas, e.g., bush fire detection. Thus, ensuring their correctness is important.A process calculus is a formal language for modeling concurrent systems. The pi-calculus is a prominent example of such a language featuring message-passing concurrency. Psi-calculi is a parametric framework that extends the pi-calculus with arbitrary data and logics. Psi-calculi feature a universal theory with its results checked in an automated theorem prover ensuring their correctness.In this thesis, we extend psi-calculi expressiveness and modeling precision by introducing a sort system and generalised pattern matching. We show that the extended psi-calculi enjoy the same meta-theoretical results.We have developed the Pwb, a tool for the psi-calculi framework. The tool provides a high-level interactive symbolic execution and automated behavioral equivalence checking. We exemplify the use of the tool by developing a high-level executable model of a data collection protocol for wireless sensor networks.We are the first to introduce a session types based system for systems with unreliable communication. Remarkably, we do not need to add specific extensions to the types to accommodate such systems. We prove the standard desirable properties for type systems hold also for our type system.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"284 1","pages":"25-31"},"PeriodicalIF":0.0,"publicationDate":"2014-06-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73400430","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 23
Towards Reversible Sessions 走向可逆会话
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-12 DOI: 10.4204/EPTCS.155.3
F. Tiezzi, N. Yoshida
In this work, we incorporate reversibility into structured communication-based programming, to allow parties of a session to automatically undo, in a rollback fashion, the effect of previously executed interactions. This permits taking different computation paths along the same session, as well as reverting the whole session and starting a new one. Our aim is to define a theoretical basis for examining the interplay in concurrent systems between reversible computation and session-based interaction. We thus enrich a session-based variant of pi-calculus with memory devices, dedicated to keep track of the computation history of sessions in order to reverse it. We discuss our initial investigation concerning the definition of a session type discipline for the proposed reversible calculus, and its practical advantages for static verification of safe composition in communication-centric distributed software performing reversible computations.
在这项工作中,我们将可逆性合并到结构化的基于通信的编程中,以允许会话的各方以回滚方式自动撤消先前执行的交互的效果。这允许在同一会话中采用不同的计算路径,以及恢复整个会话并开始一个新会话。我们的目标是定义一个理论基础,用于检查并发系统中可逆计算和基于会话的交互之间的相互作用。因此,我们用内存设备丰富了基于会话的pi-calculus变体,专门用于跟踪会话的计算历史,以便反转它。我们讨论了我们对所提出的可逆演算的会话类型学科的定义的初步调查,以及它在执行可逆计算的以通信为中心的分布式软件中对安全组合的静态验证的实际优势。
{"title":"Towards Reversible Sessions","authors":"F. Tiezzi, N. Yoshida","doi":"10.4204/EPTCS.155.3","DOIUrl":"https://doi.org/10.4204/EPTCS.155.3","url":null,"abstract":"In this work, we incorporate reversibility into structured communication-based programming, to allow parties of a session to automatically undo, in a rollback fashion, the effect of previously executed interactions. This permits taking different computation paths along the same session, as well as reverting the whole session and starting a new one. Our aim is to define a theoretical basis for examining the interplay in concurrent systems between reversible computation and session-based interaction. We thus enrich a session-based variant of pi-calculus with memory devices, dedicated to keep track of the computation history of sessions in order to reverse it. We discuss our initial investigation concerning the definition of a session type discipline for the proposed reversible calculus, and its practical advantages for static verification of safe composition in communication-centric distributed software performing reversible computations.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"40 1","pages":"17-24"},"PeriodicalIF":0.0,"publicationDate":"2014-06-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81152650","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Towards Composable Concurrency Abstractions 迈向可组合的并发抽象
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-12 DOI: 10.4204/EPTCS.155.8
Janwillem Swalens, Stefan Marr, Joeri De Koster, T. V. Cutsem
In the past decades, many different programming models for managing concurrency in applications have been proposed, such as the actor model, Communicating Sequential Processes, and Software Transactional Memory. The ubiquity of multi-core processors has made harnessing concurrency even more important. We observe that modern languages, such as Scala, Clojure, or F#, provide not one, but multiple concurrency models that help developers manage concurrency. Large end-user applications are rarely built using just a single concurrency model. Programmers need to manage a responsive UI, deal with file or network I/O, asynchronous workflows, and shared resources. Different concurrency models facilitate different requirements. This raises the issue of how these concurrency models interact, and whether they are composable. After all, combining different concurrency models may lead to subtle bugs or inconsistencies. In this paper, we perform an in-depth study of the concurrency abstractions provided by the Clojure language. We study all pairwise combinations of the abstractions, noting which ones compose without issues, and which do not. We make an attempt to abstract from the specifics of Clojure, identifying the general properties of concurrency models that facilitate or hinder composition.
在过去的几十年里,已经提出了许多不同的用于管理应用程序并发性的编程模型,例如参与者模型、通信顺序进程和软件事务性内存。多核处理器的普及使得利用并发性变得更加重要。我们注意到,现代语言,如Scala、Clojure或f#,提供了多种并发模型来帮助开发人员管理并发性。大型终端用户应用程序很少只使用单个并发模型构建。程序员需要管理响应性UI,处理文件或网络I/O,异步工作流和共享资源。不同的并发模型可以满足不同的需求。这就提出了这些并发模型如何交互以及它们是否可组合的问题。毕竟,组合不同的并发模型可能会导致细微的错误或不一致。在本文中,我们对Clojure语言提供的并发抽象进行了深入的研究。我们研究所有抽象的两两组合,注意哪些组合没有问题,哪些没有。我们试图从Clojure的细节中抽象出来,识别并发模型的一般属性,这些属性有助于或阻碍组合。
{"title":"Towards Composable Concurrency Abstractions","authors":"Janwillem Swalens, Stefan Marr, Joeri De Koster, T. V. Cutsem","doi":"10.4204/EPTCS.155.8","DOIUrl":"https://doi.org/10.4204/EPTCS.155.8","url":null,"abstract":"In the past decades, many different programming models for managing concurrency in applications have been proposed, such as the actor model, Communicating Sequential Processes, and Software Transactional Memory. The ubiquity of multi-core processors has made harnessing concurrency even more important. We observe that modern languages, such as Scala, Clojure, or F#, provide not one, but multiple concurrency models that help developers manage concurrency. Large end-user applications are rarely built using just a single concurrency model. Programmers need to manage a responsive UI, deal with file or network I/O, asynchronous workflows, and shared resources. Different concurrency models facilitate different requirements. This raises the issue of how these concurrency models interact, and whether they are composable. After all, combining different concurrency models may lead to subtle bugs or inconsistencies. \u0000In this paper, we perform an in-depth study of the concurrency abstractions provided by the Clojure language. We study all pairwise combinations of the abstractions, noting which ones compose without issues, and which do not. We make an attempt to abstract from the specifics of Clojure, identifying the general properties of concurrency models that facilitate or hinder composition.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"21 1","pages":"54-60"},"PeriodicalIF":0.0,"publicationDate":"2014-06-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"82219862","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 6
Session Type Isomorphisms 会话类型同构
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-06-01 DOI: 10.4204/EPTCS.155.9
M. Dezani-Ciancaglini, L. Padovani, J. Pantović
There has been a considerable amount of work on retrieving functions in function libraries using their type as search key. The availability of rich component specifications, in the form of behavioral types, enables similar queries where one can search a component library using the behavioral type of a component as the search key. Just like for function libraries, however, component libraries will contain components whose type differs from the searched one in the order of messages or in the position of the branching points. Thus, it makes sense to also look for those components whose type is different from, but isomorphic to, the searched one. In this article we give semantic and axiomatic characterizations of isomorphic session types. The theory of session type isomorphisms turns out to be subtle. In part this is due to the fact that it relies on a non-standard notion of equivalence between processes. In addition, we do not know whether the axiomatization is complete. It is known that the isomorphisms for arrow, product and sum types are not finitely axiomatisable, but it is not clear yet whether this negative results holds also for the family of types we consider in this work.
在使用函数库中的函数类型作为搜索键来检索函数方面,已经做了大量的工作。以行为类型的形式提供的丰富组件规范支持类似的查询,其中可以使用组件的行为类型作为搜索键来搜索组件库。然而,就像函数库一样,组件库将包含其类型在消息顺序或分支点位置上与搜索的组件不同的组件。因此,查找那些类型不同于所搜索的组件,但与之同构的组件也是有意义的。本文给出了同构会话类型的语义和公理描述。会话类型同构的理论被证明是微妙的。在某种程度上,这是由于它依赖于进程间等价的非标准概念。此外,我们不知道公理化是否完整。已知箭头,乘积和类型的同构不是有限公理化的,但尚不清楚这种否定结果是否也适用于我们在这项工作中考虑的类型族。
{"title":"Session Type Isomorphisms","authors":"M. Dezani-Ciancaglini, L. Padovani, J. Pantović","doi":"10.4204/EPTCS.155.9","DOIUrl":"https://doi.org/10.4204/EPTCS.155.9","url":null,"abstract":"There has been a considerable amount of work on retrieving functions in function libraries using their type as search key. The availability of rich component specifications, in the form of behavioral types, enables similar queries where one can search a component library using the behavioral type of a component as the search key. Just like for function libraries, however, component libraries will contain components whose type differs from the searched one in the order of messages or in the position of the branching points. Thus, it makes sense to also look for those components whose type is different from, but isomorphic to, the searched one. \u0000In this article we give semantic and axiomatic characterizations of isomorphic session types. The theory of session type isomorphisms turns out to be subtle. In part this is due to the fact that it relies on a non-standard notion of equivalence between processes. In addition, we do not know whether the axiomatization is complete. It is known that the isomorphisms for arrow, product and sum types are not finitely axiomatisable, but it is not clear yet whether this negative results holds also for the family of types we consider in this work.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"2009 1","pages":"61-71"},"PeriodicalIF":0.0,"publicationDate":"2014-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86268385","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
Verifying Parallel Loops with Separation Logic 用分离逻辑验证并联回路
4区 历史学 0 ARCHAEOLOGY Pub Date : 2014-04-12 DOI: 10.4204/EPTCS.155.7
S. Blom, Saeed Darabi, M. Huisman
This paper proposes a technique to specify and verify whether a loop can be parallelised. Our approach can be used as an additional step in a parallelising compiler to verify user annotations about loop dependences. Essentially, our technique requires each loop iteration to be specified with the locations it will read and write. From the loop iteration specifications, the loop (in)dependences can be derived. Moreover, the loop iteration specifications also reveal where synchronisation is needed in the parallelised program. The loop iteration specifications can be verified using permission-based separation logic.
本文提出了一种技术来指定和验证一个循环是否可以并行化。我们的方法可以作为并行编译器的附加步骤来验证关于循环依赖的用户注释。本质上,我们的技术要求每个循环迭代都指定它将读取和写入的位置。从循环迭代规范中,可以推导出循环依赖关系。此外,循环迭代规范还揭示了并行程序中需要同步的地方。循环迭代规范可以使用基于权限的分离逻辑进行验证。
{"title":"Verifying Parallel Loops with Separation Logic","authors":"S. Blom, Saeed Darabi, M. Huisman","doi":"10.4204/EPTCS.155.7","DOIUrl":"https://doi.org/10.4204/EPTCS.155.7","url":null,"abstract":"This paper proposes a technique to specify and verify whether a loop can be parallelised. Our approach can be used as an additional step in a parallelising compiler to verify user annotations about loop dependences. Essentially, our technique requires each loop iteration to be specified with the locations it will read and write. From the loop iteration specifications, the loop (in)dependences can be derived. Moreover, the loop iteration specifications also reveal where synchronisation is needed in the parallelised program. The loop iteration specifications can be verified using permission-based separation logic.","PeriodicalId":53164,"journal":{"name":"Journal of Historic Buildings and Places","volume":"18 1","pages":"47-53"},"PeriodicalIF":0.0,"publicationDate":"2014-04-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77152435","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"历史学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
期刊
Journal of Historic Buildings and Places
全部 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