...
首页> 外文期刊>ACM Transactions on Programming Languages and Systems >A Programming Model For Concurrent Object-oriented Programs
【24h】

A Programming Model For Concurrent Object-oriented Programs

机译:并发面向对象程序的编程模型

获取原文
获取原文并翻译 | 示例
   

获取外文期刊封面封底 >>

       

摘要

Reasoning about multithreaded object-oriented programs is difficult, due to the nonlocal nature of object aliasing and data races. We propose a programming regime (or programming model) that rules out data races, and enables local reasoning in the presence of object aliasing and concurrency. Our programming model builds on the multithreading and synchronization primitives as they are present-in current mainstream programming languages. Java or C# programs developed according to our model can be annotated by means of stylized comments to make the use of the model explicit. We show that such annotated programs can be formally verified to comply with the programming model. If the annotated program verifies, the underlying Java or C# program is guaranteed to be free from data races, and it is sound to reason locally about program behavior. Verification is modular: a program is valid if all methods are valid, and validity of a method does not depend on program elements that are not visible to the method. We have implemented a verifier for programs developed according to our model in a custom build of the Spec# programming system, and we have validated our approach on a case study.
机译:由于对象别名和数据争用的非本地性质,因此难以对多线程面向对象的程序进行推理。我们提出了一种编程制度(或编程模型),该制度可以排除数据争用,并在存在对象别名和并发的情况下启用局部推理。我们的编程模型建立在当前主流编程语言中存在的多线程和同步原语的基础上。可以通过风格化注释对根据我们的模型开发的Java或C#程序进行注释,以明确使用模型。我们表明可以对此类带注释的程序进行正式验证,以符合编程模型。如果带注释的程序经过验证,则可以保证基础Java或C#程序不会出现数据争用,并且可以在本地对程序行为进行推理。验证是模块化的:如果所有方法均有效,则程序有效,并且方法的有效性不依赖于该方法不可见的程序元素。我们已经在Spec#编程系统的自定义版本中为根据我们的模型开发的程序实现了验证程序,并且已经在案例研究中验证了我们的方法。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号