《一种编程方法.pdf》由会员分享,可在线阅读,更多相关《一种编程方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102323891A43申请公布日20120118CN102323891ACN102323891A21申请号201110338428322申请日20111031G06F9/4520060171申请人易立地址100098北京市海淀区太阳园3号楼2201申请人曾京72发明人胡月军沈志斌曾京易立74专利代理机构北京三聚阳光知识产权代理有限公司11250代理人张建纲54发明名称一种编程方法57摘要本发明公开了一种编程方法,包括以下步骤A在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;B把所述系统基本模装入词典并对系统进行初始化;C词。
2、典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;D翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;E装配器遍历所述词典,并进行数据装配;F数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书5页附图1页CN102323901A1/2页21一种编程方法,其特征包括以下步骤A在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;B建立词典,把所述系统基。
3、本模装入所述词典,并对系统进行初始化;C词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;D翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;E装配器遍历所述词典,并进行数据装配;F数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。2根据权利要求1所述的编程方法,其特征在于所述接口函数目标代码信息包括接口函数索引信息,和与所述接口函数索引信息成映射关系的接口函数机器代码信息,所述系统基本模的数据结构为包括系统基本模名称、系统基本模属性和系统基本模输入参数;所述接口函数索引信。
4、息的数据结构为包括接口函数名、用于表示所述接口函数目标码信息空间位置的接口函数目标代码入口地址、接口函数属性、接口函数输入参数和接口函数状态标识;所述系统基本模具有系统基本模成员函数,所述系统基本模成员函数具有系统基本模成员函数索引信息,该索引信息的数据结构为包括与所述接口函数名、所述程序函数目标代码入口地址、所述接口函数属性、所述接口函数输入参数和所述接口函数状态标识分别成映射关系的系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性和系统基本模成员函数输入参数和系统基本模成员函数状态标识。3根据权利要求1或2所述的编程方法,其特征在于所述步骤B中对系统进行初始化。
5、的步骤具体为在词典中建立所述系统基本模的成员函数的信息索引,并生成与步骤A中所述的接口函数索引信息相对应的系统基本模成员函数索引信息,再将所述程序函数目标代码入口地址存储在信息索引的相应位置中。4根据权利要求3所述的编程方法,其特征在于所述扩展模包括扩展模成员对象和扩展模成员函数,所述扩展模成员函数的数据结构为包括与系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性、系统基本模成员函数输入参数和系统基本模成员函数状态标识分别相对应的扩展模成员函数名、扩展模成员函数目标代码入口地址、扩展模成员函数属性、扩展模成员函数输入参数和扩展模成员函数状态标识;所述扩展模成员函。
6、数包括运算符和/或普通函数;所述扩展模成员对象的数据结构为包括扩展模成员对象名、用于存储扩展模成员对象的扩展模成员对象数据入口地址、扩展模成员对象属性和扩展模成员对象状态标识。5根据权利要求4所述的编程方法,其特征在于翻译器的翻译步骤具体为翻译器根据所述词典中扩展模成员函数实体文本位置地址信息,从程序源代码文本中调取实体文本,所述实体文本为已装入所述词典中的所述词的组合;并将所述实体文本翻译成扩展模成员函数目标机器代码信息,同时在计算机中开辟的临时存储空间,并将所述扩展模成员函数目标机器代码信息以程序文件为基本单位存入权利要求书CN102323891ACN102323901A2/2页3所述临时。
7、存储空间;所述临时存储空间具有临时存储空间入口地址信息,使所述临时存储空间入口地址信息与所述扩展模成员函数目标代码入口地址信息成映射关系;其中,翻译器在翻译过程中扫描检测所述实体文本当扫描检测到运算符字符串信息或普通函数字符串信息时,到词典中查找具有函数名与其同名的基本模成员函数索引信息,或扩展模成员函数索引信息I所述翻译器根据查找到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的状态标识设置为待使用状态;II所述翻译器在所述临时存储空间中加入相应的调用指令,和指向所述基本模成员函数索引信息或所述扩展模成员函数索引信息的跳转位置入口;当扫描检测到扩展模成员对象字符串信息时,。
8、所述翻译器将扩展模成员对象状态标识设置为待使用状态标识。6根据权利要求5所述的编程方法,其特征在于所述数据装配具体为当被检测到的所述基本模成员函数索引信息或所述扩展模成员函数索引信息的所述成员函数态标识为待使用状态标识时,所述装配器将所述基本模成员函数目标代码信息复制到所述装配器的目标代码区中,或者所述装配器将扩展模成员函数目标机器代码信息从步骤D的所述临时存储空间复制到装配器的目标代码区中。7根据权利要求6所述的编程方法,其特征在于修改机器调用指令访问地址根据检测到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的函数信息索引入口地址修改为装配器的目标代码区的函数目标代码信。
9、息所处入口位置。8根据权利要求6或7所述的编程方法,其特征在于所述接口函数索引信息的数据结构还包括接口函数目标代码信息大小属性;所述扩展模的成员函数的数据结构还包括所述扩展模成员函数目标机器代码信息大小属性;上述步骤A还包括在预先合成接口函数的接口函数目标代码信息后对接口函数目标代码信息的大小记录在所述接口函数目标代码信息大小属性中;且在翻译过程中所述翻译器在所述临时存储空间中加入相应的调用指令后将所述扩展模成员函数目标机器代码信息的大小记录在所述扩展模成员函数目标机器代码信息大小属性中;并根据所述接口函数目标代码信息的大小和所述扩展模成员函数目标机器代码信息的大小将所述基本模成员函数目标代码。
10、信息和扩展模成员函数目标机器代码信息连续存储在所述装配器的所述目标代码区中。权利要求书CN102323891ACN102323901A1/5页4一种编程方法技术领域0001本发明涉及计算机领域中的一种编程方法。背景技术0002现有技术中有很多种编程语言和采用该语言的编程方法,如C语言,C等,均具有其自身的特点;然而公开号为CN1100543的中国专利申请中公开了一种汉语编程单片机的计算机系统,其中单片机汉语编程系统具有一个汉语词典单元,该汉语词典单元完成系统的解释,编译和运行;词典单元中含有操作系统应有的设备的驱动,设备管理、文件管理、命令管理、解释、编译、编辑、跟踪调试等;该汉语词典单元依据。
11、用户输入的文本合法输入流,能繁衍出汉语新词的词典标识单元,该词典标识单元也可以在读写存储体中繁衍出包括此功能的新的复合词;该系统采用软硬,一体化设计将一只可读存储体和一可读写存储体的部件地址在硬件上连接重叠,两个存储体的数据的读出与否通过总线仲裁器决定,该总线仲裁器利用系统的“固词”单元指针上的地址判定选择两个存储体中的一个;应用系统中可将可读写存储体中的词典部分转移到只可读存储体中,同时总线仲裁器和“固词”可根据新的方式选择读写两个存储体之一。上述的计算机系统的所公开的编程方法无法实现在具有不同CPU的设备中使用,因此无法实现跨硬件平台,造成该编程方法的应用不够广泛。另外,采用C和CC的编程。
12、方法是首先进行编译,最后翻译成机器代码,由于不同CPU有不同的翻译标准,无法进行统一,因此采用C和C语言无法实现在具有不同CPU的设备中进行编程。发明内容0003为此,本发明要解决的技术问题在于提出一种能在具有不同CPU的设备中使用,能够实现跨硬件平台的编程方法。0004一种编程方法,包括以下步骤0005A在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;0006B建立词典,把所述系统基本模装入词典,并对系统进行初始化;0007C词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展。
13、模的信息索引,并生成扩展模索引信息;0008D翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;0009E装配器遍历所述词典,并进行数据装配;0010F数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。0011上述的编程方法,所述接口函数目标代码信息包括接口函数索引信息,和与所述接口函数索引信息成映射关系的接口函数机器代码信息,所述系统基本模的数据结构为包括系统基本模名称、系统基本模属性和系统基本模输入参数;所述接口函数索引信息的数说明书CN102323891ACN102323901A2/5页5据结构为包括接口函数名、用于表示所述接口函数目标码信息空间位置的接口函数目标代码。
14、入口地址、接口函数属性、接口函数输入参数和接口函数状态标识;所述系统基本模具有系统基本模成员函数,所述系统基本模成员函数具有系统基本模成员函数索引信息,该索引信息的数据结构为包括与所述接口函数名、所述程序函数目标代码入口地址、所述接口函数属性、所述接口函数输入参数和所述接口函数状态标识分别成映射关系的系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性和系统基本模成员函数输入参数和系统基本模成员函数状态标识。0012上述的编程方法,所述步骤B中对系统进行初始化的步骤具体为在词典中建立所述系统基本模的成员函数的信息索引,并生成与步骤A中所述的接口函数索引信息相对应的系。
15、统基本模成员函数索引信息,再将所述程序函数目标代码入口地址存储在信息索引的相应位置中。0013上述的编程方法,所述扩展模包括扩展模成员对象和扩展模成员函数,所述扩展模的成员函数的数据结构为包括与系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性、系统基本模成员函数输入参数和系统基本模成员函数状态标识分别相对应的扩展模成员函数名、扩展模成员函数目标代码入口地址、扩展模成员函数属性、扩展模成员函数输入参数和扩展模成员函数状态标识;所述扩展模成员函数包括运算符和/或普通函数;所述扩展模成员对象的数据结构为包括扩展模成员对象名、用于存储扩展模成员对象的扩展模成员对象数据入。
16、口地址、扩展模成员对象属性和扩展模成员对象状态标识。0014上述的编程方法,翻译器的翻译步骤具体为翻译器根据所述词典中扩展模成员函数实体文本位置地址信息,从程序源代码文本中调取实体文本,所述实体文本为已装入所述词典中的所述词的组合;并将所述实体文本翻译成扩展模成员函数目标机器代码信息,同时在计算机中开辟的临时存储空间,并将所述扩展模成员函数目标机器代码信息以程序文件为基本单位存入所述临时存储空间;所述临时存储空间具有临时存储空间入口地址信息,使所述临时存储空间入口地址信息与所述扩展模成员函数目标代码入口地址信息成映射关系;0015其中,翻译器在翻译过程中扫描检测所述实体文本0016当扫描检测到。
17、运算符字符串信息或普通函数字符串信息时,到词典中查找具有函数名与其同名的基本模成员函数索引信息,或扩展模成员函数索引信息0017I所述翻译器根据查找到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的状态标识设置为待使用状态;0018II所述翻译器在所述临时存储空间中加入相应的调用指令,和指向基本模成员函数索引信息或扩展模成员函数索引信息的跳转位置入口;0019当扫描检测到扩展模成员对象字符串信息时,所述翻译器将扩展模成员对象状态标识设置为待使用状态标识。0020上述的编程方法,所述数据装配具体为当被检测到的所述基本模成员函数索引信息或所述扩展模成员函数索引信息的所述成员函数。
18、态标识为待使用状态标识时,所述装配器将所述基本模成员函数目标代码信息复制到所述装配器的目标代码区中,或者所述装配器将扩展模成员函数目标机器代码信息从步骤D的所述临时存储空间复制到装配器的说明书CN102323891ACN102323901A3/5页6目标代码区中。0021上述的编程方法,上述步骤F的修改机器调用指令访问地址根据检测到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的函数信息索引入口地址修改为装配器的目标代码区的函数目标代码信息所处入口位置。0022上述的编程方法,其中所述接口函数索引信息的数据结构还包括接口函数目标代码信息大小属性;所述扩展模的成员函数的数据结。
19、构还包括所述扩展模成员函数目标机器代码信息大小属性;上述步骤A还包括在预先合成接口函数的接口函数目标代码信息后对接口函数目标代码信息的大小记录在所述接口函数目标代码信息大小属性中;且在翻译过程中所述翻译器在所述临时存储空间中加入相应的调用指令后将所述扩展模成员函数目标机器代码信息的大小记录在所述扩展模成员函数目标机器代码信息大小属性中;并根据所述接口函数目标代码信息的大小和所述扩展模成员函数目标机器代码信息的大小将所述基本模成员函数目标代码信息和扩展模成员函数目标机器代码信息连续存储在所述装配器的所述目标代码区中。0023本发明的优点在于00241本编程方法在系统初始化前,先通过CPU指令体系。
20、的指令预先合成接口函数的接口函数目标代码信息,以接口函数形式与不同CPU机器指令对接,既可以在不同CPU下实现编程,又缩短了不同CPU下语言环境开发周期,降低环境的开发难度,实现跨硬件平台,方便了编程方法在具有不同CPU的设备的推广使用。00252从词典的建立,到函数的翻译,到目标代码的装配,完全以词典为主的索引,相对C语言,C,JAVA来说其编译过程更加简洁更加结构化。00263所述基本模成员函数目标代码信息和扩展模成员函数目标机器代码信息在所述装配器的所述目标代码区中的为连续存储,可以保证目标代码无缝隙结合,应用程序不易被破坏,提高了可执行代码的安全性。附图说明0027为了使本发明的内容更。
21、容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。0028图1编程方法的流程图;具体实施方式0029实施例10030如图1所示的编程方法,包括以下步骤0031A在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;0032B建立词典,把所述系统基本模装入所述词典,并对系统进行初始化;0033C词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;0034D翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;说明书C。
22、N102323891ACN102323901A4/5页70035E装配器遍历所述词典,并进行数据装配;0036F数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。0037其中,所述接口函数目标代码信息优选为包括接口函数索引信息,和与所述接口函数索引信息成映射关系的接口函数机器代码信息,所述系统基本模的数据结构为包括系统基本模名称、系统基本模属性和系统基本模输入参数;所述接口函数索引信息的数据结构为包括接口函数名、用于表示所述接口函数目标码信息空间位置的接口函数目标代码入口地址、接口函数属性、接口函数输入参数和接口函数状态标识;所述系统基本模具有系统基本模成员函数,所述系统基本模成。
23、员函数具有系统基本模成员函数索引信息,该索引信息的数据结构为包括与所述接口函数名、所述程序函数目标代码入口地址、所述接口函数属性、所述接口函数输入参数和所述接口函数状态标识分别成映射关系的系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性和系统基本模成员函数输入参数和系统基本模成员函数状态标识;0038所述步骤B中对系统进行初始化的步骤具体优选为在词典中建立所述系统基本模的成员函数的信息索引,并生成与步骤A中所述的接口函数索引信息相对应的系统基本模成员函数索引信息,再将所述程序函数目标代码入口地址存储在信息索引的相应位置中。0039所述扩展模优选为包括扩展模成员对。
24、象和扩展模成员函数,所述扩展模的成员函数的数据结构为包括与系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性、系统基本模成员函数输入参数和系统基本模成员函数状态标识分别相对应的扩展模成员函数名、扩展模成员函数目标代码入口地址、扩展模成员函数属性、扩展模成员函数输入参数和扩展模成员函数状态标识;所述扩展模成员函数包括运算符和/或普通函数;所述扩展模成员对象的数据结构为包括扩展模成员对象名、用于存储扩展模成员对象的扩展模成员对象数据入口地址、扩展模成员对象属性和扩展模成员对象状态标识。0040翻译器的翻译步骤具体优选为翻译器根据所述词典中扩展模成员函数实体文本位置地址。
25、信息,从程序源代码文本中调取实体文本,所述实体文本为已装入所述词典中的所述词的组合;并将所述实体文本翻译成扩展模成员函数目标机器代码信息,同时在计算机中开辟的临时存储空间,并将所述扩展模成员函数目标机器代码信息以程序文件为基本单位存入所述临时存储空间;所述临时存储空间具有临时存储空间入口地址信息,使所述临时存储空间入口地址信息与所述扩展模成员函数目标代码入口地址信息成映射关系;0041其中,翻译器在翻译过程中扫描检测所述实体文本0042当扫描检测到运算符字符串信息或普通函数字符串信息时,到词典中查找具有函数名与其同名的基本模成员函数索引信息,或扩展模成员函数索引信息0043I所述翻译器根据查找。
26、到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的状态标识设置为待使用状态;0044II所述翻译器在所述临时存储空间中加入相应的调用指令,和指向基本模成员函数索引信息或扩展模成员函数索引信息的跳转位置入口;0045当扫描检测到扩展模成员对象字符串信息时,所述翻译器将扩展模成员对象状态标识设置为待使用状态标识。说明书CN102323891ACN102323901A5/5页80046所述数据装配过程具体优选为当被检测到的所述基本模成员函数索引信息或所述扩展模成员函数索引信息的所述成员函数态标识为待使用状态标识时,所述装配器将所述基本模成员函数目标代码信息复制到所述装配器的目标代。
27、码区中,或者所述装配器将扩展模成员函数目标机器代码信息从步骤D的所述临时存储空间复制到装配器的目标代码区中。所述基本模成员函数目标代码信息和/或扩展模成员函数目标机器代码信息在所述装配器的所述目标代码区中的优选为连续存储。0047上述修改机器调用指令访问地址优选为根据检测到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的函数信息索引入口地址修改为装配器的目标代码区的函数目标代码信息所处入口位置。0048本发明的编程方法可进一步地优化为0049所述接口函数索引信息的数据结构还包括接口函数目标代码信息大小属性;所述扩展模的成员函数的数据结构还包括所述扩展模成员函数目标机器代码信。
28、息大小属性;0050上述步骤A还包括在预先合成接口函数的接口函数目标代码信息后对接口函数目标代码信息的大小记录在所述接口函数目标代码信息大小属性中;0051且在翻译过程中所述翻译器在所述临时存储空间中加入相应的调用指令后将所述扩展模成员函数目标机器代码信息的大小记录在所述扩展模成员函数目标机器代码信息大小属性中;0052并根据所述接口函数目标代码信息的大小和所述扩展模成员函数目标机器代码信息的大小将所述基本模成员函数目标代码信息和扩展模成员函数目标机器代码信息连续存储在所述装配器的所述目标代码区中。0053显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以根据设备的大小不同做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。说明书CN102323891ACN102323901A1/1页9图1说明书附图CN102323891A。