一种面向粒的编程集成开发平台的制作方法

文档序号:6602359阅读:134来源:国知局
专利名称:一种面向粒的编程集成开发平台的制作方法
技术领域
本发明属于计算机应用领域,涉及一种编程集成开发平台,尤其是一种面向粒的 编程集成开发平台。
背景技术
过程语言如FortraruPascal和C等可以用来定义直线执行的程序,程序开始于某一点,一步一步执行至终点。这种模式中,设计理念体现在相继执行的程序单元中。直线的 模块划分体现在函数调用中,函数调用允许程序执行从主程序跳转到子程序,又跳回主程 序。子程序的使用使程序更有效的实现一般的程序。但是,随着程序规模的不断增大,程序 越来越复杂,过程式语言也变得很复杂并且很难维护。面向对象方法的出现把系统状态变成一些单独的对象,在这些对象中可以私有化 系统状态,并且通过公有的函数控制这些状态,程序的功能分解为各个功能模块。高级语言 通过结构化抽象等方法模块化程序,面向对象语言通过对象和类等概念,这又进一步通过 集合一个实体的行为和隐藏其内部实现提高模块的内聚、降低模块间的藕合。面向对象相对于传统设计语言和软件设计方法有以下优越性1)符合人类认识 和分析事物的思维习惯;2)代码是可高度重用的,可维护的;3)实现了功能模块的组件化; 4)代码是共享、可继承的,减少了软件设计中的代码量等。但是,面向对象编程(OOP)也不可能是完美无缺的,近些年出现了很多针对OOP的 不足提出新的编程思想和相应的实现。在面向对象中,当一些因素的考虑可能会影响了一些系统的模块(如功能模块) 的实现,极易出现不适合现象。这种不适合现象不是系统设计的不足导致的,而是复杂系统 中的一个自然地和不可避免的现象。例如,程序的运行与其支撑环境是密不可分的。计算机 程序是给计算机提供的指令,程序产生动作,计算机负责指令执行。因此,一个有意义的程 序除了代码之外还默认隐含在什么计算机上运行。程序一旦运行在其他机器上,也许会产 生预料不到的结果甚至不能够正常运行下去,由此引出了程序与机器之间适合性问题,这 些考虑的因素就是“上下文变量”。程序所面临的上下文常常改变,比如程序所面临的输入、 系统可用内存、并行系统中的处理机个数等。从某种意义上讲,传统编程机制隐式地蕴含了 程序与上下文之间的关系,不过其潜在地假定程序与上下文之间的关系是固定不变的。然 而,易变的上下文使得编程时假定的程序与上下文之间的匹配关系常常被破坏。假设一个 类拥有无返回类型方法m。对于不同的情况,方法m可能需要进行不同的行为演化来适应 新环境。传统的编程模型可能试图使用继承关系,通过定义该类的子类来对行为的多个候 选实现进行分组,解决这个问题。然而,虽然继承关系可通过在子类中重载基类方法的方 式,实现该方法的行为版本,但它不足以用来为某一个对象的某个方法编写多个候选行为 实现,换句话说,静态继承关系不能支持对象行为的动态变化。当然也可考虑通过使用不同 的方法名称来代表每个实现,或者通过方法的不同参数来指示哪个实现被执行。但是这要 求客户端,也就是将要调用这个方法的对象,对实现的细节了如指掌。这样就破坏了类的封装性。GOP (Granule-Oriented Programming)思想就是在观察程序不适合性现象的基础 上提出的。GOP是使用粒和上下文扩展了面向对象编程语言。这样的构造是独立于编程模 块的,可以将对上下文的考虑外部化和限定化,而不是将它们展开在重要的编程模块中。当 系统动态变化,上下文也是在运行中随机的变化。现阶段的监控系统不能处理好对适合当 前上下文需要实行功能模块的替换。而粒和上下文的结合,很好解决了适合性的问题。目前的各种编程语言都没有关注程序适合性问题,GOP面向粒的程序设计中,用粒 来指代那些适合性可度量的、可以被动态替换的构成程序的单位。如果程序出现了不适合 性,这些不适合性被局部化到不适合的粒上面,从而用更适合的粒进行替换,以达到改善程 序适合性的目标。面向粒的编程集成开发平台提供了对GOP语言的编码、编译、调试功能;将程序的 信息由独立的类-粒层次结构构造器进行管理,依靠面向粒的编程集成开发平台我们可以 很容易定义粒,并将类代码与粒代码透明的融合,同时类-粒之间的自动定位功能和丰富 的信息显示功能也使得代码编辑、故障确定和新粒的编写更为方便。

