一种能够使用母语开发多种高级语言程序的系统和方法

文档序号:6619324阅读:195来源:国知局

专利名称::一种能够使用母语开发多种高级语言程序的系统和方法
技术领域
:本发明设计涉及一种使用母语开发各种高级语言程序的系统和方法,可使用母语标识符。
背景技术
:目前,几乎所有的软件都必须使用软件开发工具编译或翻译链接生成程序。现在,有越来越多的程序语言和编译系统产生,比如VisualC++,VisualBasic,Java,BorlandC++,等等高级语言,每一种高级语言常使用不同的标识符系统,不同的关键字,和不同的语法规则,即使同一种高级语言也有不同的开发工具,不同的开发工具又有不同的类库或者函数库等资源。这些不同开发环境开发出的源代码移植困难,某一种开发工具开发的源代码无法在其它开发工具上正确编译,以组装成更大的程序,造成资源的浪费。而且不同的语法规则不利于人们学习掌握。而开发新的程序开发工具,周期长,成本高,最重要的是不能充分利用现有代码资源,造成巨大浪费。并且这些高级语言和软件开发工具主要使用英语作为标示用语言,给非英语国家人们的学习这些软件开发工具和识读程序带来了困难,增加了学习和使用成本。众所周知,印度之所以能够成为软件大国,除因为拥有丰富的人力资源外,主要因为英语是其官方语言之一,而中国同样拥有丰富的人力资源,却不能成为软件大国,英语是最主要的障碍之一。世界迫切需要一种通用语言,用它来开发软件,而且能够充分利用现有软件开发工具的大量资源(比如,类库、函数库)。
发明内容为了克服现有程序开发工具语法规则多样,关键字繁杂。难学习难释读,造成人力资源成本高昂。如果从新研发一种新的软件开发工具,研发成本高,而且不能充分利用现有软件开发工具的大量资源(比如,MFC类库、函数库)。针对上述缺点本发明提供一种能使用母语开发各种高级语言程序的系统和方法,可以创制一种通用高级语言,这种通用高级语言的程序语句使用母语关键字或标识符,用这种通用高级语言开发的软件,可以生成现有软件开发工具认可^程序源代码。再利用这些软件开发工具把这些源代码编译链接生成目标程序。这样就解决了对现有软件开发工具的代码资源(比如,类库、函数库)的继承。同时人们将不再需要学习各种高级语言和开发工具,而只需要学习这种通用语言就可以了,从而大大降低了学习成本;编辑生成的源文本代码,可以根据需要翻译为选定的软件开发环境下使用的程序代码,也可以对在其它软件开发工具上开发的程序源代码进行反向翻译,生成通用高级语言源文本代码,以本系统为桥梁,可以使在不同软件开发工具下开发的软件可以互换互译。从而大大提高了现有资源的利用效率。也可以通过更换字符库的方法,使不同国家生产的源代码进行互译。有利于软件生产厂家的跨国经营。本发明解决其技术问题所釆用的技术方案是首先,任何一种程序语言(除机器语言外)都必须编辑文本代码,然后由软件开发工具编译或者翻译链接生成目标程序。任何一种程序语言都具有类似的结构,包括常量、变量、运算符、分支控制语句、循环、子程序、函数库、类库等等,这些所有的功能相同的部分,实际上可以统一起来。使用统一的标识符集,并且这种标识符集,用户可以选择自己熟悉的一种语言文字,比如母语。本发明类似一种程序开发工具,但并不是真正意义上程序开发工具,并不直接生成目标程序,而是生成某种软件开发工具能正确识别和翻译的程序源代码。再利用这种软件开发工具打开这些源代码文件,编译或者翻译链接生成目标程序。本发明要求创制一种新的高级语言,该语言的语法规则应易学易用,或者沿用现有人们习惯使用的高级语言的语法规则(比如c语言的语法规则)。还要创制新的标识符,以及关键字等等,使用母语文字表示,或者沿用比较通用的标识符,以增加易学性易用性。比如定义长整型数据m,n,o,p的C语言语句longm,n,o,p;以汉语为例,我们可以创制汉语关键字"长整"来定义长整型数据m,语句为长整m,n,o,p。对于常用的标识符,运算符,可以保留英文。这些标识符是否保留沿用要根据是否有利于易学易用及通用性。比如"sin()",几乎在所有编程语言中都表示正弦函数,在数学上也如此表示,所以仍然沿用此标识符表示正弦函数或者运算符。所创制的通用高级语言的标识符的功能是各种软件开发工具的特有功能和共有功能的并集。不同软件开发工具的不同标识符如果具有相同功能,那么本系统具有唯一的与之对应的自创母语标识符,这些母语标识符适用于何种开发工具由通用标志标示。在编辑源文本代码过程中不能更改通用标志的数值,否则本系统将不能正确翻译。关于普通软件开发工具的重要资源执行库,函数库和类库等(比如VISIUALC++的MFC类库)。本发明对这些资源按功能分门别类,集成在某些翻译库中,把不同高级语言、不同软件开发工具的执行库、函数库和类库,具有相同功能的,使用相同的自创的母语标识符,以方便查找和使用,在翻译时相应翻译成特定软件开发工具认可的程序代码,需要加载头文件的,自动生成相应的文件头信息。某一母语标识符,使用一种通用标志字段,表示其生成的代码在何种软件开发工具中可用,通用标志字段的某一逻辑位,约定作为某种软件开发工具环境下的通用标志。比如,设定通用标志的O位为VISIUALC++,如果某标识符的通用标志的O位为1,则表示由此标识符翻译生成的代码在VISIUAL0++开发环境下可用,如果为O则表示不可用。使用上述标识符和语法规则编制出文本代码程序,我们称之为源文本代码,由翻译程序将其翻译成某种软件开发工具所需要的目标文本代码文件,目标文本代码严格遵循某软件开发工具要求的语法规则。并且生成这种软f开发工具所需要的其他文件组件。然后再由这种软件开发工具把这些文件组件编译链接生成可执行的目标程序。本发明的系统主要包括三个部分(1)字符库(2)编辑库(3)翻译库。下面以中文系统编制VisualBasic和Visual0++程序为例说明(1)字符库为包含语言文字字符的数据库,字符库的功能是为系统菜单和程序语句提供字符,可以如下表格式(本表只为举例说明其可行性,具体形式可以有所不同)<table>tableseeoriginaldocumentpage8</column></row><table>字符库分成两个库,上面是母语标识符库,下面是系统字符库。字符库自少应包括一种语言文字,如果包含多种语言文字,用户可以根据需要选择使用某种文字。如上表,中国人可以选择中文字符,在"中文"字段下的记录为用户编程使用的自创的中文标识符库和系统自用中文字符库。在"英文"字段下的记录为自创的英文标识符库和系统自用英文字符库,编号为其主键。编号为l,2,3…58,59…的为关键字库函数库等字符。编号为…10001,10002,10003…的为系统自用字符库,供本系统的菜单使用。同一记录的不同字段拥有相同的含义,即不论是用何种文字表述,其意义完全相同,且一一对应,所以如果打算使用另外一种文字编程,只需要更换字符库即可。这样,不同语言环境下的人们可以互换程序代码,对用户自编的程序名和变量名常量名等作一下翻译说明,然后更换不同的字符库就可以互相读懂。比如,一个中国人要想使一个英国人读懂他的程序,只需把他自用的变量名,常量名,程序名和注释翻译成英文即可。对方使用英文字符库就可以将此程序识读出来。如果定义一个字符型变量m,那么,自创的中文语句可以为字符型m;自创的英文语句可以为charm。关于"通用标志"字段,通用性是指某些关键字,标识符对应的功能在某程序开发工具或者高级语言的环境下是否可用,是否为一种特有功能。通用标志为若干字节,每个二进制位约定表示某一高级语言是否具有此功能。比如我们可以约定通用标志的0位为VisualBasic的通用性标志位,1位为Visualc+^的通用性标志位,其他位保留未用,均为0。标志位为O则不能通用,为l则能通用。那么如上表,编号为2、3的记录,其数据类型为VisualBasic的特有数据类型,Visual"+没有此种数据类型,则其通用标志位1,其余编号1、58、59的记录,在两种开发环境下均有等价的标识符,故通用标志为3。对于其数值范围可以增加提示信息。设置通用标志是为了准确描述语句通用性和可靠性,通用标志是这样使用的,如果打算让源文本代码既可以产生Visua1Basic的代码,又能产生Visual。++的代码,则需选用相应的两个通用标志位均为1的语句或者代码。即把通用标志置为3即可。(2)编辑库结构如下表编辑库是用来编辑源文本代码的数据库,可以用于编辑文本代码,并且实时监控的语法规则是否正确。(3)翻译库为一系列有关对源文本文件进行翻译的关系数据库,翻译库与字符库也可以以编号为主键连接起来,组成一个大的数据库。翻译库包含多种软件开发工具的语法信息(比如VB语法库,¥0++语法库,BORLAND0++语法库)以及有关索引构成。比如,对于所应生成的语句,语法库应包含标识符内容及其应插入的位置信息。对于需要加头文件信息或者伪编译指令和其他说明语句的,自动加上这些语句。总之应完全符合软件开发工具语法规则的要求。具体的翻译过程是,首先系统扫描源文本语句,当搜索到关键字,联系上下文,根据不同高级语言和软件开发工具的语法库进行翻译。翻译后生成符合某种软件开发工具要求的目标文本代码文件及其组件。反向翻译的过程与此类似。以上文字只是说明本发明的实现途径,以上问题现有技术完全可以解决,具体的软件技术问题并非本发明的重点,一些技术细节需加修缮,未必完美,但已经可以表明本发明可以运用简单的技术就可以实现,也可以运用更先进的现有技术更简洁的解决上述问题。本发明的流程为(l)正向翻译流程打开系统后,用户可以选择使用何种文字,或釆用默认文字,加载与普通软件开发工具相似的窗口界面,然后在字符库中抽取系统字符放在系统窗口的菜单中作为菜单的文本。然后用户可选择进入编辑界面,首先编辑通用标志逻辑位的数值,然后系统将启用相应标志位为1的标识符库以及相应翻译库,例如如果选定生成BORLAND0++和¥0++通用的代码,则启用相应两个标志位都为1的代码库和相应的这两种##库,然后编辑源文本代碍,系统实时检查语法是否正确,编辑完成后保存源文本代码文件,然后可对文本源代码进行翻译,在翻译以前,选择生成何种软件开发工具的代码(比如选定¥〔++或者BORLANDC++),翻译生成符合相应软件开发工具所规定的语法的代码,并把源文本代码文件的语句作为注释放在相应目标文本代码语句的后面,然后程序将这些代码文件组装成普通软件开发工具所规定的文件格式的各种文件组件。最后由普通软件开发工具(如BORLAND0++或者¥0++)把这些文件编译链接成一个完整的软件。在编制生成对象的程序时,为方便编程可以生成用户需要生成的对象。这些对象,由系统生成能够为相应软件开发工具正确打开和使用的文件。为了方便调试,本发明在将源文本代码翻译成目标文本代码的时候,把源文本代码语句及其注释,作为相应目标代码语句的注释列在此语句的后面。也可以把这些注释修改后,重新转化为源文本代码,重新进行翻译。(2)反向翻译的流程打开本系统后,选择反向翻译菜单,然后选择将要进行反向翻译的是使用何种软件开发工具开发的代码(如BORLAND0++或者¥0++),系统根据此项选择搡作通用标志,然后根据通用标志提取相应的标识符库和翻译库,然后打开所需反向翻译的文件。最后翻译成通用高级语言程序。如果反向翻译过程有不可识别的代码或错误的格式,系统提示出错信息和出错位置。交由用户处理。系统的扩充,当生产软件开发工具的厂商发布新版本的工具时,只需在字符库,编辑库和相应的翻译库增加新的记录即可。本发听所述方法是(1)使用某种母语字符库,以字裔—库中的字符作为开发环境^单以及所开发的应用程序中的标识符f包括关键字,函数名,常量名,类名等等)的使用文字,这样可以实现易学习易释读;(2)翻译库可以把母语代码翻译为相应软件开发工具能正确使用的代码程序。在各种软件开发工具环境下不同的标识符具有相同功能,统一对应相同的母语标识符。这样可以实现母语代码的通用性。U)使用通用标志,选定生成某种软件开发工具可以使用的代码。有些标识符是某些高级语言或者开发工具特有的功能,所以标识符或者代码应使用通用标志,准确描述某标识符是否能被正确翻译。已经编辑的源文本代码如果将翻译生成在不同开发工具上使用的目标文本代码,也可以知道哪些代码可以使用,哪些代码需要修改。从而可以在不同的开发环境下正确使用源文本代码资源。(4)把用户编辑的源文本代码程序翻译生成目标文本代码,然后把源文本代码及其注释作为目标文本代码的注释放在相应语句的后面,以方便调试,对错误代码进行定位和修改。(5)把生成的目标文本代码用相应的软件开发工具编译链接成可执行的目标程序。(6)系统也可以利用翻译库可以对使用某一软件开发工具编制的源代码程序进行反向翻译,生成通用高级语言的母语代码,生成的母语代码又可以被翻译成可被其它软件开发工具使用的程序代码。本系统可以作为一个桥梁,实现在不同软件开发工具下开发的代码的互换互译即把在其它软件开发工具上开发的程序源代码反向翻译成通用高级语言程序代码。本发明的有益效果是可以最大限度的使用现有资源(函数库,类型库,类库等等),而不需研发新的软件开发工具,成本低廉,能够紧跟时代潮流,使用最新的代码资源,而且使用母语标识符,能够使不同语言背景的人们方便的使用和掌握。使用通用标志和统一的标识符能够安全的实现不同软件开发环境下的代码的互译和通用。而且人们不需要再掌握各种不同的编程语言和工具,而使用一种通用语言。这种通用语言可以说是一种高级语言的高级语言,又可以作为一种不同高级语言程序互译工具,对于软件而言是一种世界语。对于中国而言,可以低成本提供一种汉化的软件开发工具,并且可以使用现有最新的代码资源。从而缩小与软件发达国家的差距,为更多的人们掌握和接受。权利要求1.一种能够使用母语开发多种高级语言程序的系统和方法,是能够使用户与具体的程序开发工具和高级语言相分离,使用母语表达算法思想的工具。该系统包括首先创制一种通用高级语言,包括自创用母语标示的标识符(也可根据需要选择其他语言文字)和自创的语法规则,在不同软件开发工具下具有相同功能的不同标识符对应这种通用高级语言的相同标识符,特有功能的标识符采用特有的标识符,所有标识符使用通用标志表示其在不同程序开发环境的通用性;具体包括一个母语字符库,一个编辑和翻译库以及模块用于翻译产生目标文本代码。其特征是使用母语菜单操作本系统,然后使用母语标识符库编辑母语源文本代码程序后,把源文本代码翻译成目标文本代码,由程序开发工具把这些目标文本代码编译链接成程序。或者把在某种软件开发环境下开发的程序源代码反向翻译成通用的母语文本代码。这样交替操作翻译和反向翻译就可以实现在不同软件开发环境下开发的软件的互通和互译。2.根据权利要求1所述的系统和方法,其特征是系统不直接产生程序,而是产生程序源代码。利用现有程序开发工具把这些代码编译链接构建程序。由此可以充分利用现有的开发工具的代码资源。3.根据权利要求1所述的系统和方法,其特征是使用创制的母语标识符集和语法规则用于构建一种新的高级语言,该高级语言标识符所代表的功能是各种程序开发工具的标识符能实现的所有功能的并集。相同的功能使用相同的标识符。特有的功能使用特有的标识符。4.根据权利要求1所述的系统和方法,其特征是使用通用标志来表示标识符的通用性,该通用标识可以准确描述某代码适用于何种软件开发工具,能否正确翻译出相应的代码。目的是使新创制的这种高级语言的代码资源,可以安全的实现通用性。5.根据权利要求1所述的系统和方法,其特征是翻译生成目标文本代码后面的注释是源文本代码及其注释。以方便调试。最后组成统一的代码文件。6.根据权利要求1所述的系统和方法,其特征是可以把翻译生成的目标文本代码后面的注释重新转化为源文本代码和注释。以方便在调试过程中修改。7.根据权利要求1所述的系统和方法,其特征是使用字符库提供系统界面和编程使用的字符。字符库主键相同的不同字段的字符意义相同可以互换,来实现不同母语语种标识符和系统菜单文本的转换。8.根据权利要求1所述的系统和方法,其特征是系统可以对在其它软件开发工具上开发的程序代码进行反向翻译,生成通用高级语言的代码。交替搡作正向翻译和反向翻译,可以实现在不同软件开发工具上开发的程序源代码之间进行互译。全文摘要一种能够使用母语开发多种高级语言程序的系统和方法,将创制一种易学易用的通用高级语言,可以使用母语或选择使用其他语言文字编程,减少了不同国家人们的学习成本。并且可以将母语代码翻译生成符合某软件开发工具规定的程序代码,从而继承现有了软件开发工具的代码资源。也可以利用反向翻译,实现在不同软件开发工具上开发的程序源代码之间进行互向翻译。本系统包括一个母语字符库,一个编辑库和翻译库以及模块。使用母语字符库编辑母语的源文本代码后,把源文本代码翻译成目标文本代码,由某一软件开发工具把这些目标文本代码编译链接成目标程序。或者把在某一软件开发工具上开发的程序源代码进行反向翻译,生成母语标示的通用高级语言程序。文档编号G06F9/44GK101174207SQ20071011413公开日2008年5月7日申请日期2007年11月5日优先权日2007年11月5日发明者马旭东申请人:马旭东
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1