这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » [推荐]量子编程范型

共5条 1/1 1 跳转至

[推荐]量子编程范型

菜鸟
2003-07-16 19:21:53     打赏
quantum programming (qp)编程范型 作者Miro Samek 用两个基础新概念: 层次状态机和active object-based computing. 扩展了传统的面向对象编程范型。 http://www.quantum-leaps.com 我还没仔细看,不过我喜欢新思想:) 以前看过miro的文章: “Portable Inheritance and Polymorphism in C” http://www.embedded.com/97/fe29712.htm “State-Oriented Programming” http://www.embedded.com/2000/0008/0008feat1.htm 觉得很是不错, 真希望看到他的新书 Practical Statecharts in C/C++ http://www.programming-reviews.com/Practical_Statecharts_in_CC_Quantum_Programming_for_Embedded_Systems_with_CDROM_1578201101.html Model reactive systems with UML statecharts Efficiently code statecharts directly in C/C++ Rapidly build embedded software with statechart-based frameworks [align=right][color=#000066][此贴子已经被作者于2003-7-17 19:08:20编辑过][/color][/align]



关键词: 推荐     量子     编程     范型    

菜鸟
2003-07-16 19:28:00     打赏
2楼
我喜欢状态机。

菜鸟
2003-07-18 03:07:00     打赏
3楼
Active object[主动对象] (a.k.a. actor) 状态机对象有自己的执行线程,通过交换事件实例与其他主动对象通讯. 解释: 主动对象最重要的特征是它的不透明封装外壳. 外壳将对象内部结构和外界环境严格隔离. 无论从外部还是内部,只有事件实例能通过该外壳. 通过事件通讯的自治软件对象(actors)概念在70年代后期出现, 当时Carl Hewitt和同事[Hewitt+ 71] 提出了actors概念. 在80年代, actors在分布式人工智能界很盛行,就象今天的agents一样. 90年代, ROOM[Selic+ 94]一类的方法论修改actors用于实时计算. 最近, UML规范引入的主动对象概念,本质上与actor概念同义[OMG 01]. 在多任务系统中,主动对象是控制线程的根, 并通过事件异步地启动其他对象. UML进一步引入状态图[statecharts], 用以对事件驱动的主动对象建模. Active object computing[主动对象计算] 一种实现方法,将并行应用组织成为主动对象的集合, 每个对象都有一个执行线程, 对象间互相协作. 在这样的应用中, 主动对象间不共享内存和其它任何资源, 仅通过发送和接受事件来通讯, 并用完全运行[run-to-completion (RTC)]的方式来处理每个事件. 解释: 可能主动对象计算模型最重要的特点就是: 可以用纯顺序技巧来完成各对象内部的编程, 从而避免了传统多线程中可能出现的大多数问题(如race conditions, 死锁, starvation, 优先级逆转). 而主动对象应用能获得并行编程的所有好处, 如快速任务级响应, 充分利用CPU, 可量测性[scalability]等. 一般从主动对象应用构架来实例化应用. 应用构架提供对象和事件的基类, 以及线程安全的事件交换机制.与应用不同, 构架必须明确处理并行相关的问题.

菜鸟
2003-07-19 01:50:00     打赏
4楼
Application framework[应用构架] 一个互相协作的类的集合, 为特定类型的软件构成一个可重用设计. 构架提供体系结构方面的指导, 将设计分化为各抽象类, 并定义类的责任和相互间的协作关系. 通过继承[subclassing]和组合构架的类, 开发者将构架定制到具体的应用上[Gamma+ 95]. 解释: 构架级的重用会颠倒应用和基础库之间的关系. 当你使用类库时, 你编写应用主体并调用想重用的代码. 而你使用构架时, 是重用主体并自己写被调用代码[Gamma+ 95]. 你可以将构架看作应用的骨架, 你需要补充血肉以创建完整的应用.你将你的代码附加在构架上特定的设计扩展点. 通过扩展构架内定义的类, 你可以定制构架的行为. 另外, 实际上每个构架还包含一个兼容的类库, 你可以将该类库作为组件工具包来使用.

菜鸟
2003-07-19 02:36:00     打赏
5楼
Behavioral inheritance[行为继承] 层次主体机中, 父状态(或爷状态)和子状态之间的一种关系[Samek+ 00]. 解释: 层次状态机中的子状态(嵌套状态)只需要定义与父状态(外围状态)的不同之处.子状态可以方便地分享(重用)父状态的行为, 只要简单地忽略公共处理事件, 这些事件由高层状态自动处理. 这种状态嵌套语义允许子状态继承父状态的所有行为, 因此称为行为继承. QP中的行为继承, 就象OOP中的类继承, 组合抽象和分层, 可以建立状态的完整分类[taxonomies]. 同类继承一样, 行为继承遵循相同的generalization(Liskov替代原则扩展到嵌套状态)基本准则. 另外, 同其它种类的继承一样, 行为继承也通过programming-by-difference支持重用. Class[类] 类定义对象的接口和实现. 类指定对象的内部表示, 并定义对象可执行的操作[Gamma+ 95].

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]