发明内容
本发明的目的在于克服上述现有技术中的缺点,提供一种面向粒的编程集成开发 平台,该集成开发平台提供了对GOP语言的编码、编译、调试功能;将程序的信息由独立的 类-粒层次结构构造器进行管理,依靠面向粒的编程集成开发平台我们可以很容易定义 粒,并将类代码与粒代码透明地融合,同时类-粒之间的自动定位功能和丰富的信息显示 功能也使得代码编辑、故障确定和新粒的编写更为方便。本发明的目的是通过以下技术方案来解决的这种面向粒的编程集成开发平台分 为编辑器、编译器、虚拟机、调试器和类-粒层次结构构造器;所述编辑器、编译器和调试器 分别与类-粒层次结构构造器相互通信,所述调试器还分别与编辑器和虚拟机连接;(1)编 辑器所述的编辑器由类编辑模块、粒编辑模块、类信息模块、粒信息模块、关系信息模块和 窗口切换模块组成;类编辑模块包括一个类编辑窗口,粒编辑模块包括一个粒编辑窗口,类 信息模块包括一个类信息窗口,粒信息模块包括一个粒信息窗口 ;所述类编辑模块用于修 改编辑对象类代码;所述粒编辑模块用于修改编辑对象粒代码;类信息模块显示类信息, 所述类信息包括类名和类所在的文件;粒信息模块显示粒信息,所述粒信息包括粒名和粒 所在的文件;所述关系信息模块包括树型显示模块、代码显示模块和图形显示模块;树型 显示模块包括一个关系信息树型显示窗口 ;代码显示模块包括一个关系信息代码显示窗 口 ;图形显示模块包括一个关系信息图形显示窗口 ;树型显示模块显示类粒关系信息和层 次结构构成的树型结构图;代码显示模块显示所有类和粒的具体的代码;图形显示模块用 图形直观显示粒和它所依附的类之间的关系;所述窗口切换模块分别与类编辑模块、粒编 辑模块、类信息模块、粒信息模块、关系信息模块连接,实现类编辑窗口、粒编辑窗口、粒信 息窗口、粒信息窗口、关系信息树型显示窗口、关系信息代码显示窗口和关系信息图形显示 窗口的切换;所述类是OOP标准类;所述粒是GOP领域的基本模块,粒由粒名、类名、粒体 和影子类构成,其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒体用来指定粒 的期望环境,粒体可以定义自身的成员并且粒体中必须包含一个适合性判断方法,适合性判断方法返回真或假;所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效;(2) 编译器GOP的编译器分为前端模块和后端模块,前端模块又包括词法分析器、语法分析器 和静态语义分析器,静态语义分析器又具体包括名字分析模块、类型检查模块、访问控制模 块、确定赋值模块;词法分析器根据GOP的构词规则识别程序中的单词;语法分析器对满足 GOP语法规则的程序构造一棵抽象语法树AST ;静态语义分析器对抽象语法树上的节点以 面向对象层次结构建模,在建模的结果之上,通过属性文法的计算过程按照GOP的语义规 则完成语义的分析过程;后端模块生成程序的类字节码文件、粒体字节码文件、影子类字节 码文件、种子程序_个体程序配置文件以及该个体程序对应的粒树;(3)虚拟机GOP的虚拟 机系统包括装载子系统、运行数据区和执行引擎;装载子系统包含类装载器、粒装载器、影 子类装载器和种子程序_个体程序配置文件装载器;运行数据区包括方法区、堆、栈、PC寄 存器、本地方法栈、上下文变量存储区和种子程序_个体程序存储区;执行引擎分为粒跨度 判断模块、适合性监测模块、粒替换模块、上下文管理模块和粒库管理模块;(4)调试器所 述调试器包括跟踪模块、粒指示模块、调试器窗口显示模块和个体程序演化模块;跟踪模块 用于跟踪虚拟机运行的源代码;粒指示模块用于显示跟踪模块所跟踪的方法所属的粒;调 试器窗口显示模块显示虚拟机当前运行的数据域和方法信息;个体程序演化模块可以显示 运行出错前的个体程序和这个个体程序的上下文信息;同时可以显示相似粒替换前后的个 体程序和这个个体程序的上下文信息;(5)类-粒层次结构构造器所述的类_粒层次结构 构造器包括类信息处理模块、粒信息处理模块和关系信息处理模块;所述类信息处理模块 抽取GOP源代码中所有类信息及其层次结构,并将类信息及其层次结构提供给其他模块; 所述粒信息处理模块抽取GOP源代码中所有粒信息及其层次结构,并将粒信息及其层次结 构提供给其他模块;所述关系信息处理模块抽取GOP源代码中类和粒之间的关系信息,并 将类和粒之间的关系信息提供给其他模块。上述编辑器的类编辑模块和粒编辑模块分别与类_粒层次结构构造器的类信息 处理模块、粒信息处理模块和关系信息处理模块连接,类-粒层次结构构造器从类编辑模 块和粒编辑模块获取GOP源代码,所述类信息处理模块抽取GOP源代码中所有类信息及其 层次结构;所述粒信息处理模块抽取GOP源代码中所有粒信息及其层次结构;所述关系信 息处理模块抽取GOP源代码中类和粒之间的关系信息。上述的编辑器的类信息模块与类_粒层次结构构造器的类信息处理模块连接,编 辑器的类信息模块从类_粒层次结构构造器的类信息处理模块获取所有类信息及其层次 结构。W014]上述的编辑器的粒信息模块与类-粒层次结构构造器的粒信息处理模块连 接,编辑器的粒信息模块从类_粒层次结构构造器的粒信息处理模块获取所有粒信息及其 层次结构。上述的编辑器的关系信息模块与类_粒层次结构构造器的关系信息处理模块连 接,编辑器的关系信息显示模块从类-粒层次结构构造器的关系信息处理模块获取类和粒 之间的关系信息。上述的编辑器的窗口切换模块与类_粒层次结构构造器的类信息处理模块、粒信 息处理模块和关系信息处理模块连接,实现窗口切换时被切换前后窗口内容的信息同步。上述的调试器的跟踪模块、粒指示模块和调试器窗口显示模块分别与类_粒层次结构构造器的类信息处理模块、粒信息处理模块连接;从粒层次结构构造器的类信息处理模块获取所有类信息及其层次结构,从粒层次结构构造器的粒信息处理模块获取所有粒信 息及其层次结构,为调试工作提供指示信息。上述的调试器的跟踪模块、粒指示模块、调试器窗口显示模块和个体程序演化模 块分别与编辑器和虚拟机连接;调试器启动编辑器实现对代码的修改,调试器从虚拟机获 取当前运行的状态信息。本发明具有以下有益效果1、面向粒的编程集成开发平台提供了对GOP语言的编 码、编译、调试功能。由于GOP引入了粒这种新的程序构成基本单元,同时粒中又引入了上 下文这个新元素,定义了粒体和影子类这些新结构,因而GOP程序的结构更为复杂,相互关 系信息更多。面向粒的编程集成开发平台将程序的信息由独立的类-粒层次结构构造器进 行管理,使得程序信息的管理和使用更为容易,为编辑和调试阶段提供更为丰富的辅助信 肩、ο2、面向粒的编程集成开发平台对类和粒的编辑和调试独立并相互透明,使得类代 码和粒代码的编辑和调试更为方便,同时它又提供了自动定位和关联信息显示功能,自动 定位当前粒依附的根类,和当前类包括的粒,并且提供当前程序的类_粒层次结构图,使得 对代码的修改非常容易。3、面向粒的编程集成开发平台的调试器除了获取传统集成开发平台需要获取的 当前程序运行信息,还获取当前程序的上下文信息和当前程序的类-粒层次结构图,帮助 用户迅速定位故障位置。或者辅助编辑器进行新的粒的编写。


