1、 第 3 讲:事件触发结构和解释器结构 2.1.2 事件触发结构1. 设计思想 2. 结构组成3. 技术特征 4. 效果评价5. 应用实例2.2 解释器结构 2.2.1 解释器结构组成原理1. 设计思想 2. 结构组成3. 技术特征 4. 效果评价2.2.2 解释器结构应用实例2.1.2 事件触发结构学科关联: 嵌入式软件设计,面向对象软件设计事件触发: 部件之间的交互操作不是采用直接的显式调用方式;而是通过间接的隐式调用或消息发送方式进行基本应用: 提供系统 资源管理 和使用的行为模式, CHE提供部件的 动态连接 方式 OS应用服务资源的调用 DBMS的数据存取与数据一致性约束 网络环境下
2、的分布信息存取与广播发送 编程环境下的动态交互与集成连接 编辑处理过程的渐进式语义检查 C S体系结构中的界面表示和数据表示与应用程序分离1. 设计思想行为驱动 事件化 ,连接方式 中介化 部件之间的所有 操作 和 状态转移 可声明为一个 事件集 ,可形成方法调用的消息驱动或事件 注册 机制 部件之间的操作连接通过 间接 的 条件 (事件) 激发 完成,一次事件触发是满足控制条件的一次方法调用;以致可以形成 通知 机制相关链接编程模式:注册机制: 客户对象向服务对象(信息发布者)进行 登记 ,以在两者之间明确建立 自顶向下 的 请求 连接关系通知机制: 服务对象引起 响应 即状态改变后,产生
3、一个 自底向上 的信息 控制 事件2. 结构组成基于 “请求响应 ”原理和 “事件驱动 ”机制 (异步) 请求: 一次操作调用或状态激发的 消息 或 事件 ,自顶向下 的 信息控制方式 响应: 操作调用或事件触发的一次 执行 ,但 不返回 处理结果 消息: 请求 某对象(部件)执行某一操作的 指令要求(控制对象间状态转移的事件驱动方式 触发机制) 事件: 与动作及 条件 相关联的工作过程 激活方式 ;事件类型:调用 call, 信号 signal, 改变 when, 时间 after 事件触发: 满足控制转移 条件 的连接 启动隐式调用结构: 基于事件触发或消息发送机制的 间接连接 结构,是部
4、件间的运行结构典型的事件结构: 对象结构中的事件表; 事件耦合消息: 承载事件和操作的箭线(信号或调用的 请求方式 )事件: 引发消息传递过程和操作调用的 控制转移 条件的 说明讨论:事件触发构造原理(1) 软件块分离策略 部件分离: 请求 响应(对等部件:非主子结构) 连接分离:事件 事件表事件表的作用: 事件标识,条件匹配,动作触发 结构组合: 部件连接表(请求中介响应)(2) 事件模型定义脚本格式: 事件名监护条件动作表达式事件名监护条件(参数表)设置语句 : set to (3) 控制方式建模: 消息发送方式直接发送:( 1: 1);广播发送 :( 1: m)3. 技术特征请求方 响应
5、方 请求 事件事件表 响应 事件触发过程调用 可形成明显的 “部件 连接 ”分离 式结构 松耦合只有消息连接,不存在直接联系(部件内部的过程调用)这是与主程序子过程结构的本质区别 隐式调用 结构是一个隐含的事件消息 响应关系集,“事件 响应 ”不是直接的显式关系, 不存在一一对应 操作调用结束时,系统回到 等待 (不是返回)状态 (区别 2) 事件声明者无须知道哪些部件会被事件影响 无须对方标识 ;因而事件的 响应 具有 不确定 性缺陷弥补: 显式调用隐式调用event c A( 1: m )4. 效果评价优点: 支持软件 重用 ( “事件 响应过程 ”结构带来的优势) 易维护易扩展(部件的
6、可替换 性好,不需作接口修改) 具有良好的 并发 调度和 并行 控制特性( 异步 消息所致)关联: 同一起点的多源操作, m:1,异步性,资源封锁机制不同起点的过程重叠, m:n,同时性,资源共享机制缺点: 部件对产生的消息不具有控制权 缺乏实时能力(不能确定处理顺序和对系统行为的影响) 响应 速度低 (响应时间受消息队列的影响) 数据交换过程中的共享 资源管理 及性能优化问题 复杂(动态特性所致)5. 应用实例 消息机制的体系结构 CHE过程: 产生中断事件 启动中断服务程序 消息过滤 建立待处理的系统消息队列 建立一个应用消息队列 读取消息并依次处理 等待消息循环2.2 解释器结构学科关联
7、: 编译原理,操作系统,数据库管理系统 解释器: 用于信息 识别 、指令 格式转换 及其语法语义 解释可创建一个由软件虚拟出来的 状态机 结构虚拟机 ( Virtual Machine) 结构典型应用: 操作系统的设备驱动程序管理器,如虚拟终端程序设计语言编译器,如 Java虚拟机数据库虚拟机,如 SQL语言解释执行的解释器网库虚拟机,如通信协议驱动程序解释器数据交换格式转换,如 API、 WAPI 转换器规则基产生式结构;模式识别系统界面事务数据的通用驱动器2.2.1 解释器结构组成原理1. 设计思想运行 实体虚拟 化;工作 状态模拟 化(1) 针对 运行域 中的物理 实体 进行元素 抽象
8、和 标识 ,实现数据存储结构和存取方法的动态 优化虚拟 : 不考虑对象(运行实体)的具体物理性质,只考虑 公共 操作 性质 的 抽象 描述方式 通用划分技术(2) 工作过程以动态 解释执行 的方式进行,具有数据转换、代码格式生成和 状态控制 能力虚拟机特性: 屏蔽底层 软件 实现细节 和硬件类型差异变化; 过程操作 动态生成 ; 程序解释执行 语义翻译 ; 工作 状态模拟 分析转换生成验证2. 结构组成: 解释目标存储执行引擎 I O控制(1) 伪码存储器: 用于编辑或产生 待解释处理目标 如伪代码;作为可被快速执行的中间代码形式,并使之 驻留在 存储器的 存储区(2) 状态存储器: 用于存储
9、 正解释目标 如已读入的伪代码;存储 当前过程 执行 操作转换的状态控制与表示 信息存储代码结构( 词法 、 句法 )和行为 语义 的 分析结果(3) 状态控制器: 具有虚拟机作用的解释 执行引擎 内核程序用于读入被解释的伪码,读取和 改变状态 存储器的状态;完成 伪码 结构的 解释 操作, 控制 状态存储器的 I O数据(4) I O控制器: 负责向状态存储器提供相关 输入 信息;并把对伪码模拟执行的结果进行 输出基于状态机的解释器结构:工作过程: 状态控制器从伪码存储区 读入 待解释的伪代码 状态控制器从 状态存储器 读入 当前 状态 根据伪代码内容执行程序语法语义的 解释转换 操作 状态
10、控制器向 状态存储器 写入 新状态 驱动 I O控制器 输出 解释结果 进入下一 循环 过程状态控制器讨论: 状态机虚拟机(1) 解释器的工作结构:建立在 状态机原理 之上;集中体现对被解释目标的 事件驱动 、 状态模拟 、 转换控制(2) 对伪码的虚拟 解释功能 词法 分析生成词法标识流 语法 分析生成语法分析树 语义 解释生成中间代码 转换 操作生成存取过程 代码 生成 生成目标码(3) 状态机 及其转换控制关系的其它 表示 方式状态驱动表,状态图;信息树;Petri网结构;产生式结构3. 技术特征数据源状态查询过程调用模式虚拟机制(1) 数据源 是个 受控体 : 被调用 的伪代码 待解释 的程序状态;必须具备提供状态查询和信息传递的功能(2) 状态 查询 过程 调用 模式 及其虚拟机制 集成 在状态机中;可直接 主动 对 数据 源进行状态 存取 数据格式转换操作,并具有动态生成和状态模拟能力;可控制和选取被解释后的伪代码集数据的输入输出4. 效果评价(1) 优点:提供编程 语言 的 跨平台 能力和应用程序的 可移植 性提供对硬件的软件 仿真 能力(2) 缺点:系统 运行效率 及速度性能较差