BIP语言简介
来源:互联网 发布:北京大土豆 知乎 编辑:程序博客网 时间:2024/05/14 10:19
原文地址:http://www-verimag.imag.fr/The-BIP-Language.html?lang=en
下面用一些简单的例子来介绍BIP语言
更多细节请参考完整文档。
BIP语言&语法
BIP语言主要用来定义类型(构件和连接器的类型),同时描述构件的架构。下面我们将简单介绍如何定义和初始化BIP类型。
端口类型 Port Type
端口主要用于构件之间的协调。端口类型可以包括很多变量,它们主要用于与其他构件进行数据交互时传递数据。交互和数据传输都被定义成连接器类型。端口类型主要包括
- 类型名称
- 数据变量参数的列表(可以为空)
port type ePort // 没有相关联的变量port type IntPort(int x) //有一个相关联的变量x
原子构件类型
原子构件是构件层次结构中的叶子节点。一个原子构件类型主要包括
- 类型名称
- 用于初始化类型的数据参数列表
- 数据变量集合
- 时序集合
- 内部和输出(用于与其他构件的同步)端口集合
- 行为
- 状态集合
- 初始迁移
- 迁移集合
原子构件类型示例
atomic type HelloWorld(int n) data string msg = "Hello BIP world" data int x port ePort print() export port ePort idle() export port IntPort(x) place S1, S2 initial to S1 do x=n; on print from S1 to S2 provided true do printf("%s %d", msg.c_str(), x); on idle from S2 to S1 provided true do sleep(1);end
复合构件类型
复合构件类型定义了层次结构中的每一层。它包括了其他构件类型的实例(子构件),以及连接器类型的实例。连接器类型的实例主要用于连接构件和用来安排构件之间交互顺序的优先级。
复合构件提供了与原子构件相同的接口,所以从表面上看原子构件和复合构件没什么区别。子构件中的内部端口都可以输出到外部。
复合构件类型示例
compound type Team component Producer P component Consumer C connector RDV Communicate (P.prod, C.cons) connector Singleton P_work(P.work) connector Singleton C_work(C.work)end
连接器类型
连接器类型定义了端口之间的同步协议(rendez-vous,广播等)和传输过程中的数据。一个连接器类型主要包括:
- 类型名称
- 端口参数列表
- 输出端口(用于构建有层次结构的连接器),可以没有
- 数据传输过程中的上/下行为集合
connector type Singleton(ePort p) define [p] // set of enabled interactions: {p}endconnector type RendezVous(IntPort p1, IntPort p2) define [p1 p2] // set of enabled interactions: {p1 p2} on p1 p2 up {} down {p2.x = p1.x;}endconnector type Broadcast(IntPort p1, IntPort p2, IntPort p3) define [p1' p2 p3] // set of enabled interactions: {p1}, {p1 p2}, {p1 p3}, {p1 p2 p3} on p1 up {} down {} on p1 p2 up {} down {p2.x = p1.x;} on p1 p3 up {} down {p3.x = p1.x;} on p1 p2 p3 up {} down {p2.x = p1.x; p3.x = p1.x;}end
示例&教程
即将推出
- BIP语言简介
- BIP语言介绍(一)
- BIP语言教程(一)
- Linux上配置BIP语言编译器及引擎
- Oracle BIP安装文档
- 求bip动画文件
- BIP与Siebel系统集成
- 【比特币】 BIP
- Max bip 文件的使用方法
- 将多个Bip动作合成一个
- JDE BIP的开发流程
- [go语言]go语言简介
- 【C语言】C语言简介
- COBOL语言简介
- 统一建模语言简介
- AppleScript语言简介
- sql语言简介
- Ruby语言简介
- 达芬奇编解码引擎Codec Engine(CE)的理解
- 测量程序运行时间
- 舍弃浮躁, 50条重要的C++学习建议
- linux内核随机数产生器
- IOS_UIButton去掉系统的按下高亮置灰效果
- BIP语言简介
- NDK环境搭建
- opengl shader 使用札记
- 21-计算出两个日期相差的天数
- C# 概念
- CentOS 6.4 安装无线网卡驱动
- hdu2222 AC自动机入门 指针型模板
- 如何保证数据库读写事务
- 夜梦程序,日实现(下载动画)