- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象并发程序语言的基础理论
面向对象并发程序语言的基础理论
胡国定 王永革
南开大学数学研究所
A Theoretical Aspect of Concurrent Object-Oriented Programming
Hu Guoding, Wang Yongge
Nankai Institute of Mathematics
Nankai University, Tianjin 300071
Abstract
We give a description of the basic model, Actor Model, for concurrent object-oriented paradigm. By comparing it with other models of concurrency such as CSP, FP, GHCL etc., we make a discussion of this model in the following aspect: concurrent laws, semantic systems and characteristics of Actor languages, i.e., history-sensitive behavior, joint continuation, delayed evaluation and inherent concurrency. In the last part of the paper, we discuss the reason why Actor system can be regarded as the theoretical model for multi-computer system.
摘要
本文介绍面向对象程序设计分格中的一个基本模型: 演员 Actor 模型. 过比较它与其它各种并发模型的 异同, 论述了它的法则, 语义系统理论 及 Actor 语言所具有的特征 : 历史敏感性, 连接延拓, 延迟求值 与固有并发. 最后讨论了演员系统作为多机系统理论模型的依据.
1. 引言
面向对象是一种程序设计方法学, 面向对象的程序设计分格 paradigm 受 到了国内外计算机专家的密切 关注. 各种面向对象的语言也应运而生. 对面向对象的基础理论进行研究势在必行, 本文介绍的演员系统 Actor System 就是作为面向对象的基本模型而提出来的.
我们的目标是建立一种并发模型, 它将在并发结构中起到图灵机在 von Neuman 体系结构中所起的作用.先回 顾一下各种计算模型, 以便比较它们可作为通用并发计算模型的可能性.
1.1. 通信顺序进程 CSP .
CSP [1] 是 Tony Hoare 和它的同事们为解决顺序进程的通信问题而提出的. 在 这个模型中通信是同步的, 进程的拓扑结构是静态的. 其有二缺点: 第一, 无法定义递归程序: 一个忙于发送消息的进程不能接受消息. 第二, 不提供重构形 reconfiguration 功能, 从而无法进行动态扩展. 特别地, 该语言不适于表达并发 系统结构的需求, 因将一个进程从一个处理器移到另一个处理器需要具有重构形的表达功能.
1.2. 泛函程序 Functional Programming .
自 [7] 以来, 泛函程序理论得到迅速发展, 它在并发理论中具有很重要 的地位并具有其他模型所无法比 拟的优点. 泛函程序中的并发来源于如下事实: 函数的所有变元可并发求值. 泛函程序的另一重大贡献在于 它指出了赋值指令可产生的很多困难与不便, 一般来说, 分析一个带有赋值指令的并发系统需要考虑在每个 过程中的指数多次指令交错. 由于泛函程序满足 Church--Rosser 性质, 所以一个程序中表达式的求值顺序是 无关的. 但也有一个困难困扰着泛函程序, 那便是泛函程序缺乏”历史”[7].
泛函程序具有延迟求值 delayed evaluation 的特点, 但在现实的分布式计算中这并不能很好地工作. 数据 库的最大特点是数据共享, 而函数值却仅仅被一个用户所使用 除非第二次激活该函数 . 考虑另一问题, 为 了实现并发系统, 程序模型需要具有定义可共享的有历史敏感行为 history--sensitive behavior 的计算 实体的功能. 现代某些泛函语言如 Haskell 提供了合并 merging 通信. 但很可惜这已超出了λ演算所提 供的语义系统. 所以为了保证语言的泛函特性, 一般都限制合并 merging 的使用, 例如在数据流语言中. 因为实现同步是一个系统是否支持并发处理的基本条件,所以程序模型应与创建
文档评论(0)