(计算机应用技术专业论文)信息家电接口描述语言及其编译器的研究与设计.pdf_第1页
(计算机应用技术专业论文)信息家电接口描述语言及其编译器的研究与设计.pdf_第2页
(计算机应用技术专业论文)信息家电接口描述语言及其编译器的研究与设计.pdf_第3页
(计算机应用技术专业论文)信息家电接口描述语言及其编译器的研究与设计.pdf_第4页
(计算机应用技术专业论文)信息家电接口描述语言及其编译器的研究与设计.pdf_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 本文首先讨论了信息家电的特点,提出了信息家电体系结构框架 的构想,并就信息家电接口描述语言在整个体系结构中所起的关键作 用做了介绍;将面向对象的思想引入信息家电体系结构的研究,指导 对信息家电接口定义语言的设计,通过与其他语言的比较使i a i d l 得 到了明确的定位:i a i d l 不能直接用它来编写可执行的程序,它只用 于描述设备信息,是有别于高级语言的非编程语言。接着文章给出了 i a i d l 语言具体的说明,并就各个语句功能和语句的设计目的做了详 细阐述。 本文研究的第二大块是i a i d l 编译器研究与设计。文章分别从编 译原理及编译技术两个方面对i a i d l 编译器做了介绍。具体实现是在 l i n u x 下的l e x & y a c c 和嵌入式数据库m y s q l i r e 下完成的。本文所设 计的i a i d l 编译器可以成功地编译通过用i a i d l 书写的i a i d l 文件, 并能完成对其中信息的提取、加工与数据的存储。文章最后对信息的 加工处理做了分析研究并介绍了数据库表格的结构和m y s q l i t e 提供 的c 语言a p i 接口。 本课题在信息家电体系结构中引入i a i d l ,通过编译i a i d l 文件, 将其中有关信息家电设备的信息提取出来,经过加工存入位于家庭网 关的数据库中,希望能够以此种方式解决远程用户端与设备端之间, 设备端与设备端之间因为异构而带来的问题。 关键字:信息家电、i a i d l 、编译器、l e x & y a c c t h e p r i m a r yo b j e c to ft h i sp a p e rw a sd e f i n i n gi n f o r m a t i o na p p l i a n c e i n t e r f a c ed e f i n i t i o nl a n g u a g e ( l a j d l ) a n dd e s i g n i n gc o m p i l e ro fi t f i r s t l y , t h i sp a p e rd i s c u s s e d t h ec h a r a c t e r i s t i c so ft h ei n f o r m a t i o n a p p l i a n c e ( i a ) ,b r o u g h tf o r w a r dc o n s t i t u t i n gaf r a m eo ft h ei n f o r m a t i o n a p p l i a n c ea r c h i t e c t u r e ,a n di n t r o d u c e dt h ek e yr o l ew h a tt h ei a i d l a c t e di nt h ew h o l ea r c h i t e c t u r e w i t ht h ed i r e c t i o no f o b j e c t o r i e n t e d ,t h i s p a p e rd e f i n e dt h e1 a i d l a f t e rc o m p a r i n gw i t ho t h e rl a n g u a g e s ,i tg a v e t h ee x a c to r i e n t a t i o no ft h ei a i d l :i a i d lc a l l t d i r e c t l yb eu s e dt o d e s c r i b i n ge x e c u t a b l ep r o g r a m s ,b u td e s c r i b i n gt h ef e a t u r e o ft h ei a , i n c l u d i n gt h ea t t r i b u t e s ,s t a t e s ,a b n o r m i t i e sa n do p e r a t i o n s ,i ta l s oo f f e r e d t h em e t h o d so fd e c l a r i n ge n u m e r a t i o nt y p e s od i f f e r e n tf r o mt h eh i g h l e v e ll a n g u a g e s ,i a i d li sn o n p r o g r a m m i n go n e t h e nt h i sp a p e rg a v e t h ed e t a i l so fi t ,a n de x p o u n d e dt h ef u n c t i o no fi t ss e n t e n c e s a n o t h e rr e s e a r c ho ft h i sp a p e ri sc r a f t i n gac o m p i l e ro fi a i d l t h i s p a p e ri n t r o d u c e dt h ei a i d l - c o m p i l e rb o t hi np r i n c i p l e sa n dt e c h n o l o g y t h ei a i d l - c o m p i l e rh a sb e e na c t u a l i z e db yl e x & y a c cw i t ht h ed a t a b a s e m y s q l i t e i tc a ns u c c e s s f u l l yc o m p i l et h ei a i d l - f i l ea n dp r o c e s s ,s t o r e t h ei n f o r m a t i o nt h a tp i c k e d u pf o r mt h ef i l e i nt h e 4 t hc h a p t e r , i t i i i a n a l y z e dh o wt op r o c e s s i n gt h ei n f o r m a t i o n ,a n de x p l a i n e dt h et a b l e si n t h ed a t a b a s e ,t h ea p if o rcp r o v i d e db yt h em y s o l i t ea l s ob e e ng i v e n h e r e t h i sp a p e rt r i e d t o s e t t l et h eh e t e r o g e n e i t yo ft h ep r o g r a m m i n g l a n g u a g ea n dt h eh e t e r o g e n e i t yb e t w e e nt h ec l i e n t a n dt h ei at h r o u g h i a i d l :c o m p i l i n gt h ei a i d l - f i l et h a tb ee m b e d d e di n t h ed e v i c e ,a n d s t o r i n gt h ep r o c e s s e di n f o r m a t i o nw h i c hw a sp i c k e du pf r o mt h ef i l ei n t o t h ed a t a b a s eo r lt h eg a t e w a y k e y w o r d s :i n f o r m a t i o na p p l i a n c e ,i a i d l ,c o m p i l e r , l e x & y a c e 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独 立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论 文不合任何其他个人或集体已经发表或撰写过的作品成果。对本文的 研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人 完全意识到本声明的法律结果由本人承担。 学位论文作者签名:细偈1 廖柳年占月日 湖南师范大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 研究生在校攻读学位期间论文工作的知识产权单位属湖南师范大学。 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权湖南师范大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密吼 ( 请在以上相应方框内打“ ”) 作者签名:阳吓屠日期:姊年名月乡日 导师签名: 纠丢 日期:0 2 年韶月靠日 ( 信息家电接口定义语言及其编译器的研究与设计 1 1 信息家电 第一章绪论 随着“后p c 时代”的来临,信息产业界开始朝向i n f o r m a t i o n a p p l i 柚c c ( 1 信息家电) 产业发展。虽然信息家电的产业尚在起步阶 段,但由于信息家电产业整合了3 c 概念:计算机( c o m p u t e r ) 、通讯 ( c o m m u n i c a t i o n ) 及消费性电子( c o n s u m e re l e c t r o n i c s ) 的特性, 使它成为未来的大势所趋。 1 1 1 信息家电的概述 我们将传统家电分为白色和黑色两种,其中白色家电包括电冰 箱、洗衣机、微波炉等,是指可以替代人们家务劳动的产品,它是通 过电机将电能转换为热能、动能进行工作的设备;黑色家电则是带给 人们娱乐、休闲的产品,如电视机、录象机、音箱、v c d 、d v d 等, 其核心零部件则更多的是电子元器件、电路板等i 。 信息家电就是利用电脑、电信和电子技术与传统家电相结合的创 新产品,是为了使数字化与网络技术更广泛地深人家庭生活而设计的 新型家用电器。它包括p c 、机顶盒、h p c 、d v d 、超级v c d 、无线 数据通信设备、视频游戏设备、w e b t v 、i n t e r n e 电话等所有能够 通过网络系统交互信息的家电产品。目前,音频、视频和通信设备是 信息家电的_ e 要组成部分。此外,在传统家电i j 融入信息技术也成为 1 硕十学位论文 信息家电发展的一个趋势,这种技术将使传统家电的功能更加强大, 使用更加简单、方便和实用,如模拟电视发展成数字电视。 那么什么是信息家电,美国国家半导体公司是这样定义的:信 息家电( i a ,i n f o r m a t i o na p p l i a n c e s ) 是一种廉价、易用、以互动方式与 互联网连接的小型设备。它是网络上的家电,而不是p c 的外设。所 有能够通过网络系统交互信息的家电产品都可以称之为信息家电f 2 】。 1 1 2 信息家电的特点 信息家电大多指带有嵌入式处理器的小型家用( 个人用) 信息设 备,它的基本特征是与网络( 主要指互联网) 相连并具有一些具体功能, 可以是成套产品,也可以是一个辅助配件。它由嵌入式处理器、相关 支撑硬件( 如显示卡、存储介质、i c 卡或信用卡等读取设备) 、嵌入 式操作系统以及应用层的软件包组成。信息家电主要具有如下特点1 3 1 : 首先,它操作简单易于学习、经久耐用、功能单一; 信息家电是把p c 的某些功能分解出来,设计而成的能简单有效 地完成某些特殊任务的设备。对于丈多数用户来说,它应该是通过平 时积累的经验就能熟练使用的,是具备高性能、低价格、易操作特点 的与i n t e r a c t 相连的设备。 其次,信息家电是信息化的,它能够与因特网相连,实现设备 与用户之间、设备与设备之问的双向交流; 用户可以通过网络对家电设备进行远程遥控,设备也可以根据不 同需要,主动地或被动地将其各种信息传送给远程客户,包括它的属 信息家电接口定义语言及其编译器的研究与设计 性,各种可操作的控制信息,各部件的实际状态信息等,此外,对于 需要协同工作的设备,它们的信息也可以相互交流以更好的分工合 作。 信息家电一般有一个嵌入式系统,它使得信息家电能够智能地 为用户服务并具有实时性; 最后,为了使不同协议的信息家电之间能相互连接。必须参考 已有的通信协议来制定数据交换标准,使通信协议标准化。 1 1 3 信息家电的未来 现在信息家电正迅速发展,其类型和应用业务越来越多,各种新 技术的发展将推动不同形式家电的爆炸性增长。在这些发展过程中, 信息家电将呈现出以下几种明显的趋势| 4 】:。, v 少数信息家电将是通用型装置,多数则将是带有最佳接口而成 为便于执行特定任务的装置。好的信息家电将与个性化操作融为一 体,完全适合用户所执行的特定任务的要求,操作起来非常方便并且 不会分散用户的注意力。 v 各种信息家电尽可能使用一种无线技术实现互连,以充分利用 w e b 提供的信息资源。同时,可以连接到信息家电的基于w e b 的业 务将为进行这种业务的用户所共享。 v 新技术将为新的信息家电带来更多新的应用。 v 提供前所未有的新业务的全新概念将产生出惊人的发明创造。 例如,参照w e b 的停车场导航工具,可以找到空闲停车场的停车位 置,并通过4 :一i - 的g p s 系统将用户引导到该处,并从用户的电子钱 1 硕士学位论文 包中自动扣除车费。 1 1 ,4 信息家电与嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可 裁剪,适应应用系统,对功能、可靠性、成本、体积和功耗严格要求 的专用计算机系统f 5 l o 嵌入式系统一般由嵌入式硬件和软件组成,且 软件和硬件是紧密集成在一起的。硬件以嵌入式微处理器为核心,集 成存储器和系统专用的输入输出设备;软件包括初始化代码、驱动、 嵌入式操作系统和应用程序等,这些软件有机地结合在一起,形成系 统特定的一体化软件。嵌入式系统是整个信息家电体系中不町缺少的 部分,它内置在各个信息家电当中,包含各项服务的最终实现代码。 是整个信息家电体系中控制设备完成各种操作的核心控制部件。 1 2 本课题的意义以及在信息家电体系结构中的作用 1 2 1 课题研究的意义 可以预见,信息家电作为一类新兴的融合计算机技术的家电产 品,必将成为我们生活不可或缺的设备,但目前,对于它的研究还处 于开发实验阶段,要真正在信息家电方面形成大规模的产业,还有很 多问题亟待解决。 没有标准的信息家电体系结构是诸多问题中最为藿要的个。 目前,许多计算机、通信、家电行业的f 主人都认识到信息家电的巨大 市场潜力,纷纷进入这个领域。c i s c o 、i n t e l 、n o r t e l 、m o t o r o l a 、3 c o m 、 i b m 等公r 司部已开始建立智能信息家电的研究机构。由丁困阿i :还没 信息家电接口定义语言及其编译器的研究与设计 有形成统一的家庭信息化标准,各种标准纷杂,家电设备制造厂家无 所适从,为此,进行信息家电基础平台的研究有着重要的实用价值和 战略意义。 而本文研究的内容“信息家电接口描述语言及其编译器的研 究与设计”正是试图解决这个异构问题。本文从分布计算理论得到启 发,用接口定义语言( i d l ) 来定义分布式对象( 家电设备) ,认为建 立基于i d l 的体系结构是解决异构系统集成的基础。为此,本文设想: 从信息家电的特殊性出发,设计出种信息家电的接口定义语言 ( i a i d l ) ,并建立i a i d l 编译器。对信息家电的整个研究将基于 i a i d l ,将从体系结构上研究信息家电的基础平台,该基础平台将与 具体的操作系统、编程语言、网络协议及具体的信息家电的功能实现 等无关。 1 2 2 课题在信息家电体系结构中的作用 本文研究的课题是整个体系结构的重要组成部分,起到基石作 用。各个家电设备在接入网络前都要用信息家电接口描述语言来描述 自己的特性和功能,这就好比来自不同国家,不同地区的人在建立联 系前先用统一的语言( 如英语) 做自我介绍;而本文设计的编译器则 是用来将设备描述文件中的代表设备自身特点的信息提取出来并加 以处理,形成便于存储、操作的中间信息保存到位于网关上的数据库 中去。 下一节将主要就信息家电体系结构给出一个框絮性介绍,为后面 本文研究的主要内容提供服务。 s 硕十学位论文 1 3 信息家电的基本体系框架 1 3 1 家庭网络的构成 按照组成家庭网络的元素的不同,各种设备提供服务的不同,以 及家庭网络实现各种功能方式的不同,可以将家庭网络分为三种类型 的子网:娱乐性家庭网络( 包含如电视机、d v d 等) 、数字通信家庭 网络( 包含如电话、传真机等) 和家庭控制网络( 包含如防盗系统、 健身设备等) ,这些子网都通过家庭网关与社区网关相连并最终接入 1 3 2 信息家电接口定义语言 信息家电远程控制系统是一种分布式应用程序,客户机和服务器 之间需要通信的基本信息,例如客户机能请求的可用操作及该操作的 参数等,我们把这些信息包含在接口里。接口定义了某类设备( 如音 响、电脑、电视机等) 的特性和行为,包括服务器能在这类设备上施 加的操作,这些与面向对象里的类很相似。 信息家电的接口可以使用i a i d l ( i n f o r m a t i o na p p l i a n c ei n t e r f a c e d e f i n i t i o nl a n g u a g e ,信息家电接u 定义语言) 来编写。i a i d l 是定义 语言而不是编程语言,只能用来定义接口和数据结构,而不能用来编 信息家电接口定义语言及其编译器的研究与设计 写算法。按照i a i d l 规范书写的设备描述文件即i a i d l 文件由厂商 提供,它为应用软件开发商开发相应软件,用户远程操作信息家电设 备提供了最基本的原料信息,具体的将在后面的章节做详细介绍。 1 3 3 网关 网关是一种复杂的网络连接设备,可以支持不同协议间的转换,实 现不同协议网络之间的互连。它不能完全归为一种网络的硬件,用概 括的术语来讲,它应该是能够连接不同网络的软件和硬件的结合产品 嘲。 信息家电网络中,网关要完成媒体转换、速度匹配、防火墙、加 密证实、l p 地址获得、地址解析等功能,还要执行多协议的转换、系 统管理、多个网络的连接等功能,在网关上除了最基本的t c p i p 协 议外,还运行着网络地址翻译协议、动态主机配置协议和超文本传输 协测硼踟。在本文的信息家电体系里,网关处于核心位置,它除了扮 演通常意义上的角色外,他还是应该是个代理器和控制器。 代理器 代理器是分布式系统中若干个客户机与一个或多个服务器( 信息 家电设备) 之间的中间件。代理器在客户机请求服务器时表现为一个 客户机,在服务器响应客户机时表现为一个服务器。这样,客户机和 服务器就可以无须了解对方,实现真正的分离,并且打破了原来传统 的一对一的客户机朋啜务器的关系,可以是多个服务器为单个客户机 服务,也可以是个服务器为多个客户机服务1 9 】如图1 2 所示。 硕士学位论文 。 圈i - 2 代理器 控制器 它的存在犹如在信息设备与客户端之间开辟了一条信息交互的 通道,使得客户端的控制信息能准确地发送到信息设备上,并且信息 设备的返回值和工作状态信息也能及时地反馈给远程客户端。 同时在家庭网络中,网关应该要提供以下基本的服务: 注册管理 某信息家电设备连入网络时,网关上的设备解释器( 即i a i d l 的编译器) 将根据该设备的i a i d l 文件,把设备的属性、所提供的 操作、操作所带的参数以及设备的状态信息和异常信息提取出来,并 将这些信息以某种数据形式存储到网关对应的数据库中。同时,网关 还要给当前设各分配一个能唯一标识它的设备引用( 包括设备序列号 等) ,并将这个引用告知所有的客户端,当该设备撤离网络的时候, 网关同样要将该信息告知所有用户,并在数据库中保持所有数据信息 的一致性。 控制管理 网关分析远程客户端发来的信息,然后打包转发给信息设备,若 有返回值,则等待信息设备返回的结果,再将结果送回给客户端。 状态管理 信息家电接口定义语言及其编译器的研究与设计 任何时候设备都处于某一种特定的状态,即便是刚刚接入网络的 设备也有一个初始状态。设备状态对于客户端访问、操作该设备十分 重要,网关要不断的将该信息同步的反映到网关中的数据库中,并显 示在客户端生成的操作界面上供远程客户端参考使用。状态的变化与 否将直接关系到客户端对设备的操作是否成功( 在2 3 节将详细阐 述) 。 设备获取管理 客户端对信息家电设备进行操作前,要先获取所有在线设备的列 表,这部分工作也要由网关来完成。当客户端要求具体设备的具体信 息时,网关要将该设备的属性、操作、状态等信息传给它,使客户端 形成操作界面。 网关提供多个s o c k e t 口,对于每一个上线的控制端的服务请求都 启动一个相应的线程来响应它们对家电设备的服务请求,这样通过采 用多线程的通信结构,将保证整个远程监控系统的实时性与准确性。 1 3 4 解释器 i a i d l 定义的设备接口都是以i a i d l 文件的形式存在的,所以 对于接口信息的使用很不方便,这就需要将i a i d l 中的信息提取出 来,以一种容易记录、存储和使用的方式表示,这种容易记录、存储 和使用的信息我们称之为中间信息。我们将中间信息存储在网关上的 各种数据库中,当客户端对某设备提出请求时,我们先根据相关数据 库中的信息在客户端生成一个操作界面,并将该设备的一些信息,如 状态信息和属性值等在界面上反映出来,j 与操作执行完后,若设街的 口 硕士学位论文 属性和状态发生了变化,这些也将同步地在数据库中和客户机的操作 界恧上体现出来。 这种完成中间信息的提取工作和界面自动生成工作的软件我们 称之为接口解释器和界面解释器如下图1 3 所示。 设备端网关客户端 l l l 接口解释器界面解释器 i a i d l 蚶u jj ,h h i ,士白j 操作界面 7 _一i l 叫1 日,t q i 1 3 5 客户机与服务器 图1 - 3 解释器 这里客户机与服务器( 信息家电设备) 是正式分开的,客户机只 需要知道如何请求做某些事,服务器只要知道如何完成客户机所请求 要完成的任务。 它们用一种称为“请求( r e q u e s t ) ”的消息来通信。请求由以下 部分组成: 一个操作的标识,这可以从i a i d l 文件得知; 一个特定设备的引用,操作是在该设备上完成的。设备引用是 在信息家电接入网络,在网关上注册时由网关确定的; 有关请求成功或失败的返回异常信息的机制,包括用户异常和 系统异常,它与i a i d l 文件中描述的设备状态与异常信息有关; 语义对象,它是一个语义串,如“f u n c t i o ns e t _ t e m p e r a t u r ev o i d t e m p ( i ni n ts t ( 2 0 ,4 0 ) ) ;”中的“s e tt e m p e r a t u r e ”; 信息家电接口定义语言及其编译器的研究与设计 零个或一个与被请求的操作相关的参数。 客户机要对信息家电设备发送请求,首先要知道被请求信息设 备的设备引用,设备引用至少应该包含以下内容: r e p o s i t o r yi d 提供了设备的类型检查,例如检查对于音响的操 作是否操作到了其它类型的设备上去了; e n d p o i n ti n l b 标识目标地址,包括i p 和端口号,或者是设备 在注册时得到的具有唯一性的设备序列号,因为该序列号就是根据i p 和端口号等生成的; o p e r a t i o ni d 用来定位设备上的具体操作,事实上,在编译设 备描述文件时,对文件中声明的每个操作都给了一个确定的编号 o p _ i d ,而且通过该编号还可以与状态建立联系,因为在设计状态和 操作的说明规范时,在状态名和操作名的定义规则上建立了相应操作 和该操作企图改变的设备状态之间的联系。 可以通过以下途径获取设备的设备引用: 通过将设备引用转换成一个串写入一个文件中,使用时从文 件中读出这个串并将其转换成为设备引用; 通过公共服务程序如n a m i n gs e r v i c e 来获取: 通过e m a i l 、w r e b 页发布。 1 3 6 设备请求代理器( d r b ,d e v ic er e q u e s tb r o k e r ) 设备请求代理器为系统巾的所有设备提供通信中枢,它提供了设 备问信息流动所需的通路,如下图1 4 所示。 客户端戍用程序要访问某设备,首先发送请求给客户端的d r b , 硕十学位论文 d r b 按协议将请求打包,发送给服务器,服务器端的d r b 按协议将 打包了的信息解包( 此时的网关就是服务器) ,网关再根据设备引用 将调用请求定位到确定的信息家电设备的具体实现上,如果操作有结 客户机应用程序 客户机d r bl _ j 服务器端d r b 图1 4 设备请求示意图 闹 i - j n 磊一 果返回,也将由网关负责传回到客户端,如果操作不成功,相应的异 常信息也将通过网关传回到客户机。 1 4 编译器的发展历史删d 1 悯 最早的编译器是上世纪5 0 年代开发的f o r t r a n 语言编译器, 它是i b m 的j o h nb a c k u s 带领的研究小组完成的,但这个项目的开发 工作既复杂又艰苦。同一时期,n o a mc h o m s k y 开始了他对自然语言 结构的研究。他的发现最终使得编译器的结构异常简单,甚至还带有 了一些自动化。 c h o m s k y 的研究导致了根据语言文法的难易程度以及识别它们 所需要的算法来对语言分类,这就是现在所称的c h o m s k y 架构 ( c h o m s k yh i e r a r c h y ) ,它包括了文法的四个层次:0 型文法、1 型文 法、2 型文法和3 型文法,且其r p 的每一个都是其前者的特殊情况。 2 型文法( 或上下文无关文法) 被证明是程序设计语言q - 最有j 羁的, 燮一 黑 信息家电接口定义语言及其编译器的研究与设计 而且今天它已代表着程序设计语言结构的标准方式。 分析问题( p a r s i n gp r o b l e m ,用于上下文无关文法识别的有效算 法) 的研究是在6 0 年代和7 0 年代,当它变得越来越明朗时,人们开 始关注p a r s i n gp r o b l e m 这部分的编译器自动构造的问题,最初这些 程序被称为编译器的编译( c o m p i l e r - c o m p i l e r ) ,但更确切地应称为分 析程序生成器( p a r s e rg e n e r a t o r ) ,这是因为它们仅仅能够自动处理编 译的一部分。这些程序中最著名的是y a c c ( y e ta n o t h e r c o m p i l e r - c o m p i l e r ) ,它是由s t e v ej o h n s o n 在1 9 7 5 年为u n i x 系统编 写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生 成器( s c a n n e rg e n e r a t o r ) 的工具,l e x ( 与y a c c 同时,由m i k el e s k 为u n i x 系统开发) 是这其中的佼佼者。 在7 0 年代后期和8 0 年代早期,大量的项目都贯注于编译器其它 部分的生成自动化,这其中就包括了代码生成。大概是因为操作太复 杂而人们又对其不甚了解,这些尝试并未取得多少成功。 大约在1 9 9 9 年,s g i 公布了他们的一个工业化的并行化优化编 译器p r 0 6 4 的源代码,后被全世界多个编译器研究小组用来做研究平 台,并命名为o p e n 6 4 。o p e n 6 4 的设计结构好,分析优化全面,是编 译器高级研究的理想平台。 1 5 论文结构 本文研究的内容主要分为两个部分,一个是定义信息家电接口描 述语言i a i d l 的规则,另个就是针对这个i a i d l 设计制作它的编 硕士学位论文 译器。 论文总共分为五章: 第一章绪论,概述了信息家电的特点和发展的趋势;通过介绍信 息家电的体系结构框架,阐述了本课题的研究意义和在整个体系结构 中所起到的基础性作用:通过编译用i a i d l 语言书写的i a i d l 文件, 提取相应信息并存储到位子网关的数据库上的举措,使之各个客户端 与设备之间可以通过读取数据库而自由通信,从而消除他们之间因软 件或硬件的不同而存在的异构问题。 第二章i a i d l 的设计及相关编译原理,论述了提出设计i a i d l 的必要性,并通过与其他语言的比较,对1 a 1 d l 的性质、作用给出 了定位,并确切定义了什么是i a i d l 。随后引入面向对象的思想,对 信息家电的共同特性做了详细分析,结合编译原理的相关理论研究出 了i a i d l 语言描述设备所应该涉及到的主要方面,并分析了之所以 要这样设计的原因,本章最后用e x t e n d e db a c k u s n a u rf o r m a t ( e b n f ) 的形式给出了i a i d l 的具体说明和例子。 第三章词法分析与语法分析,这一章节先就词法分析和语法分析 作了介绍。由于本文设计的i m d l 编译器是用l i n u x 下的l e x & y a c c 完成的,而y a c c 的规则段部分要求i a i d l 满足l a l r ( 1 ) 文法规则, 所以对l r ( k ) 分析器的内容做了详细说明。同时这章也是i a i d l 编译器制作的技术篇,在3 3 节中,对l e x & y a c c 的编程技术结合i a i d l 编译器制作做j ,较为全而的介绍。 第四錾中问信息的规划和信息的存储,事实上这部分的 作在制 信息家电接口定义语言及其编译器的研究与设计 作编译器时就已经完成了。这章主要介绍了在编译i a i d l 文件的时 候,对其中的信息作了怎样的处理,对各种信息采取了什么样的数据 形式进行存储,并且对数据库的结构做了详细介绍,还结合实例分析 了之所以这样加工信息和设计数据的原因。本章还介绍了所采用的数 据库m y s q l i t e 和它所提供的c c + + 语言的a p i 函数。 第五章结语对本文的研究内容做了总结,对不足的地方进行了分 析,且就下一步工作进行了展望。 最后是参考文献、附录一、附录二、致谢和原创性声明。 信息家电接口定义语言及其编译器的研究与设计 第二章i a i d l 的设计及相关编译原理 从1 9 9 9 年开始,国内外各大组织和企业就尝试对信息家电制定 标准,但到目前为止国际上尚未有统一的规范。近年,由我国国家经 贸委和信息产业部共同组织的“家庭信息化网络技术体系结构及产品 开发平台”项目,和海尔主导的网络家电标准组织“e 家佳产业联盟”也 先后提出在信息家电体系中引入“设备描述文件”和家庭网络设备 描述文件规范的想法( 1 3 1 。2 0 0 6 年6 月,“e 家佳”联盟向 i s o i e c j t c l s c 2 5 ( 国际标准化组织国际电工委员会信息技术委员 会的2 5 分委员会) 提交了核心协议和设备描述文件( 遭到了失败) 1 1 4 1 。它们的想法与本课题的思想十分相似,因此对信息家电接口描述 语言进行研究是有现实意义的。 2 1 引入l a f o l 的意义 信息家电基本的功能之一就是通过网络进行信息交互。要使信息 家电之间( 同类型的或不同类型的) 相互通信,进而达到相互控制的 目的,就必须使它们之间能够相互“认识”并“理解”各个设备之间 交互的信息,并且这种“认识”和“理解”应该是不受各个信息家电 设备的软件、硬件约束的。所以本文提出构建信息家电接口描述语言, 为信息家电系统的软、硬件异构问题提供了解决的办案,并为建立一 个标准的信息家电体系结构( i n f o r m a t i o na p p l i a n c ea r c h i t e c t u r e ) 提供 硕士学位论文 基石,如图2 - l 所示。 远程用户 家庭网关 端 二3 信息家电i i 用户1 :一尝宅一功能实 i 现模块 用户2l 中f b 】两编 1 一 设备协 冀c。1 蕊。j 用户3作模块 2 2i a i d l 定义与定位 图2 - 1 信息家电体系结构框架 信息家电接口定义语言( i n f o r m a t i o na p p l i a n c ei n t e r f a c e d e f i n i t i o nl a n g u a g e ,i a i d l ) 是一种用来定义家庭网络中信息家电的 说明性语言。它采用面向对象的方法,将信息家电设备抽象为标准的 “对象”,把设备的内部数据值转换为通用的、抽象的数据结构来实 现数据通信。网关或网络控制器通过对对象的i a i d l 文件的理解、 分析来识别和访问设备,并通过相应的应用程序去远程操作、控制家 电设备的状态。 i a i d l 不能直接用它来编写可执行的程序,它只用于描述设备信 息,是有别于高级语言的非编程语言。 用i a i d l 编写的文件,记录了设备的可用信息,通过编译该文 件,将这些信息提取出来,存储到位于网关的数据库中,供应用程序 的开发者使用,所以它义有别予类似对象管理组( o b j e c tm a n a g e g r o u p ,o m g ) 制订的接l 定义语言( i n t e r f a c ed e f i n i t i o nl a n g u a g e , l r 信息家电接口定义语言及其编译器的研究与设计 i d l ) 这样的非编程语言。 o m gi d l 也是定义语言,只能用它来定义接口和数据结构。但 o m g 为这些接口和数据结构定义了数种编程语言的联编,用户能从 o m gi d l 源文件生成这些语言的源代码【9 】 1 5 l 。所以o m gi d l 虽然也 是非编程语言,但还是带有编程特性的,与i a i d l 不同。 2 3i a i d l 描述的内容 2 3 1 属性 属性用来描述设备的实际特性,是和具体设备密切相关的,是一 些不会随时间和用户的使用而改变的设备特性。 例如:设备的名字、厂家、功率、版本号、设备出厂号等。 它的值一经厂家设定,存入数据库后就不会改变,对用户而言是 些只读的可见信息。 2 ,3 2 操作 将硬件提供的功能以类似函数接口的形式向( 软件) 应用程序开 发者提供,最终用户也是通过这些接口信息来定位某个特定设备上的 具体功能的。 i a i d l 将描述该函数的基本特性包括:函数名,功能说明,函数 返回值,函数的参数,参数方向、参数类型和参数的取值范围。 功能说明语句也就是前面提到的语意对象的。一种,它是一个字符 串,用来解释说明操作所实现的具体功能。 根据实际情况,函数返回值类型考虑给出了以下几种:无返回值 硕七学位论文 类型( v o i d ) 、整型( i n t ) 、浮点型( f l o a t ) 、字符串型( s t m i g ) 。 函数参数方向有三种: i n 表示参数是由客户端发送给服务器端的,不需要返回值; o u t 表示参数是由服务器端发送给客户端; i n o u t 表示参数是由客户端初始化,发送给服务器端,服务器 能够修改参数的值。 一般情况下,对设备的操作是对设备某一状态的改变,所以,希 望在定义一个操作时指明该操作与具体的哪一个状态的改变有关,因 此在定义操作名时将操作名命名为如下形式:s t _ 状态名,并且在操 作中至少有一个参数的参数值类型与相对应的状态名的状态值类型 是一样的( 该参数值是某次特定的操作对相应状态设置的期望值,称 为期望状态值) 。 2 3 3 状态 描述设各的状态,状态声明应在操作声明之前: s t a t e 状态说明状态名状态值类型 ( 期望状态值,实际状态值, , ) ; 状态名:与改变该状态的函数名直接相关,如果有一个名为 “t e m p ”的状态,则改变温度的函数名应该为“s t _ t e m p ”。 状态说明:和操作中的功能说明一样,是语意对象的种,它 是一个字符串。 2 0 信息家电接口定义语言及其编译器的研究与设计 状态值类型:它对其后括号内的值都具有约束性,可以是i m 、 f l o a t 、s t r i n g 和枚举类型。 期望状态值:记录每次用户试图改变该状态所设的值,它在出厂 时由厂商设定一个初始值,初始值应与出厂时该状态的实际值保持 一致。在数据库中,它的值由用户通过操作( 调用函数) 来改变。 实际状态值:它将始终客观地反映设备的实际状态。在数据库 中,对应数据值的改变应该采用“推”模型,即当设备状态改变后, 由设备主动地写入数据库,并反映到用户终端上。 警戒值:是由厂家设定的一组特殊值,如设备某功能实际取值的 最大值和最小值等。 异常信息:它是当某状态到达某个特殊值时所对应的报警信息, 如“取值过大”和“取值过小”等。 当然在应用程序远程调用时,可以通过对参数的取值的有效性进 行控制,例如,由“f u n c t i o n 设置温度v o i d t e m p ( i ni n ts t 2 0 ,加】) ;”, 可知空调温度的取值范围是2 0 4 0 ,若远程调用的参数不合法时 ( 大于4 0 或小于2 0 ) ,可以进行提示错误信息,但这只是软件方 面的保证。有了“ ”就增加了硬件保证, 因为它是由设备自我监控到的。 2 3 4 基本数据类型 整型、浮点型、字符串型、和牧举型。 枚举型的定义在所有操作和状态定义之前,对某枚举型类型的使 用遵循先定义后使用的筠i 则。 ,1 硕十学位论文 e n u m 枚举类型名称= ( 枚举值1 ,枚举值2 ,枚举值n ) ; 2 3 5 离散型设备的描述 离散型设备是功能单一、操作简单的、使用数量较多的设备类型 如电灯,窗户等。 对这类设备可以统一通过一个控制板集中管理、控制。该控制板 提供一组接口供设备连接,所以,对离散型设备的管理转为对该控制 板的管理。 2 4i a i d l 相关编译原理 信息家电接口定义语言作为一种特殊的描述语言,具有自己特定 的文法。 2 4 1i a i d l 的字母表与符号串 字母表是元素的非空有穷集合。例如,由2 6 个英文字母组成的 集合是一个字母表,记为。字母表中的元素称为符号。例如,2 6 个英文字母中的元素a 、b 、c 等都称为符号。 由字母表中的符号组成的任何有穷序列称为符号串。空符号串 不包含任何字符,以希腊字母e 表示。符号串所包含符号的个数称为 符号串的长度,空符号串的长度等于零。 由于描述的是各种信息家电的信息,所以大小写2 6 个英文字母, 十个数字符号和一些常用的符号都包括在i a i d l 的字母表l l 。 诊i a i d l 字母表= a z 、a - z 、0 - 9 、 、( 、) 、 、 :、;、= 、 一 ,共包含7 3 个符号。 2 2 信息家电接口定义语言及其编泽器的研究与设计 一般来讲,i a i d l 中的字符串长度不大于2 5 5 ,空格和制表符均 视为空串,不做任何处理。 2 4 2l a i d l 的正则表达式 正则表达式表示字符串的格式。正则表达式r 完全由它所匹配的 串集来定义。这个集合称为由正则表达式生成的语言( 1 a n g u a g e g e n e r a t e db yt h er e g u l a re x p r e s s i o n ) ,记作u r ) 。此处的语言只表示“串 的集合”,它与程序设计语言并无特殊关系。该语言首先依赖于适用 的字符集,它一般是a s c i i 字符的集合或它的某个子集。有时该集比 a s c i i 字符的集合更普通一些,此处集合的元素即为符号,这个正规 符号的集合就是字母表。 正则表达式r 还包括字母表中的字符,但这些字符具有不同的含 义:在正则表达式中,所有的符号指的都是模式。如a 就是一个作为 模式的字符a 。 最后,正则表达式r 还可以包括有特殊含义的字符。这样的字符 称作元字符( m e t a c h a r a c t e r ) 或元符号( m e t a s y m b 0 1 ) 。它们并不是字 母表中的正则字符,否则当其作为元符号时就与作为字母表中的字符 时很难区分了。源代码层一般用反斜杠和弓 号这样的转义字符( e s c a p e c h a r a c t e r ) 来关掉元字符的特殊意义1 1 6 1 。 定义正则表达式是以下的一种1 1 7 1 : 1 基本( b a s i c ) 正则表达式由个单字符a ( 其中a 在正规字符 的字母表中) ,以及元符号或元符号d 组成。在第1 种情况下, u a ) = a ) :在第2 种情况下uf ) = ;l ( 够) = 。 2 3 硕士学位论文 2 r i s 格式的表达式:其中r 和s 均是正则表达式。在这种情况下。 l ( r l s ) = l ( r ) ul t s ) 。 3 r s 格式的表达式:其中r 和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论