




已阅读5页,还剩72页未读, 继续免费阅读
(计算机应用技术专业论文)基于itkid的net语义模型设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
tqtf# k ,j 孽 at h e s i sf o rt h ed e g r e eo fm a s t e ri nc o m p u t e r a p p l i c a t i o nt e c h n o l o g y d e s i g na n di m p l e m e n t a t i o no ft h e n e t s e m a n t i cm o d e lb a s e do ni t - k i d b yh u a n gz h e n h u a s u p e r v i s o r :p r o f e s s o rh u a n gw e i z u n o r t h e a s t e r nu n i v e r s i t y f e b r u a r y2 0 0 8 ijhtlhit辱 -11, 引 -i,j“- ,j 独创性声明 本人声明所呈交的学位论文是在导师的指导下完成的。论文中取得的 研究成果除加以标注和致谢的地方外,不包含其他人已经发表或撰写过的 研究成果,也不包括本人为获得其他学位而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示诚挚 的谢意。 学位论文作者签名: 参研 签字目期:矽踊斫p 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学位论 文的规定:即学校有权保留并向国家有关部门或机构送交论文的复印件和 磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学位论文的全部 或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名:否则视为不同意) 学位论文作者签名 导师签名:名p 诬 签字 日期:炒嘶口偎。7 p 签字日期:m 争即时 j f 】; 东北大学硕士学位论文摘要 基于i t - 瞄d 的n e t 语义模型设计与实现 摘要 软件工程是项复杂的活动,软件工程师分析理解具有众多不同内部关系的组件的 复杂结构,并通过有效工具获取与软件结构相关的信息,这是软件工程中研究的一个热 点。在面向对象的软件开发中,涉及的组件包括:类、接口、方法、字段和其他实体, 关系包括:继承、实现、包含、调用等等。对源代码的静态分析可以获得此类信息并借 助有效工具反馈给软件工程师,增强软件工程师对所设计软件的理解。 分析研究表明,软件的深层结构信息存在于语义中而不是语法中,语义模型作为描 述概念与概念之间语义关系的概念模型,被广泛应用于计算机科学的众多领域,语义模 型通过概念之间的语义关系来描述概念的语义,是一种表现概念层次结构和语义的有效 工具。 本文中所给出的语义模型,显示了可在n e t 公共语言运行库( c l r ) 进行编译的 语言所构建的软件结构的语义。n e tf r a m e w o r k 允许用不同语言所写的源代码在同样的 运行环境中交互运行,在中间语言层为众多高级语言提供了通用语义,通过对n e t 语 言编译器所生成的中间语言建模,构建了独立于任何特定语言的语义模型,这个语义模 型,能够清楚的显示c l r 中的语义概念。也就是说,n e t 公共语言运行库( c u 己) 提 供了支撑跨语言交互的通用语义,通过规范m s i l ,不同高级语言编译为m s i l ,其所编 写的程序则可以在同样的执行环境中进行交互操作,m s i l 能够为各类编程语言捕获通 用的语义,通过特定语言编译器把语言的语法和语义映射为通用语义,然后,生成m s i l 代码,使程序集文件能够运行在n e t 虚拟机上。这就为应用语义模型进行通用语义概 念和特定编程语言语义概念的相互映射提供了建模基础。 本论文对目前语义模型的研究与应用现状进行了描述,从语义模型的基本概念、语 义模型的构建方法以及语义模型在语义映射过程中的应用等方面加以了系统阐述。本论 文通过对n e tf r a m e w o r k 相关概念的整理,结合i t - k i d 理论,从面向对象的视角构建 了“n e t 语义模型( d n s m ) 。主要是为了能够清晰直观地阐述n e tf r a m e w o r k 中的 概念以及概念之间的逻辑关系,客观地反映软件结构的信息,以帮助软件工程师有效的 开发软件。 关键词:n e t 语义模型;i t - k i d ;微软中间语言;公共语言运行库;面向对象编程 一i i 一,1l礴, a b s t r a c t a n t i cm o d e lb a s e do n s o f t w a r ee n g i n e e r i n gi sa c o m p l e xa c t i v i t yr e q u i r i n gs o f t w a r ee n g i n e e r st ou n d e r s t a n da l l i n t r i c a t es 仃u c t 旧o fc o m p o n e n t s ,w i t hm a n yd i f f e r e n t i n t e r - r e l a t i o n s h i p s t h en e e df o r g a t h e r i n gi n f o r m a t i o no ns o f t w a r es 缸u c t i 鹏t oi n f o r mt h et o o l sa n dc o m m u n i c a t et h e mb a c k t ot h es o f t w a r ee n g i n e e ri sa ni m p o r t a n ti s s u ei ns o f t w a r ee n g i n e e r i n g i no b j e c t - o r i e n t e d s o f t w a r e ,t h e s ec o m p o n e n t si n c l u d ec l a s s e s ,i n t e r f a c e s ,f i e l d s ,m e t h o d sa n do t h e re n t i t i e s r e l a t i o n s h i p si n c l u d ei n h e r i t a n c e ,i m p l e m e n t a t i o n ,c o n t a i n m e n t , i n v o c a t i o na n dm a n ym o r e s t a t i ca n a l y s i so fs o u r c ec o d ec a nb eu s e db yt o o l st oc o n v e yt h i si n f o r m a t i o nt os o f t w a r e d e v e l o p e r s ,t oi n c r e a s et h e i ru n d e r s t a n d i n go ft h es o f t w a r et h e ya r ed e s i g n i n g t h ed e e p s 仇1 c t u r eo fs o f t w a r em a n i f e s t si t s e l fi ns o f t w a r es e m a n t i c s ,r a t h e rt h a ns y n t a x s e m a n t i c m o d e lf o rd e s c r i p t i o nt h er e l a t i o no ft h ec o n c e p t s ,i su s e df o rt h ec o m p u t e r sd o m a i n s ,i sa t o o lt h a te x p l i c i t l ye x p o s e st h ec o n s t r u c t o ra n ds e m a n t i c s i nt h i sr e s e a r c hw ep r e s e n tt h ed e s i g no fas e m a n t i cm o d e lt h a te x p o s e st h es e m a n t i c s t r u c t u r eo fs o f t w a r et h a ti sw r i t t e ni nal a n g u a g et h a tc o m p i l e st ot h e n e tc l r t h e m i c r o s o f t n e tf r a m e w o r ki sas i g n i f i c a n tc h a n g ei np r o g r a m m i n gt e c h n o l o g yb e c a u s ei t a l l o w ss o u r c ec o d ew r i t t e ni nd i f f e r e n tl a n g u a g e st oi n t e r o p e r a t ew i t h i nt h es a n l ee x e c u t i o n e n v i r o n m e n t t h e n e tf r a m e w o r kp r o v i d e sac o l n l n o ns e m a n t i cu n d e r p i n n i n gf o raw i d e r a n g eo fp r o g r a m m i n gl a n g u a g e si na ni n t e r m e d i a t el a n g u a g e b ym o d e l i n gt h ei n t e r m e d i a t e l a n g u a g et h a t n e tl a n g u a g e sc o m p i l et o ,o u rm o d e li si n d e p e n d e n to fa n ys p e c i f i c p r o g r a m m i n gl a n g u a g e w eh a v ed e s i g n e da n di m p l e m e n t e das e m a n t i cm o d e lt h a te x p l i c i t l y e x p o s e st h es e m a n t i cc o n c e p t si nt h ec l r r e c e n t l y , t h e n e tc l rp r o v i d e sac o m m o n s e m a n t i cu n d e r p i n n i n ga c r o s sd i f f e r e n t l a n g u a g e s i no t h e rw o r d s ,p r o g r a m sw r i t t e ni n d i f f e r e n tl a n g u a g e sc a ni n t e r o p e r a t ew i t h i nt h es a m ee x e c u t i o ne n v i r o n m e n to f n e t t h i si s a c h i e v e db y s p e c i f y i n gac o n l m o nm i c r o s o f ti n t e r m e d i a t el a n g u a g e ( m s i l ) ,w h i c hc a p t u r e s t h ec o m m o ns e m a n t i c sf o raw i d er a n g eo fp r o g r a m m i n gl a n g u a g e s ,t oa l l o wc o m p i l a t i o n f r o mt h e s el a n g u a g e si n t om s i l l a n g u a g e - s p e c i f i cc o m p i l e r sm a pt h es y n t a xa n ds e m a n t i c s o ft h e i rl a n g u a g eo n t ot h e s ec o m m o ns e m a n t i c s s u b s e q u e n t l y , t h ep r o d u c e dm s i lc o d ei s a b l et or u n o nt h e n e tv i r t u a lm a c h i n e t h i si sab a s et h a tm o d e lt h em a p p i n gb e t w e e nt h e c o m m o ns e m a n t i cc o n c e p t sa n dp r o g r a m m i n gl a n g u a g es p e c i f i cc o n c e p t s t h i st h e s i sb a s e do nk n o w l e d g ei n t e g r a t i o na n do b j e c to r i e n t e dt h i n k i n g a c c o r d i n g i t - k i di n t e g r a t e ds o f t w a r es u p p o r tt o o l sa n dc o n c e p t sm o d e l ,s e m a n t i ce n t i t yc a nb e a n a l y z e d 一i i i 东北大学硕士学位论文 a b s t r a c t t h e n ,i no r d e rt oh e l p i n gs o f t w a r ed e v e l o p e r st od e s i g nt h es o f t w a r ea n dd e s c r i p t i o nt h e r e l a t i o n s ,w eb u i l du pas e m a n t i cm o d e lt oi n t e g r a t e n e tf r a m e w o r k k e y w o r d s :n e ts e m a n t i cm o d e l ;i t - k i d ;m s i l ;c o m m o nl a n g u a g er u n t i m e ;o o p 一一 目录 ! u 3 s i i 认c i i i i 第一章绪论1 1 1 课题来源1 1 2 课题背景1 1 2 1 面向对象编程。1 1 2 2 软件静态分析2 1 2 3 语义建模一3 1 3 本文的研究内容3 1 4 本文的研究方法4 1 5 本文的结构5 第二章n e t 语义框架概述7 2 1 基本概念7 2 1 1 语义概述7 2 1 2 软件的语义7 2 1 3 语言的语义8 2 1 4 语句的语义9 2 1 5 程序的语义9 2 2 语义模型l o 2 :;n e tf r a m e w o r k 1 2 2 3 1 n e t 框架体系结构1 2 2 3 。2c j f 语言1 4 2 4m i c r o s o f t 中问语言( m s i l ) 1 5 2 4 1m s i l 概述1 5 2 4 2 访问m s i l 2 2 2 5 小结2 4 第三章n e t 语义模型的构建基础i t - k i d 2 5 3 1i t - k i d 简介一2 5 3 1 1 基于面向对象语义学的i t - k i d 概念模型2 6 一v 一 东北大学硕士学位论文目录 3 1 2 基于面向对象语义学的i t - k i d 关系模型3 0 3 1 3 基于面向对象语义学的i t - k i d 其它数据模型3 1 3 2 基于i t - k i d 模型的n e t 语义模型31 3 2 1 n e t 语义模型功能分析3 1 3 2 2p a r s e r 分析方法3 2 3 3 n e t 语义数据库3 3 3 4 小结。3 4 第四章n e t 语义模型的设计与组装3 5 4 1j a v a 和n e t 公共语言特征设计3 5 4 1 1 类3 6 4 1 2 方法和构造器3 7 4 1 3 字段3 9 4 1 4 块和语句3 9 4 1 5 数组4 0 4 1 6 修饰符4 1 4 1 7 泛型设计4 2 4 2 n e t 具体语言特征设计4 3 4 2 1 程序集和模块4 3 4 2 2 枚举4 4 4 2 3 特性4 4 4 2 4 委托4 5 4 2 5 事件4 6 4 2 6 命名空间4 6 4 2 7 属性与索引器4 7 4 2 8 指针4 8 4 3 组装语义模型4 8 4 3 1 解析4 9 4 3 2 反射4 9 4 3 3 最终的系统4 9 4 4d 、结5 0 第五章n e t 语义模型的应用5 1 5 1 对不同编程语言进行双向语义映射5 1 5 2 n e t 和j a v a l 4 之间语义映射的分析。5 2 5 2 1 n e t 和j a v a l 4 的通用语义5 3 5 2 2 n e t 程序集与j a v a 程序5 3 一v i 一 一,0d 目录 5 3 5 3 5 4 5 5 5 5 5 5 5 4 小结一5 5 第六章总结与展望5 7 6 1 总结一5 7 6 2 展望5 8 6 2 1 n e t 语义模型的局限性5 8 6 2 2 未来的研究工作:一5 8 参考文献5 9 致谢6 3 一v i i 东北大学硕士学位论文第一章绪论 第一章绪论弟一早珀了匕 本章总括全文,目的在于明确本文研究实现课题所做工作及其意义。首先,给出了 课题的来源。接着介绍了课题研究的背景及现状,并论述了本文研究实现的意义及语义 模型的构建方法。最后,列出本文所做的主要工作和本文的结构。 1 1 课题来源 本课题是科技部创新基金项目“教育软件的流水线制作平台及应用”( 项目代码 0 1 c 2 6 2 1 2 1 1 0 2 9 2 ) 的一部分。 1 2 课题背景 近年来,随着计算机应用需求的不断增强,计算机应用技术的发展日新月异。然而, 快速发展的同时,也面临着种种困难。如:知识的表示,软件的复用,信息的检索等等。 特别是,软件工程作为一项复杂的活动,需要软件工程师分析理解具有许多不同内部关 系的组件复杂结构n 3 。为了解决这些问题,语义模型作为一种能在语义和知识层次上描 述语义信息的概念模型,在计算机的许多领域得到了应用,如知识工程乜3 1 ,软件度量口一3 , 信息检索睛1 ,异构信息的处理等。 1 2 1 面向对象编程 面向对象编程( o b j e c to r i e n t e dp r o g r a m m i n g ) 是一种计算机编程的范例旧,应用对 象的彼此交互对软件进行建模。o o p 的一条基本原则是计算机程序是由单个能够起到 子程序作用的单元或对象组合而成。o o p 达到了软件工程的三个主要目标:重用性、 灵活性和扩展性。第一个包含这类信息的编程语言是s i m u l a 6 7 ,是1 9 世纪6 0 年代中期 开发的。s m a l l t a l k 语言受其影响于1 9 世纪7 0 年代被设计,并且基于创建适合初学者应 用的高水平语言的设计目标,它是第一个纯面向对象的语言。s m a l l t a l k 的设计者一a l a n k a y 是第一个使用“面向对象 一词的。但是,直到1 9 世纪8 0 年代产生的c 语言扩展 到c + + ,且c + + 被众多软件工程师和众多组织理解使用后,面向对象编程才开始广泛普 及。在这一点上,许多程序员应用c + + 不是为了面向对象的特征,而是由于基本的抽象 和类型检测的改善畸1 。随着开发者逐渐理解和使用面向对象的范例,面向对象编程的优 势才得以广泛的提现出来。许多编程语言在某一方面被扩展具有了面向对象的特征,包 括:a d a ,p a s c a l 和b a s i c ,这就促使许多高级编程语言在此基础上被设计包含了面向 对象的特征,这些语言包括:e i f f e l ,j a v a 和c 撑,同样也有动态类型化面向对象语言如: 东北大学硕士学位论文第一章绪论 p y t h o n 和r u b y 。 现阶段,面向对象编程的优势已被广泛理解,并且面向对象编程成为了主要的编程 范例,面向对象编程语言都支持类似的概念:类、继承、字段、方法和方法调用等。无 论如何,众多面向对象语言的主要区别在于语法,而不是语言的语义。c h a p p e l l 给出了 一个结论:尽管众多面向对象编程语言的语法规则不同,但几乎都能够表示同样的语义 【7 】 o 实践中,为了对这些语义定义一个标准的实现方式,允许用不同语法表示同样地语 义。m i c r o s o f t 基于这个问题开发了n e t 框架,通过提供一种语法和语言独立的运行时 环境解决了这个问题,这个运行环境为多种面向对象语言提供了一个通用的语义集合。 这也是构建d n s m 的一个出发点。 1 2 2 软件静态分析 软件( s o f t w a r e ) 是计算机系统中与硬件( h a r d w a r e ) 相互依存的另一部分,它包 括程序( p r o g r a m ) 、相关数据( d a t a ) 及其说明文档( d o c u m e n t ) 嘲。软件开发是对问 题求解的过程,理解软件结构不仅仅可以通过阅读源代码,还需要借助更高层次的智力 模型以帮助理解软件结构。这个智力模型可以帮助理解,包括:软件组件、组件与组件 之间的相互依赖关系等。在面向对象的编程语言中,主要是组件的各种关系和关系类型, 以及设计工具、设计原则和设计模式。为了把软件结构信息反馈给软件工程师,也需要 借助特定的工具和技术,以帮助他们快速的构建智力模型。借助特定工具显示软件结构 信息,需要获取许多有关源代码的有效数据,这就要求对软件模型进行某些形式的静态 分析,进而借助特定工具显示整体系统架构。 一般来讲,软件分析方法可分为两大类,即动态方法和静态方法。动态方法的关键 是在被分析的程序运行过程中进行分析,发现程序中的错误。而静态分析的方法恰恰相 反,静态分析不同于动态分析,静态分析发生在编译时而不是执行代码时,它采用其它 的方法来对被分析的程序进行分析和检测。程序静态分析是白盒测试的主要手段,主要 用于度量程序复杂度,分析程序是否满足一定的规则或标准,分析模块的结构并发现结 构性错误。软件的静态分析包括对软件的分析( 通常是源代码) ,以获得涉及软件工程 师及特定工具的相关信息,允许他们对所编写的代码更好的理解和操作。静态分析按惯 例对已经分解的词法分析短语进行标记,解析标记为一个合法的解析树,然后通过语义 分析来理解解析树的意义。实践中,直接对程序进行分析检测的难度是相当大的,如果 先对程序建立模型,然后再进行分析检测,就会容易得多。换句话说,程序模型是对程 序信息的一种机器可理解的信息描述,模型是否能够精确表述程序信息对能否正确分析 程序有着至关重要的影响。 一2 一 东北大学硕士学位论文第一章绪论 由此可见,语义模型作为一种智力模型,将对分析软件的结构,获取软件结构的信 息提供了可能性。 1 2 3 语义建模 语言的语法是一种语言符号的表示规则嘲。对于给定源代码的软件,可以通过创建 语法树来解析软件结构,语法树表示了代码中所用符号的结构。虽然这些信息是有用的, 但对于软件工程师分析理解代码没有太大帮助,软件工程师不依据用来编写代码的符号 表思考问题。编程语言的语义定义了语言中符合句法的句子意义【5 1 ,在典型的面向对象 编程语言中,涉及的语义概念,包括:类、方法、字段、继承、实现和方法调用等等, 这些概念才是软件工程师所熟知而感兴趣的,并在编写面向对象程序时被广泛应用,也 是此语义模型涉及的主要语义概念。 例如,声明: f o oe 作为程序的一部分,这是符合某一编程语言规则的合法声明。依照句法,软件工程 师也许仅仅明白变量f 是f o o 类型变量,但不知道f 的范围或者执行什么类型的操作符 才有意义。同样,也不知道f o o 类型是如何定义的,而通过语义建模则可以明白f o o 类 型的定义方式。 1 3 本文的研究内容 ( 1 ) 围绕n e tf r a m e w o r k ,对现有n e t 语义概念进行了分析,总结,形成了语义概 念树。 ( 2 ) 以i t - k i d 概念关系模型为基础,利用知识集成的思想,结合面向对象理论,实 现对语义模型基本功能的分析与语义实体的分析,以及语义模型的基本模型构 建。 ( 3 ) 结合k i d - n e t 知识库、面向对象理论对语义实体的分析,设计了n e t 语义模型 的实体。 ( 4 ) 运用n e t 反射类库中的r e f l e c t 技术,实现了n e t 概念语义树的构造算法。 ( 5 ) 应用n e t 通用语义模型,实现了对j a v a 语言和c 撑语言的语义模型之间的语义 映射。 ( 6 ) 最终以v i s u a ls t u d i 0 2 0 0 5 为开发平台,结合s q ls e r v e r 数据库技术,运用n e t 语义模型的构建算法,实现了语义信息显示的管理程序界面。 一3 一 东北大学硕士学位论文第一章绪论 1 4 本文的研究方法 本小节结合当前国内外构建语义模型的方法,如面向对象构建语义模型方法、本体 构建语义模型方法、m d a 构建语义模型的方法等等,主要阐述了面向对象构建n e t 语 义模型的方法。 面向对象分析在当前需求分析方法中最具代表性n 引。目前,已经提出了很多成功的 方法,如j a e o b s o n 的o o s e ( o b j e c t - o r i e n t e ds o t t w a r ee n g i n e e r i n g ) 方法1 、r u m b a u g h 的o m t ( o b j e c tm o d e l i n gt e c h n o l o g y ) 方法n 羽、s h a l e r 和m e l l o r 的o o s a ( o b j e c t o r i e n t e d s y s t e ma n a l y s i s ) 方法n 3 1 以及c o a 和y o u r d o n 的o o a ( o b j e c t o r i e n t e da n a l y s i s ) 方法n 4 3 等。这些方法有一个共同点,就是它们都是基于单个对象分析的,这些方法都是以对象 和对象类为中心进行的,同时,还涉及其他方面的属性,如对象属性、对象间的关系、 对象间的消息传递、对象的用户界面等。概念是语义模型的基本组成部分,在面向对象 的软件开发中,语义模型中的语义概念包括:类、接口、方法、字段和其他实体,语义 关系包括:继承、实现、包含、调用等等n - 1 5 1 。 以下将对语义模型构建的面向对象方法的主要过程进行说明。其构建过程大体上可 以分为问题域模型化、数据映射关系建立和语义关系建立3 个阶段n 引。 ( 1 ) 问题域模型化 模型的优劣取决于实际的需要,模型总是面向问题域的,不存在最好的通用模型。 对于语义模型同样如此,在建模思想上,问题域模型化过程如下:对问题域内的对象 进行抽象形成类;用分类树的方法建立类之间的父子关系,父类是其所有子类共同属 性的概括。子类则从不同的角度对其父类加以细化;通过适度的细化过程形成一棵类 的结构树。类和类之间的关系所组成的类结构树构成了模型的主体结构。由于模型本身 的不确定性,也就是说不存在绝对的对象抽象方法,类本身也就变得不确定,对于类结 构树的生成,要求尽可能真实地反映问题域的情况。在生成了类的结构树并对各个类进 行属性描述之后,语义模型的主体架构基本已经搭建完成,但是语义模型的特点是为应 用提供语义一致的数据视图和模型本身良好的可伸缩性,所以建模的重点在于如何建立 数据语义关系和映射关系。 ( 2 ) 数据映射关系建立 映射关系包括数据映射关系和属性映射关系两部分,用于实现数据的透明访问和保 证模型本身良好的可扩展性。 数据映射关系 语义模型本身不涉及具体的数据库数据,在集成中语义模型只是作为媒介在应用与 数据之间建立连接,应用层和模型层之间可以采用通用的模型访问接口来实现,数据层 一4 一 东北大学硕士学位论文 第一章绪论 与模型层的连接则通过数据映射关系来实现。为了使得数据映射实体能够唯一标志一个 数据库中的字段,在语义模型中,数据映射实体必须具有表示数据库i p 、数据库名称、 数据库类型表的名称和字段名称等信息的属性。 为了使数据映射实体能够反映其所代表的数据库字段的特征,主要从数据模式方面 考虑。在数据模式方面,一个字段具有以下属性:主键、外建、可否空、数据类型、数 据长度和唯一性约束。 属性映射关系 在建立了类结构与数据映射关系之后,必须将它们结合起来才能实现模型的整体运 作,这就需要在模型内部通过某种方式将类的属性与数据映射实体建立连接。 ( 3 ) 语义关系的建立 关系是一事物通过其它事物表现出来的特征。关系用关联的事物及其相关特征( 属 性) 来表征。所谓语义关系,主要是指句法结构中的其它成分同主要成分一谓语之间的 施事、受事、与事、工具、处所、结果等关系。 关系可以有属性。事物是普遍联系的,在概念层次上需要刻画概念间关系的抽象概 念类型,即关系类型。关系表达了对象的外部静态特征。概念及其之间的关系形成概念 网络体系( 或语义网络) ,简称概念体系。概念之间的关系就是所谓的意义。 因此,语义关系在组成语义模型的各对象之间起到了至关重要的作用。用面向对象 的方法还有一个优点,增大对象的粒度是面向对象方法中用来降低软件复杂性的基本技 术,对象聚类是增大对象粒度的基本方法。可见面向对象方法能够清晰的反射出语义模 型的内部概念及语义关系。 1 5 本文的结构 第一章首先介绍本文的课题来源、研究背景、研究内容及方法,然后概括了本文的 主要工作并说明了本文的组织结构。 第二章介绍了n e t 框架语义资源,包括一些重要的语义知识工程资源,并进行了 特点总结。 第三章是本文的主要内容之一,基于i t - k i d 知识库概念关系模型对n e t 语义模型 的基本概念进行了分析、整理,以形成n e t 语义概念树。 第四章是本文的另一个主要内容,主要设计并实现了语义概念层次关系树的构建算 法;阐述了n e t 语义模型( d n s m ) 的构建思路与流程,并设计了语义信息显示的程 序界面。 第五章是论述了语义模型的主要应用,以n e t 通用语义模型为建模基础,实现了 对j a v a 语言和c 群语言的语义模型之间的语义映射。 一5 一 东北大学硕士学位论文 第一章绪论 第六章是对本文工作的总结以及对未来工作的一个展望。 一6 一 fij 东北大学硕士学位论文 第二章n e t 语义框架概述 第二章n e t 语义框架概述 2 1 基本概念 2 1 1 语义概述 在一个语义模型能够存储关于程序的语义信息之前,必须理解什么是语义,什么类 型的操作可以在程序语句中析取,以下首先给出语义的定义,其次描述了如何表示源代 码中的语义。“语义 规定了模型的性质n 7 1 。语义是对意义的研究,符号与符号所指对 象之间的关系,它是符号语言学的一个分支,研究语句的意义。符号语言学的其他两个 分支是符号关系学( 句法学) ( 研究符号的排列规则,即同一符号体系内部符号与符号 之间的形式关系) 和语用学( 研究人怎样运用某种语言符号去进行交际。即符号与符号 解释者的关系) 1 8 o 在讨论自然语言和计算机语言时,语法( 指计算机指令的排列规则) 和语义( 指令所具有的功能意义) 是不同的。语法学是研究语句的形式及其组成部分之 间的关系,参照计算机语言,语法是计算机语言语句的文法,语义是这些语句的意义。 在符号关系学中语句称之为符号。由此可见,应该注意到语法和语义也有着显著的区别: 语法是研究符号的关系学,语义是研究这些符号的意义。对于计算机语言来说,语法是 软件工程师所使用的被清晰定义的文法。文法是被用来创建一个抽象语法树,树的每个 节点表示一个句法结构。编译器使用这个抽象语法树来创建一个实际的程序,文法的每 个元素具有一个特定的语义,这些元素特定形式的组合形成程序的语义。 2 1 2 软件的语义 对语义有了清晰的认知以后,要熟悉软件的结构,还必须对软件的语义进行分析, 现实中,理解一个软件新产品是非常困难的,通常仅在新产品的文档中描述操作行为, 然而文档时常是不完整和更新不及时的,这就需要一些工具,如:调试器、度量器、程 序可视化技术来帮助理解程序。这些工具给工程人员反馈了软件的信息,在一个高抽象 层次上直接地对从代码析取的信息进行了表示。应用程序的相关数据集,可以运用静态 或动态分析来执行获取,也可以绑定这两类技术以获取更加具体的数据。在程序静态分 析时,唯一的是不需要考虑是否实际执行应用程序,静态分析通常是对软件源代码的分 析,但对于其他表示形式如:对象代码或者字节码也可以使用静态分析。可见静态分析 适用于获取结构性信息,如方法等源代码元素。但是,由于多态性和动态绑定特性,对 于类进行分析则是困难的,运用静态分析法也难以获取有关引用对象的信息,同样条件 分支和迭代信息也仅仅可以在运行时获取,因此,在不执行应用程序的情况下,实际的 一7 一 东北大学硕士学位论文第二章n e t 语义框架概述 控制流信息、执行指令顺序的信息也是难以析取的,程序在许多情况下有多种可能执行 路径,由于需要众多关于源代码结构、类内部方法表达式解析树的有效数据,程序静态 分析具有一定的局限性。程序动态分析适用于程序执行路径的跟踪,以获取关于软件的 信息,这意味着在程序运行时,可以通过一个单一的程序进行分析。运行时获取的信息 提供了程序的实际执行情况:方法调用、对象类型,也提供了实时信息、对象实例信息 和实值的操作信息,这些都是不能通过静态程序分析来获取的。无论如何,针对用户特 定输入的输出信息,可能在一个不同的程序执行环境中发生改变,实际上并不是全部的 控制流都被执行,也存在信息丢失现象。静态和动态分析技术可以绑定在一起使用,以 至于可以运用静态分析技术预先获取全部可能的路径,运用动态分析技术可以分析运行 时操作行为n 钔。例如:静态分析被用来获取全部的软件控制流路径,以至于在程序运行 时可以用来产生不同的输入,进而,在运行时动态分析被用来恢复运用静态分析所获取 路径信息的信息。 可以辨别两种模型:结构化模型和行为模型。在结构化模型中,软件组织被描述为 类似于组件之间的继承和关联关系。行为模型则描述了软件中的元素是如何进行操作以 实现特定的功能,通常静态分析被用来获取结构化模型信息,而动态分析则用来收集执 行期间的行为模型信息。针对本文中的系统模型,主要尝试运用静态分析技术代替动态 分析技术,以获取既包含结构化模型又包含行为模型的软件模型信息。析取一个结构化 模型信息比析取行为模型信息较为容易,但必须给定代码部分的语义,以便不需要运用 动态分析技术,这就意味着必须着眼于语句层次( 方法内部的指令) 来析取语句的意义, 绑定单个语句行为和控制流以获取整个方法所表示的意义。 2 1 3 语言的语义 语言的“语义”一词,是用来描述编程语言的意义。t u k e ra n dn o o n a n ,通过阐述 “编程语言“语义”是指无论其运行于何种运行平台,具有类似操作的任何一种编程语 言的意义 ,这对编程语言的语义做了更深层的约束定义呦1 。简而言之,本文中“语义 不能与某一领域中的语义相混淆。众多面向对象的编程语言的语义包含一些重要的概 念,不同编程语言可能共享一些概念和关系。如:j a v a 和e i f f e l 共享的关系“任一对象 是唯一一个类的直接实例 ,不同语言具有的不同语法结构可能表示同样的语义概念。 一般情况下,谈一个编程语言的语义,有两种不同的含义。一是静态语义,所谓静态语 义就是对表达式的类型的基于规则的推导和检查,也就是语言的类型系统。比如说i n tx = ”h e l l o ”;这在很多严谨的语言中都是不合法的。之所以把静态语义和语法区分开,是因 为语法是上下文无关的,是可以用b n f 定义,用一个p a r s e r 解析的。而类型系统是上下 文相关的,需要构建复杂的类型推导系统。衡量个静态语义的标准一般是:一要安全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技成果转化合同
- rt考试题及答案
- pkpm考试题及答案
- 电缆行业知识培训课件
- 电线家装知识培训课件
- 电站工作知识培训课件
- 电石炉净化培训知识课件
- 委托开发合同(编号:2)
- KLHDC2-IN-1-生命科学试剂-MCE
- 高温防疫安全知识培训课件
- 2025年度互联网行业市场调研服务协议4篇
- 小学音乐新课标考试题库800题(含答案)
- 《付出总有收获》课件
- 方剂学知到智慧树章节测试课后答案2024年秋安徽中医药大学
- 《蚕丝微观结构》课件
- 《公路养护安全培训》课件
- 《Linux培训基础》课件
- 新反诈知识考试题库200题(含答案)
- 2022年福建省特种设备作业安全管理人员考试题库(含真题和典型题)
- 二次供水泵房日常巡查记录表
- 2024年可行性研究报告投资估算及财务分析全套计算表格(含附表-带只更改标红部分-操作简单)
评论
0/150
提交评论