本发明专利技术公开了一种编程方法,包括以下步骤:a.在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;b.把所述系统基本模装入词典并对系统进行初始化;c.词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;d.翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;e.装配器遍历所述词典,并进行数据装配;f.数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。
【技术实现步骤摘要】
本专利技术涉及计算机领域中的。
技术介绍
现有技术中有很多种编程语言和采用该语言的编程方法,如C语言,C++等,均具有其自身的特点;然而公开号为CN1100M3的中国专利申请中公开了一种汉语编程单片机的计算机系统,其中单片机汉语编程系统具有一个汉语词典单元,该汉语词典单元完成系统的解释,编译和运行;词典单元中含有操作系统应有的设备的驱动,设备管理、文件管理、 命令管理、解释、编译、编辑、跟踪调试等;该汉语词典单元依据用户输入的文本合法输入流,能繁衍出汉语新词的词典标识单元,该词典标识单元也可以在读写存储体中繁衍出包括此功能的新的复合词;该系统采用软-硬,一体化设计将一只可读存储体和一可读写存储体的部件地址在硬件上连接重叠,两个存储体的数据的读出与否通过总线仲裁器决定, 该总线仲裁器利用系统的“固词- >”单元指针上的地址判定选择两个存储体中的一个;应用系统中可将可读写存储体中的词典部分转移到只可读存储体中,同时总线仲裁器和“固词- >”可根据新的方式选择读写两个存储体之一。上述的计算机系统的所公开的编程方法无法实现在具有不同CPU的设备中使用,因此无法实现跨硬件平台,造成该编程方法的应用不够广泛。另外,采用C和CC++的编程方法是首先进行编译,最后翻译成机器代码,由于不同CPU有不同的翻译标准,无法进行统一,因此采用C和C++语言无法实现在具有不同 CPU的设备中进行编程。
技术实现思路
为此,本专利技术要解决的技术问题在于提出一种能在具有不同CPU的设备中使用, 能够实现跨硬件平台的编程方法。,包括以下步骤a.在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;b.建立词典,把所述系统基本模装入词典,并对系统进行初始化;c.词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;d.翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;e.装配器遍历所述词典,并进行数据装配;f.数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。上述的编程方法,所述接口函数目标代码信息包括接口函数索引信息,和与所述接口函数索引信息成映射关系的接口函数机器代码信息,所述系统基本模的数据结构为包括系统基本模名称、系统基本模属性和系统基本模输入参数;所述接口函数索引信息的数据结构为包括接口函数名、用于表示所述接口函数目标码信息空间位置的接口函数目标代码入口地址、接口函数属性、接口函数输入参数和接口函数状态标识;所述系统基本模具有系统基本模成员函数,所述系统基本模成员函数具有系统基本模成员函数索引信息,该索引信息的数据结构为包括与所述接口函数名、所述程序函数目标代码入口地址、所述接口函数属性、所述接口函数输入参数和所述接口函数状态标识分别成映射关系的系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性和系统基本模成员函数输入参数和系统基本模成员函数状态标识。上述的编程方法,所述步骤b中对系统进行初始化的步骤具体为在词典中建立所述系统基本模的成员函数的信息索引,并生成与步骤a中所述的接口函数索引信息相对应的系统基本模成员函数索引信息,再将所述程序函数目标代码入口地址存储在信息索引的相应位置中。上述的编程方法,所述扩展模包括扩展模成员对象和扩展模成员函数,所述扩展模的成员函数的数据结构为包括与系统基本模成员函数名、系统基本模成员函数目标代码入口地址、系统基本模成员函数属性、系统基本模成员函数输入参数和系统基本模成员函数状态标识分别相对应的扩展模成员函数名、扩展模成员函数目标代码入口地址、扩展模成员函数属性、扩展模成员函数输入参数和扩展模成员函数状态标识;所述扩展模成员函数包括运算符和/或普通函数;所述扩展模成员对象的数据结构为包括扩展模成员对象名、用于存储扩展模成员对象的扩展模成员对象数据入口地址、扩展模成员对象属性和扩展模成员对象状态标识。上述的编程方法,翻译器的翻译步骤具体为翻译器根据所述词典中扩展模成员函数实体文本位置地址信息,从程序源代码文本中调取实体文本,所述实体文本为已装入所述词典中的所述词的组合;并将所述实体文本翻译成扩展模成员函数目标机器代码信息,同时在计算机中开辟的临时存储空间,并将所述扩展模成员函数目标机器代码信息以程序文件为基本单位存入所述临时存储空间;所述临时存储空间具有临时存储空间入口地址信息,使所述临时存储空间入口地址信息与所述扩展模成员函数目标代码入口地址信息成映射关系;其中,翻译器在翻译过程中扫描检测所述实体文本当扫描检测到运算符字符串信息或普通函数字符串信息时,到词典中查找具有函数名与其同名的基本模成员函数索引信息,或扩展模成员函数索引信息i.所述翻译器根据查找到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的状态标识设置为待使用状态;ii所述翻译器在所述临时存储空间中加入相应的调用指令,和指向基本模成员函数索引信息或扩展模成员函数索引信息的跳转位置入口;当扫描检测到扩展模成员对象字符串信息时,所述翻译器将扩展模成员对象状态标识设置为待使用状态标识。上述的编程方法,所述数据装配具体为当被检测到的所述基本模成员函数索引信息或所述扩展模成员函数索引信息的所述成员函数态标识为待使用状态标识时,所述装配器将所述基本模成员函数目标代码信息复制到所述装配器的目标代码区中,或者所述装配器将扩展模成员函数目标机器代码信息从步骤d的所述临时存储空间复制到装配器的目标代码区中。上述的编程方法,上述步骤f的修改机器调用指令访问地址根据检测到的索引信息将词典中相应的所述系统基本模成员函数或所述扩展模成员函数的函数信息索引入口地址修改为装配器的目标代码区的函数目标代码信息所处入口位置。上述的编程方法,其中所述接口函数索引信息的数据结构还包括接口函数目标代码信息大小属性;所述扩展模的成员函数的数据结构还包括所述扩展模成员函数目标机器代码信息大小属性;上述步骤a还包括在预先合成接口函数的接口函数目标代码信息后对接口函数目标代码信息的大小记录在所述接口函数目标代码信息大小属性中;且在翻译过程中所述翻译器在所述临时存储空间中加入相应的调用指令后将所述扩展模成员函数目标机器代码信息的大小记录在所述扩展模成员函数目标机器代码信息大小属性中;并根据所述接口函数目标代码信息的大小和所述扩展模成员函数目标机器代码信息的大小将所述基本模成员函数目标代码信息和扩展模成员函数目标机器代码信息连续存储在所述装配器的所述目标代码区中。本专利技术的优点在于1.本编程方法在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,以接口函数形式与不同CPU机器指令对接,既可以在不同CPU下实现编程,又缩短了不同CPU下语言环境开发周期,降低环境的开发难度,实现跨硬件平台, 方便了编程方法在具有不同CPU的设备的推广使用。2.从词典的建立,到函数的翻译,到目标代码的装配,完全以词典为主的索引,相对C语言,C++, JAVA来说其编译过程更加简洁更加结构化。3.所述基本模成员函数目标代码信息和扩展模成员函数目标机器代本文档来自技高网...
【技术保护点】
1.一种编程方法,其特征包括以下步骤:a.在系统初始化前,先通过CPU指令体系的指令预先合成接口函数的接口函数目标代码信息,再定义系统基本模;b.建立词典,把所述系统基本模装入所述词典,并对系统进行初始化;c.词典发生器将程序源代码中具有与所述系统基本模相同数据结构的词作为扩展模装入所述词典,然后在所述词典中建立起针对该扩展模的信息索引,并生成扩展模索引信息;d.翻译器根据装入所述词典的扩展模对程序源代码信息进行翻译;e.装配器遍历所述词典,并进行数据装配;f.数据装配后,按函数目标代码的实际位置,修改机器调用指令访问地址。
【技术特征摘要】
【专利技术属性】
技术研发人员:胡月军,沈志斌,曾京,易立,
申请(专利权)人:易立,曾京,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。