基于属性文法的图形用户界面规约方法.docVIP

基于属性文法的图形用户界面规约方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于属性文法的图形用户界面规约方法

PAGE 1 — PAGE 1 — 第十七讲 基于属性文法的图形用户界面规约方法 本讲描述一种基于属性文法,并结合了事件模型的图形用户界面规约方法,主要强调如何在直接操作式用户界面中表示多线索控制模型。我们说明如何用属性文法的语法和语义记号指定一个对话内部的控制序列、对话之间的通信、以及界面语义的计算。这种属性文法的规约可以用一个内嵌在支持通信、同步、和对话执行的运行时结构中的属性文法解释器来实现。 一、引言 用户界面开发环境,例如用户界面管理系统(UIMS)和用户界面设计系统(UIDE)的目标是提供图形用户界面(GUI)的设计和开发工具,及运行时支持系统,以支持图形用户界面的设计、实现、运行,及评估。 一般而言,交互式应用系统中处理和完成各种具体任务的软件称为应用的计算部分或称为应用语义,而处理用户与系统交互的软件称为用户界面。一个用户界面一般可看成由相互通信的三部分构成:(1)界面表示:作用是在词法层次上指定显示对象,并收集用户的交互命令;(2)对话控制:作用是在语法层次上指定输入及输出序列,并定义对话的结构;(3)应用接口:作用是在语义层次上指定应用模型(数据结构及任务接口)。 图形用户界面通常采用“直接操作(direct-manipulation)”[1] 的交互方式。与用户任务相关的应用对象在界面上表示为可见的图形,图形可被用户直接地操作,如选择、移动或删除。直接操作一般具有三个特征:(1)对象可视化,用户感兴趣对象的连续表示;(2) 语法极小化,采用物理动作或按钮代替复杂的语法;(3) 语义反馈,在对象上快速、增量式和可逆的操作立即带来可视的效果。其中(2)要求每个独立的表示构件能处理各自的语法,而(3)使得交互从语义上更为接近特殊的应用语义,故界面表示及对话控制应有能力处理相应的语义计算,以减少各部分之间的通信。本文主要强调如何使用一种扩充了事件模型的属性文法来指定这类控制结构和通信。 直接操作式界面中的对话过程通常是多线式(multi-thread)的。这意味着同时可有多个对话路径供用户随机访问。每个应用对象的图形表示都表示了一个有关它自己的特殊子对话。一旦用户选择了其中某个对象的表示,则他可以开始一个有关该对象的对话。他也可以暂时中断这个对话,转移到并进入另一个对话(典型地通过移动鼠标),而后又可返回至被中断的对话继续进行—即用户与系统的交互可在多个线索中切换[2]。但需注意到虽然可能有多个正在活动的交互设备(如键盘和鼠标),然而通常每个应用只有一个输入/出流。对话实际上是以交替方式异步进行的。 这样,多线式对话的基本控制结构可看成由两部分构成:其低级成分是由单个对话组成的并发例程集合,而高级成分是一个对话控制器。一个并发例程描述一组在对话中逻辑上相关的操作。为了满足语法极小化的需求,与输入/输出事件直接相关的局部控制应与对话的全局控制逻辑分离,并表示为表示构件上的子对话。该子对话通过事件与对话控制通信。如删除一个应用对象的语法为delete (object),则命令delete和对象object的选择应在界面表示层次上表示为两个不同的子对话。对话控制器应能够在任意时刻激活、挂起,或恢复一个对话例程的执行。该控制器负责并发例程之间的通信和同步,并协调它们的执行。用户界面开发者一般毋须关心控制器的设计和实现,它是界面开发环境的一个构件,并已作为运行时支持结构嵌入。 因此,用于多线式对话的规约技术应允许分别指定单个对话及相应的子对话,并能通过顶级控制器相互交换控制和信息。如果所采用的规约语言是直接可执行的,则它可直接用于支持用户界面的自动生成。目前存在两类对话描述技术:基于文法的和基于事件的。基于文法的模型(如有代表性的状态转换网[3,4],上下文无关文法[5,6]等)使得开发者容易在高级层次上定义对话结构,有助于界面快速原型的建立,但采用的技术类似于编译器构造技术,因此不适于多线式对话的场合。虽然Jacob将状态转换网与事件机制结合,以描述多线式对话[7],但其未能在不同的层次上分离全局及局部对话,且对复杂对话的描述过于复杂。基于事件的模型(如事件语言[8,9]和事件—响应语言[10])的能力强于前者,通常用于描述多线式对话,但其必须在十分低级的程序设计层次上进行描述。 属性文法是由Knuth作为一种形式语言规约技术引入的[11],并已广泛地作为规约语言、程序设计语言和实现语言使用。属性文法的成功应用提示我们研究将其应用于图形用户界面规约方面的可行性。首先,属性文法是一种形式规约语言,容易在语法和语义两个层次上定义个别对话及子对话,其次,多数有效的属性文法解释器可用于实现的目的。然而,纯的属性文法仅适用于描述顺序(单线索)控制场合,它必须被扩充,以支持指定异步(多线索)控制对话。 本文的目标是采用扩充了事件

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档