- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机研究生开放课程 -Prom ela 语言
计算机研究生开放课程
《自动模型检测—SPIN的建模语言Promela》
美国GeneChiu基金资助
3.1 Promela 语言
3.1.1 简介
Promela programs consist of processes, message channels, and variables. Processes are global objects. Message channels and variables can be declared either globally or locally within a process. Processes specify behavior, channels and global variables define the environment in which the processes run. The syntax of Promela is C- like.
Promela语言是描述并发系统(concurrent systems)的一种模型语言(modelling language),而不是通常意义下的程序 语言(Programming Language);A Promela model defines a finite set of processes, which together consistute the behaviour of the system.
Promela程序的语义(即程序是如何执行的)是插入语义(Interleaving Semantics),可理解如下:
Promela processes execute concurrently.
Non-deterministic scheduling of the processes.
Processes are interleaved (statements of different processes do not occur at the same time).
exception: rendez-vous communication.
All statements are atomic; each statement is executed without interleaving with other processes.
Each process may have several different possible actions enabled at each point of execution.
only one choice is made, non-deterministically(randomly).
Promela(Protocol/Meta Language)是用来对有限状态系统进行建模的形式描述语言。他类似于C程序语言,允许动态创 建并行的进程,并可以在进程之间通过消息通道进行同步(使用会面点(rendezvous port)和异步(使用缓冲)进行 通信。
一个模型由进程、消息通道、变量和全局对象组成,相当于一个有限转换系统。如下图所示:
进程1
进程2
通道(channel)
其大体结构为:类型说明、通道说明、变量说明、进程说明、初始进程。 例如:
mtype={MSG,ACK}; /*类型说明*/
88/Eojc/M X JC/SPIN /000/002.asp(第 1/8 页)2009/5/13 10: 48:00
计算机研究生开放课程 -Prom ela 语言
chan toS=… /*通道说明*/
chan toR=…
bool flag; /*变量说明*/
proctype Sender(){ /*进程说明*/
… /*进程体*/
}
proctype Receiver(){
…
}
init{
… /*初始进程*/
run Sender();
run Receiver(); /*创建进程实例*/
…
}
3.1.2语句的可执行性
在Promela中的条件和陈述语句是相同的,就算是独立的布尔条件也可以用做陈述语句。每个陈述语句能否被执行是 有条件的,即Promela中的所有陈述句或是可执行的或是被阻塞的,这取决于变量的当前值或者消息通道的当前内 容。故在Promela中的可执行性就蕴涵了同步的思想,通过等待某陈述语句变为可执行,从而实现了一个进程等待某 事件发生的功能,例如,对于一个遇忙则等待的循环语句:
while(a!=b) skip /*wait for a = = b*/
在Promela中可以用陈述语句(a==b)来实现同样的效果。当a与b相等时,该语句将被执行,然后继续执行下面的语句; 否则将在该语
您可能关注的文档
- 回归本质—Scrum中是如何做到过程改进和质量保证.docx
- 高中政治课堂情绪管理策略初探.docx
- 职场减压与情绪管理.docx
- 萨班斯—奥克斯利法案下公司内部控制的思考.docx
- 绿地集团别墅类产品立面标准参照图册.docx
- 我国房地产价格的影响因素和形成机理的研究.docx
- 我国个人金融理财产品选择与风险控制问题研究.docx
- 提升钢铁产业核心竞争力.docx
- 苏商大厦2013年营销报告.docx
- 惠泉频变折射啤酒大局.docx
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)