增量连接系统技术方案

技术编号:2891998 阅读:168 留言:0更新日期:2012-04-11 18:40
一种连接计算机程序的方法,其特征在于包括以下步骤: (a)将一个计算机程序模式成一个部件的集合; (b)在一存储器中存储这些部件; (c)访问所存储的部件并计算与每个部件关联的相关性以生成一个相关性表; (d)根据该相关性表编译部件以生成一个更新的目标模块;以及 (e)通过更新一个现有的可执行文件来连接该更新的目标模块。(*该技术在2014年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机辅助软件工程(CASE),尤其涉及面向人的目标编程系统(HOOPS),该系统为计算机程序建立提供了交互和动态环境。面向人的目标编程系统(HOOPS)使程序员得以由优化增量编译程序而对计算机程序中的微小的颗粒源码进行编辑。本专利技术的主题是一增量连接程序,它在HOOPS中操作以生成由一个输入程序所用的文件。本专利技术是以使用通用的面向目标编程的(OOP)语言、C++作为最佳实施例的,但其原理也适用于面向目标的以及过程计算机编程语言,本专利技术亦可用于建立使用常规的和OOP语言的程序。OOP是建立用户使用方便的以及智能计算机软件的最佳环境。OOP的要素是数据密封性(data encapsulation),继承性(inheritance)以及多形性(Polymorphism)。这些元素可以用于产生图形用户接口(GUI),尤其是产生具有图符、鼠标光标以及选项单视窗环境的为特征的。所构成的GUI。虽然这三种要素属OOP语言所共有,但在实施方式上大部分OOP语言彼此间有很大的区别。OOP语言的例子包括Smalltalk、目标Pascal和C++。Smalltalk实际上不止是一种语言,更准确地讲,它应该被认为一种编程环境。该语言是在70年代早期施乐普拉阿图研究中心(PARC)的研究部开发的。在该语言中,一个信息被送到一个目标以对其进本身行评价。信息完成的任务类似于在常规编程语言中的功能调用。程序员无需关心数据类型而只须关心生成正确顺序的信息及使用正确的信息。Object Pas-cal是用于苹果公司的Machintesh 计算机上的语言,苹果公司在Pascal语言的设计者一尼古拉斯·沃斯(Niklaus.With)—的合作下开发出了Object Paseal语言。C++语言则是由斯托斯特拉普(Bjarne Stroustrup)在1983年在AT&T贝尔实验室开发而成的,它出C语言的扩展。C++的主要概念是分类,它是用户定义型的。分类提供了面向目标的编程特性。C++模型与C模型相兼容而且可随意联接,从而现有的C程序库可由C++程序所用。最广泛使用的基于目标和面向目标的编程语言源于60年代由挪威的戴沃(O-J.Dah1)梅·阿汉(B.Myhrhaug)以及耐·培得(K.Nygard)所开发的Simula语言。有关OOP的信息可参见布克(Grady Booch)所著的“Object Oriented Design with Applications”(Benjimin/Cum-mings Publishing Co.,Inc.,Readwood city,California,1991)。运行一个计算机程序的完整过程涉及把程序员写出的源码译为机器可执行的格式,通常称为目标码,然后再执行该目标码。翻译的过程是由编译程序或解释程序完成。在解释程序中,翻译是随程序的运行而进行的;而在编译程序中,则是在运行该程序之前就进行翻译并将结果作为目标码存贮起来。也就是说,在一般的编译和执行系统中,翻译和执行是分开进行的,即编译只进行一次。而在解释系统中,例如Smalltalk解释程序,两者是顺序进行。因为直到一个目标被实现之前,编程环境的性质不允许指定专用寄存器或地址空间,所以,Smalltalk需要解释程序。一个编译程序包括三部分;词法分析程序,语法分析程序,以及代码生成程序。词法分析程序的输入是代表高级语言程序的一序列字符。词法分析程序将该序列分为一个标记序列以输入到语法分析程序。语法分析程序进而将该序列标记分为指令并利用语法规则的数据库来确定是否每条指令的语法正确与否。若不正确,则产生错误信息。若正确,则指令被分解为一基本指令系列。这些基本指令被送至代码生成程序以产生低级语言。代码生成程序本身通常又分为三部分;中间代码生成,代码优化,以及代码生成。基本而言,代码生成程序接收来自语法分析程序的输出并生成机器语言码。为有助于软件开发而开发出了增量编译程序,其中,编译程序在批处理操作中生成用于接收的一条语句或一组语句的代码,而与稍后生成的用于其他语句的代码无关。增量编译的优点在于只有被一转变所影响的代码才被编译。这一行为导致了极快的编译和调试代码的周期。优化编译程序产生高度优化的目标码。从而在许多情况下使得在源级进行调试比一个非优化编译程序更困难。这一问题源于这一事实,即虽然一个例行程序将被编译以给出适当的答案,但计算该答案的确切方式可能与源码中描述的大相径庭。优化编译程序可以实现的一些事情,包括删除被确认属不会影响最终结果的代码或变量,将非变量代码移出循环,合成公用码,在变量不再需要时重新使用分配给这些变量的寄存器等等。如此,源码到目标码或目标码到源码的映射在给定某些优化时可能会有困难。由于变量的值可能并非在例行程序中任意位置处总是可用的,所以可能难于校验变量的值。在优化代码中修改变量值既使不是完全不可能,也是尤为困难。除非专门说明为易失的,否则编译程序会“记住”分配给变量的值并可能在以后的代码中不再读该变量而使用“已知”的值。因此,在该值中的改变产生了错误的程序结果。虽然在先有技术的计算机程序设置、测试以及开发中有许多优点,但已知的软件开发工具仍给程序员带来极大负担,从而通常要求有直觉的洞悉力。其次,常规的面向批处理的编程系统需要很长的编辑——编译——测试周期,这对编程的创造性行为带来的极大的不利影响。一旦在常规编程系统中完成了编译,称为装入程序的程序将执行装入和连接编辑这样两个功能。该装入处理包括获取可重新定位的机器码,修改可重新定位的地址,并把存储器中修改后的数据和指令放入适当的位置。而连接编辑程序则从几个有可能重新定位的机器码的文件中生成一个程序。这些文件可以是几个不同编译的结果。因此,本专利技术的一个目的是提供一种增量连接程序,该增量连接程序在用于建立计算机程序的面向人的交互动态处理中操作。在交互动态的建立过程中,程序建立可由增量程序模式(称为项目Project)和三个主要功能性交互而成。一个程序被成型为语义单元,该语义单元被称之为成分并由称为特性的命名数据项目表构成。不是象常规系统那样把程序作为一个松散的文件集合存储起来。本专利技术的面向人的目标编程系统把项目中有关程序的所有信息存起来。本专利技术的计算机程序的建立有助于使程序员的生产力大为提高。根据本专利技术,提供了一种增量连接程序,它在HOOPS运行并且其功能连到现有的执行程序,从而避免对一组完整的目标文件进行再处理。在本专利技术的实施中,计算机程序被成型为一个部件集,为计算机程序提供模型的部件被存储以便在建立处理中被存取。存储的部件被依序存取,而且用一个编译程序计算与每个部件关联的相关性以开发一个相关性表。然后,根据相关性表编译部件以产生一个更新过的目标模型。最后,更新的目标模型通过对现有可执行文件的更新而被连接。本专利技术的最佳实施例以C++完成的并用C++C以及汇编语言进行的程序建立,这些语言是当前最流行使用的。本专利技术的程序的建立一般可用这三种语言完成。虽然本专利技术本身是以面向目标的编程语言写成的面向目标的程序,但其并不仅限于以面向目标的程序语言建立程序。本专利技术可同样用于以过程语言建立程序。进而,本专利技术不限于C++语言,它也可由其他编程语言本文档来自技高网...

【技术保护点】
一种连接计算机程序的方法,其特征在于包括以下步骤:(a )将一个计算机程序模式成一个部件的集合;(b)在一存储 器中存储这些部件;(c)访问所存储的部件并计算与每个部 件关联的相关性以生成一个相关性表;(d)根据该相关性表 编译部件以生成一个更新的目标模块;以及(e)通过更新一 个现有的可执行文件来连接该更新的目标模块。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:罗杰·P·劳伦斯约翰·R·丹斯
申请(专利权)人:塔里根特公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利