图1为本发明的面向粒的编程集成开发平台各个部件要素图;图2为本发明创建 GOP软件项目的流程图;图3为本发明的类编辑窗口和粒信息窗口双重显示模式图;图4为 本发明的关系信息树型显示窗口图;图5为本发明的关系信息代码显示窗口图;图6为本 发明的粒编辑窗口和类信息窗口双重显示模式图;图7为本发明的关系信息图形显示窗口 图;图8为本发明的调试器窗口显示模块图;图9为本发明的个体程序演化模块图;图10为 本发明的程序调试流程图。
具体实施例方式本发明是帮助开发基于面向粒编程技术的软件程序的开发平台,提供的集成开发 平台能使用户快速、方便的创建和调试面向粒程序。该项发明的集成开发平台具体实现是 通过计算机软件来完成的,可以通过非破坏性的存储介质上装载,或从一个或多个远程站 点上下载安装,或从远程计算机上进行本地安装。下面结合附图对本发明做进一步详细描述参见图1 面向粒的编程集成开发平 台200由编辑器210、编译器220、虚拟机230、调试器240和类-粒层次结构构造器250组 成;所述编辑器210、编译器220和调试器240分别与类-粒层次结构构造器250相互通信, 所述调试器240还分别与编辑器220和虚拟机230连接;参见图2 它描述了在面向粒的编 程集成开发平台下创建GOP软件项目的流程图;在步骤310通过编辑器210创建或修改类 源代码201和粒源代码202 ;在步骤320通过类-粒层次结构构造器250,利用编辑后的类源代码201和粒源代码202抽取程序的类信息,粒信息和类_粒关系信息;类_粒层次结构构造器250随着类信息和粒信息的创建更新而随之创建和更新。在步骤330通过编译器220 对编辑后的类源代码201和粒源代码202进行编译,生成字节码文件,确保所有的粒信息都 能被正确的处理;在步骤340通过虚拟机230将编译后的程序字节码文件加载运行;在步 骤350监测程序在虚拟机中的运行,如果没有在步骤350发现错误,开发过程在步骤370完 成。如果发现错误,在步骤360使用调试器240来定位错误,编辑器210再次启用修正编辑 类源代码201和粒源代码202。这个循环一直持续到程序无误,然后在步370结束。1编辑器所述的编辑器210由类编辑模块211、粒编辑模块212、类信息模块213、 粒信息模块214、关系信息模块215和窗口切换模块216组成;类编辑模块211包括一个 类编辑窗口,粒编辑模块212包括一个粒编辑窗口,类信息模块213包括一个类信息窗口, 粒信息模块214包括一个粒信息窗口 ;所述类编辑模块211用于修改编辑对象类代码;粒 编辑模块212用于修改编辑对象粒代码;类信息模块213显示类信息,类信息包括类名和 类所在的文件;粒信息模块214显示粒信息,粒信息包括粒名和粒所在的文件;关系信息模 块215包括树型显示模块、代码显示模块和图形显示模块;树型显示模块包括一个关系信 息树型显示窗口 ;代码显示模块包括一个关系信息代码显示窗口 ;图形显示模块包括一个 关系信息图形显示窗口 ;树型显示模块显示类粒关系信息和层次结构构成的树型结构图; 代码显示模块显示所有类和粒的具体的代码;图形显示模块用图形直观显示粒和它所依附 的类之间的关系;窗口切换模块216分别与类编辑模块211、粒编辑模块212、类信息模块 213、粒信息模块214、关系信息模块215连接,实现类编辑窗口、粒编辑窗口、粒信息窗口、 粒信息窗口、关系信息树型显示窗口、关系信息代码显示窗口和关系信息图形显示窗口的 切换。所述类是OOP标准类;所述粒是GOP领域的基本模块,粒由粒名、类名、粒体和影子 类构成,其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒体用来指定粒的期望 环境,粒体可以定义自身的成员并且粒体中必须包含一个适合性判断方法,适合性判断方 法返回真或假;所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上 下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效。在本发明面向粒的集成开发平台中支持单一显示模式和双重显示模式,单一显示 模式提供单一窗口显示,用户可以在类编辑模块211的类编辑窗口和粒信息模块214的粒 信息窗口之间,或粒编辑模块212的粒编辑窗口和类信息模块213的类信息窗口之间通过 窗口切换模块216来切换窗口 ;在双重显示模式中,用户可以使在类编辑模块211的类编辑 窗口和粒信息模块214的粒信息窗口,或粒编辑模块212的粒编辑窗口和类信息模块213 的类信息窗口同时显示。在本发明中说明书附图中的各图都以双重显示模式为例来显示该 项发明的特性。参见图3 类编辑窗口和粒信息窗口同时显示,粒列表在粒信息模块214的粒信息 窗口显示,粒列表用来显示有关粒的信息;类编辑模块211的类编辑窗口中的代码是粒依 附的根类代码。在类编辑窗口中,用户可以修改编辑类源代码。一个光标312指向下一个 输入位置。粒信息窗口是一个粒列表,列表中的每一行包括粒名称323和粒所在的文件名 称324。用户能够选择Jump按钮313,Jump按钮313能够启动关系信息模块215的代码显 示模块,将所有的粒代码和它们所依附的根类代码显示在关系信息代码显示窗口中,关系信息代码显示窗口如图5所示;用户能够选择类-粒信息按钮314,类-粒信息按钮314能 够启动关系信息模块215的树形显示模块,将类粒关系信息和层次结构构成的树型结构图 显示在关系信息树形显示窗口中,关系信息树形显示窗口如图4所示。根据本发明,类-粒的层次结构以图形的方式显示在图4中的窗口 410中,这使得 用户能够更加快速了解类与粒之间的关系。参见图4 在窗口 410中,类用椭圆315表示而 粒用矩形316表示。如果一个粒依附于某一类,那么就有一个箭头从矩形316出发指向椭 圆315。当用户从窗口 410点选其中的一个粒名称,相应的粒名称以及粒的文件地址将会在 粒信息窗口 420中显示。在窗口 420中,粒的信息的被显示,显示的内容包括粒名和粒所在 的文件。用户能够选择Jump按钮313,Jump按钮313能够启动关系信息模块215的代码显 示模块,将所有的粒代码和它们所依附的根类代码显示在关系信息代码显示窗口中,关系 信息代码显示窗口如图5所示。
根据本发明,用户通过在图5中的窗口 510看到在图3或者图4中所显示的类和 粒的具体代码。参见图5 在窗口 510的最左边显示的是当前程序的类的源代码,而右边依 次显示的与这个程序的类相关联的粒的源代码。参见图6 粒编辑窗口和类信息窗口同时显示,用户可以在粒编辑窗口模块212的 粒编辑窗口中编写新粒的代码和修改已有的粒的代码,类信息窗口模块213的类信息窗口 是一个类列表窗口,它显示粒编辑窗口模块212的粒编辑窗口中的粒所依附的类的信息。 为了选择粒编辑窗口模块212的粒编辑窗口中的一个粒,用户可以通过移动光标312到粒 编辑窗口模块212的粒编辑窗口中某一粒的位置上然后反键点击它。一旦一个粒被选择, 类信息窗口模块213的类信息窗口的显示内容将被更新,这时它将仅仅显示这个被选中的 粒所依附的类的信息。参见图7 它是一个关系信息图形显示窗口图,在窗口 710中,粒和类之间的关系 以图形的方式被显示,用户通过显示的图形能够快速地了解粒和它所依附的类之间的关 系。一个例子显示在图7中,类720用椭圆形表示,粒730用矩形表示。表示类的图形与其 它三个表示粒的图形的重叠显示这三个粒是依附于这个类。此外,粒和类还可以用其他方 式表示,如用其它不同的图形,或者具有不同颜色的同一图形,或者另一些能够区别二者的 方式。另一方面,粒和类之间的关系除了用叠加的方式表示外,还可以用连接不同图形的连 接符表示。2编译器粒对类的作用通过面向粒的编译器220实现。GOP编译器220以编辑后 的类源代码201和粒源代码201作为输入,对类和粒分别产生二进制字节码文件作为输出, 提供给虚拟机230的运行,编译器220同时还与调试器连接。GOP的编译器220分为前端模块和后端模块,前端模块又包括词法分析器、语法分 析器和静态语义分析器,静态语义分析器又具体包括名字分析模块、类型检查模块、访问控 制模块、确定赋值模块;词法分析器根据GOP的构词规则识别程序中的单词;语法分析器对 满足GOP语法规则的程序构造一棵抽象语法树AST ;静态语义分析器对抽象语法树上的节 点以面向对象层次结构建模,在建模的结果之上,通过属性文法的计算过程按照GOP的语 义规则完成语义的分析过程;后端模块生成程序的类字节码文件、粒体字节码文件、影子类 字节码文件、种子程序_个体程序配置文件以及该个体程序对应的粒树。所述种子程序是一个不与任何上下文相关联且不包含任何粒的程序,所述个体程序是一个与已有上下文相关联的程序,个体程序由种子程序和依附于种子程序的粒组成;所述的上下文是指支持程序的所有非功能性因素的综合;种子程序-个体程序配置文件记 录种子程序和个体程序的类层次结构以及各类依附的粒的XML文件。所述的粒树反映个体 程序所包含的粒和粒的层次的XML文件。3虚拟机GOP的虚拟机230系统包括装载子系统、运行数据区和执行引擎;装载 子系统包含类装载器、粒体装载器、影子类装载器和种子-个体配置文件装载器;本发明的 类装载器与普通虚拟机中类装载器一致,粒体装载器和影子类装载器的设计与类装载器类 似,只是其实现将粒体和影子类装载进虚拟机;种子程序_个体程序配置文件装载器是用 来加载GOP编译器生成的描述程序粒层次结构的XML配置文件。运行数据区包括方法区、堆、栈、PC寄存器、本地方法栈、上下文变量存储区和种 子程序-个体程序存储区;上下文变量存储区用于存储影响程序的上下文信息;种子程 序_个体程序存储区用于存储加载进来的种子程序_个体程序配置文件。执行引擎分为粒跨度判断模块、适合性监测模块、粒替换模块、上下文管理模块和 粒库管理模块;粒跨度判断模块负责判断粒调用的粒范围跨度判断,适合性监测模块用于 监测程序的适合性,粒替换模块用于查找相似粒,对程序做出替换及程序的演化过程,上下 文管理模块提供了程序中粒所关心的上下文变量的取值及更新通知,上下文的变化,及时 反馈到程序中去,促使程序及时做出适合性判断,粒库管理模块负责相似粒的查找,及程序 演化之后产生的新的个体的存储到数据库中去,扩充粒库,对于程序的更好运行,增添了更 好的保障。4调试器所述调试器240包括跟踪模块241、粒指示模块242、调试器窗口显示模 块243和个体程序演化模块244 ;跟踪模块241用于跟踪虚拟机运行的源代码;粒指示模块 242用于显示跟踪模块所跟踪的方法所属的粒;调试器窗口显示模块243显示虚拟机当前 运行的数据域和方法信息;个体程序演化模块244可以显示运行出错前的个体程序和这个 个体程序的上下文信息,同时可以显示相似粒替换前后的个体程序和这个个体程序的上下 3Cfn 息。参见图8 跟踪模块241可以跟踪一个方法执行,主窗口 810显示类的源代码,在 类_粒层次结构构造器250中,调试器240首先接受类信息处理模块251的类信息和粒信 息处理模块252的粒信息,然后在源代码相应的位置显示粒指示器820,指示器820表示被 跟踪方法的代码来源的粒。当用户使用鼠标或其他指针设备反键点击主窗口 810时,调试器240将弹出一个 粒列表窗口 830,该窗口显示的粒都和主窗口 810中的代码相关联,这个粒列表窗口包含一 个粒名831,一个粒方法或者粒变量832和一个粒所在的文件名833 ;此外,当用户可以通过 鼠标或者其他指针设备点击在粒窗口 830中的某一粒名时,此粒的源代码将显示在被弹出 的粒代码窗口 840中。根据本发明,一个粒指示器仅仅与一个粒相关联,调试器240只是直接地弹出粒 代码窗口而不是显示一个只包含单个粒的粒列表窗口。如果用户想要看到调试前的个体程序和这个个体程序的上下文信息,或想要看到 相似粒替换前后的个体程序和这个个体程序的上下文信息,用户只需要点击图8中的Jump 按钮313即可,Jump按钮313启动个体程序演化模块图,能够显示调试前的个体程序和新编写的个体程序结构示意图,或者当前运行个体程序和它上一次替换时的个体程序结构示 意图。参见图9:在窗口 910和窗口 920中的椭圆形表示类,矩形表示粒,圆角矩形表示 不适合当前环境的粒;在窗口 910中,显示的是当前个体程序上一次发生替换时的结构,窗 口 920是当前运行个体程序的结构图,在窗口 930和窗口 940分别显示窗口 910和窗口 920 中的个体程序的代码和上下文信息。参见图10 用户可以步骤1010使用调试器240调试一个GOP程序。在调试之前,这个面向粒子的程序必须载入编译器220。程序被装载之后,在步骤1020通过来源于类-粒 层次结构构造器250的信息判断是否有多个粒存在。如果有多个粒存在,在步骤1030将显 示一个粒列表窗口 830。这个窗口列出所有的与这个载入的程序相关的粒。一旦用户可以 在步骤1040选择粒列表窗口 830中的一个粒,那么粒代码窗口 840将被弹出显示此粒的源 代码202。如果在步骤1020只有一个粒存在,那么调试器240直接跳到步骤1050显示粒代 码窗口 840。所述的调试器240的跟踪模块241、粒指示模块242、调试器窗口显示模块243和 个体程序演化模块244分别与编辑器220和虚拟机230连接;调试器240启动编辑器220 实现对代码的修改,调试器240从虚拟机230获取当前运行的状态信息。5类-粒层次结构构造器所述的类_粒层次结构构造器250包括类信息处理模块 251、粒信息处理模块252和关系信息处理模块253 ;所述类信息处理模块251抽取GOP源 代码中所有类信息及其层次结构,并将类信息及其层次结构提供给其他模块;所述粒信息 处理模块252抽取GOP源代码中所有粒信息及其层次结构,并将粒信息及其层次结构提供 给其他模块;所述关系信息处理模块253抽取GOP源代码中类和粒之间的关系信息,并将类 和粒之间的关系信息提供给其他模块。所述编辑器210的类编辑模块211和粒编辑模块212分别与类_粒层次结构构造 器250的类信息处理模块251、粒信息处理模块252和关系信息处理模块253连接,类-粒 层次结构构造器250从类编辑模块211和粒编辑模块212获取GOP源代码。所述的编辑器210的类信息模块213与类-粒层次结构构造器250的类信息处理 模块251连接,编辑器210的类信息模块213从类-粒层次结构构造器250的类信息处理 模块251获取所有类信息及其层次结构。所述的编辑器210的粒信息模块214与类-粒层次结构构造器250的粒信息处理 模块252连接,编辑器210的粒信息模块214从类-粒层次结构构造器250的粒信息处理 模块252获取所有粒信息及其层次结构。所述的编辑器210的关系信息模块215与类-粒层次结构构造器250的关系信息 处理模块253连接,编辑器210的关系信息模块215从类-粒层次结构构造器250的关系 信息处理模块253获取类和粒之间的关系信息。所述的编辑器210的窗口切换模块216与类-粒层次结构构造器250的类信息处 理模块251、粒信息处理模块252和关系信息处理模块253连接,实现窗口切换时被切换前 后窗口内容的信息同步。所述的调试器240的跟踪模块241、粒指示模块242和调试器窗口显示模块243分 别与类_粒层次结构构造器250的类信息处理模块251、粒信息处理模块252连接;从粒层次结构构造器250的类信息处理模块251获取所有类信息及其层次结构,从粒层次结构构 造器250的粒信息处理模块252获取所有粒信息及其层次结构,为调试工作提供指示信息。
权利要求
一种面向粒的编程集成开发平台,其特征在于所述面向粒的编程集成开发平台分为编辑器、编译器、虚拟机、调试器和类-粒层次结构构造器;所述编辑器、编译器和调试器分别与类-粒层次结构构造器相互通信,所述调试器还分别与编辑器和虚拟机连接;(1)编辑器所述的编辑器由类编辑模块、粒编辑模块、类信息模块、粒信息模块、关系信息模块和窗口切换模块组成;类编辑模块包括一个类编辑窗口,粒编辑模块包括一个粒编辑窗口,类信息模块包括一个类信息窗口,粒信息模块包括一个粒信息窗口;所述类编辑模块用于修改编辑对象类代码;所述粒编辑模块用于修改编辑对象粒代码;类信息模块显示类信息,所述类信息包括类名和类所在的文件;粒信息模块显示粒信息,所述粒信息包括粒名和粒所在的文件;所述关系信息模块包括树型显示模块、代码显示模块和图形显示模块;树型显示模块包括一个关系信息树型显示窗口;代码显示模块包括一个关系信息代码显示窗口;图形显示模块包括一个关系信息图形显示窗口;树型显示模块显示类粒关系信息和层次结构构成的树型结构图;代码显示模块显示所有类和粒的具体的代码;图形显示模块用图形直观显示粒和它所依附的类之间的关系;所述窗口切换模块分别与类编辑模块、粒编辑模块、类信息模块、粒信息模块、关系信息模块连接,实现类编辑窗口、粒编辑窗口、类信息窗口、粒信息窗口、关系信息树型显示窗口、关系信息代码显示窗口和关系信息图形显示窗口的切换;所述类是OOP标准类;所述粒是GOP领域的基本模块,粒由粒名、类名、粒体和影子类构成,其中类名用来表明该粒所依附的类,将该类称为粒的根类,粒体用来指定粒的期望环境,粒体可以定义自身的成员并且粒体中必须包含一个适合性判断方法,适合性判断方法返回真或假;所述影子类是对种子程序中与该影子类相同名字的类的改进,是在不同上下文下类行为的不同体现,并且只是在相应粒体适合性判断方法为真后才有效;(2)编译器GOP的编译器分为前端模块和后端模块,前端模块又包括词法分析器、语法分析器和静态语义分析器,静态语义分析器又具体包括名字分析模块、类型检查模块、访问控制模块、确定赋值模块;词法分析器根据GOP的构词规则识别程序中的单词;语法分析器对满足GOP语法规则的程序构造一棵抽象语法树AST;静态语义分析器对抽象语法树上的节点以面向对象层次结构建模,在建模的结果之上,通过属性文法的计算过程按照GOP的语义规则完成语义的分析过程;后端模块生成程序的类字节码文件、粒体字节码文件、影子类字节码文件、种子程序-个体程序配置文件以及该个体程序对应的粒树;(3)虚拟机GOP的虚拟机系统包括装载子系统、运行数据区和执行引擎;装载子系统包含类装载器、粒装载器、影子类装载器和种子程序-个体程序配置文件装载器;运行数据区包括方法区、堆、栈、PC寄存器、本地方法栈、上下文变量存储区和种子程序-个体程序存储区;执行引擎分为粒跨度判断模块、适合性监测模块、粒替换模块、上下文管理模块和粒库管理模块;(4)调试器所述调试器包括跟踪模块、粒指示模块、调试器窗口显示模块和个体程序演化模块;跟踪模块用于跟踪虚拟机运行的源代码;粒指示模块用于显示跟踪模块所跟踪的方法所属的粒;调试器窗口显示模块显示虚拟机当前运行的数据域和方法信息;个体程序演化模块可以显示运行出错前的个体程序和这个个体程序的上下文信息;同时可以显示相似粒替换前后的个体程序和这个个体程序的上下文信息;(5)类-粒层次结构构造器所述的类-粒层次结构构造器包括类信息处理模块、粒信息处理模块和关系信息处理模块;所述类信息处理模块抽取GOP源代码中所有类信息及其层次结构,并将类信息及其层次结构提供给其他模块;所述粒信息处理模块抽取GOP源代码中所有粒信息及其层次结构,并将粒信息及其层次结构提供给其他模块;所述关系信息处理模块抽取GOP源代码中类和粒之间的关系信息,并将类和粒之间的关系信息提供给其他模块。
2.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述编辑器的类 编辑模块和粒编辑模块分别与类_粒层次结构构造器的类信息处理模块、粒信息处理模块 和关系信息处理模块连接,类_粒层次结构构造器从类编辑模块和粒编辑模块获取GOP源 代码,所述类信息处理模块抽取GOP源代码中所有类信息及其层次结构;所述粒信息处理 模块抽取GOP源代码中所有粒信息及其层次结构;所述关系信息处理模块抽取GOP源代码 中类和粒之间的关系信息。
3.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的编辑器 的类信息模块与类-粒层次结构构造器的类信息处理模块连接,编辑器的类信息模块从 类_粒层次结构构造器的类信息处理模块获取所有类信息及其层次结构。
4.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的编辑器 的粒信息模块与类-粒层次结构构造器的粒信息处理模块连接,编辑器的粒信息模块从 类_粒层次结构构造器的粒信息处理模块获取所有粒信息及其层次结构。
5.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的编辑器的 关系信息模块与类-粒层次结构构造器的关系信息处理模块连接,编辑器的关系信息显示 模块从类_粒层次结构构造器的关系信息处理模块获取类和粒之间的关系信息。
6.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的编辑器的 窗口切换模块与类_粒层次结构构造器的类信息处理模块、粒信息处理模块和关系信息处 理模块连接,实现窗口切换时被切换前后窗口内容的信息同步。
7.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的调试器的 跟踪模块、粒指示模块和调试器窗口显示模块分别与类_粒层次结构构造器的类信息处理 模块、粒信息处理模块连接;从粒层次结构构造器的类信息处理模块获取所有类信息及其 层次结构,从粒层次结构构造器的粒信息处理模块获取所有粒信息及其层次结构,为调试 工作提供指示信息。
8.根据权利要求1所述的面向粒的编程集成开发平台,其特征在于所述的调试器的 跟踪模块、粒指示模块、调试器窗口显示模块和个体程序演化模块分别与编辑器和虚拟机 连接;调试器启动编辑器实现对代码的修改,调试器从虚拟机获取当前运行的状态信息。
全文摘要
本发明公开了一种面向粒的编程集成开发平台,该平台分为编辑器、编译器、虚拟机、调试器和类-粒层次结构构造器;所述编辑器、编译器和调试器分别与类-粒层次结构构造器相互通信,所述调试器还分别与编辑器和虚拟机连接。该平台提供了对面向粒的编程(Granule-Oriented Programming)语言的编码、编译、调试功能;将程序的信息由独立的类-粒层次结构构造器进行管理,依靠面向粒的编程集成开发平台我们可以很容易定义粒,并将类代码与粒代码透明的融合,同时类-粒之间的自动定位功能和丰富的信息显示功能也使得代码编辑、故障确定和新粒的编写更为方便。
文档编号G06F9/44GK101826017SQ20101017279
公开日2010年9月8日 申请日期2010年5月14日 优先权日2010年5月14日
发明者张长军, 曾庆花, 朱常鹏, 李聪, 王一群, 王妮, 赵银亮, 郑双明 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1