CN1889043A - 计算机编程中使用人类自然语言的方法 - Google Patents
计算机编程中使用人类自然语言的方法 Download PDFInfo
- Publication number
- CN1889043A CN1889043A CN 200610047249 CN200610047249A CN1889043A CN 1889043 A CN1889043 A CN 1889043A CN 200610047249 CN200610047249 CN 200610047249 CN 200610047249 A CN200610047249 A CN 200610047249A CN 1889043 A CN1889043 A CN 1889043A
- Authority
- CN
- China
- Prior art keywords
- statement
- class methods
- function
- natural
- source code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种计算机编程中使用人类自然语言进行程序设计的方法,包括在公知计算机上装入编程软件***的步骤、显示源代码编辑窗口并运行的步骤,其特征在于还包括输入自然语句、类方法和/或函数声明项及调用自然语句、类方法和/或函数的步骤;第一次扫描源代码并生成自然语句、类方法和/或函数声明项汇总表的步骤;第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤和编译成可执行程序的步骤。用户可根据声明语句中的描述字及参数表,在编程中将自然语言转换到常用高级编程语言去执行。可使用英语、汉语等语种的单、双字节文字、空格、逗号等进行描述,使程序更易于理解和交流。
Description
技术领域
本发明涉及计算机编程,尤其涉及在编程中使用人类自然语言进行程序设计的方法。
背景技术
在流行的编程工具中,大部分是可编译为机器语言的高级语言,而非人们使用的自然语言,如VB、C、C++、PASCAL、JAVA、C#等语言,其语法是从“机器语言”→“汇编语言”→“高级语言”这样逐步发展起来的,用自然语言进行编程国外公司有过尝试,但终以失败而告终,究其原因,无非三点:一是来自传统编程语言的思维定式的抵制;二是因民族、语言、文化、传统不同而产生的各种冲突;三是技术上实现较为复杂和困难。
在主流的高级编程语言中,标识符(ID)通常都被限制为“字母、数字、下划线”,这导致某些“双字节文字”如汉字不能作为标识符使用;另外,标识符中不允许有空格和标点的规定,也极大地限制和阻碍了自然语言在程序代码中的应用,特别是英语编程的使用。高级编程语言中使用函数或类方法调用的一般是采用在函数名称或类方法名称后附加参数表的形式,往往又导致其语序与人类自然语言迥然不同。迄今为止,全球有数百个民族,数万种语言,被广泛使用的语言也有数十种。不同的民族,不同的语言,其相异之处不仅仅是表面上的形式不同,还在于来自更深层次上的文化冲突。因此无法提出一个全面的解决方案。计算机语言作为人与计算机之间沟通的渠道,不应该是一种障碍,而应该是一种桥梁。现代的编程随着工程越来越复杂,代码行越来越多,理解代码的含义已然成为开发和维护软件的一个较大的成本支出,解读程序已经成为当前亟待解决的问题。
解决上述问题的出路在于,将所有的人类自然语言当作一个整体来看,虽然每种语言都有自己的语法与时态,但相对于某个具体民族语言的语法与时态却是相对固定的。在此基础上,让用户自行定义自己的自然语言格式后再使用到编程中,将自然语言中相关的参数标记出来,让编程环境去自动处理这些参数表,或直接转换为传统高级语言的格式,就可以完美地实现用自然语言进行程序设计的目标,从而使程序代码更易于阅读、理解和维护,方便编程用户的使用。
发明内容
本发明的提出,旨在计算机编程语言的源代码规则中,引入类似人类自然语言的表达方式,设计一种使程序源代码对编程等更加友好的计算机编程中使用自然语言的方法。
本发明的技术解决方案是这样实现的:
一种计算机编程中使用人类自然语言的方法,包括在公知计算机上装入编程软件***的步骤、显示源代码编辑窗口并运行的步骤,其特征在于还包括:
输入自然语句、类方法和/或函数声明项及调用自然语句、类方法和/或函数的步骤;
第一次扫描源代码并生成自然语句、类方法和/或函数声明项汇总表的步骤;
第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤;
和编译成可执行程序的步骤;
所述的第一次扫描源代码并生成自然语句、类方法和/或函数声明项的步骤,允许在建立自然语句声明项汇总表或进入第二次源代码扫描过程中进行匹配。
所述的第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤,允许在将自然语句转换为类方法或函数与经过处理后直接编译生成程序过程中进行匹配。
与现有技术相比较,本发明的优点主要表现在:
1、与现有的高级语言相比,本发明可以采用UNICODE代码文字进行名称的定义,如英文、中文、日文、韩文等。用户可用人类自然语言进行语句的描述,充分利用了母语的优势。
2、现有的高级语言采用的是“函数名称或类方法名+参数表”的语法规则,本发明可按人类自然语言规则表达,并且若干参数可放在任意需要的位置。根据人类自然语言规则定义语句结构,实现了编程环境的人性化,代码易于理解和维护。
3、声明时,声明项中人类自然语言参数的顺序与高级语言对应的参数顺序可以不一致,在编译时实现自动匹配。
4、本发明可以使用空格、逗号等除单引号与尖括号以外的所有标点符号,符合人类自然语言的语法规则。
附图说明
本发明有2个附图,即
图1为本发明的计算机编程中运用人类自然语言进行程序设计的方法的流程图;
图2是本发明的虚拟模块框图;
图1为本发明的说明书摘要附图。
具体实施方式
如图1所示,一种计算机编程中使用人类自然语言的方法,包括在公知计算机上装入编程软件***的步骤、显示源代码编辑窗口并运行的步骤,其特征在于还包括:输入自然语句、类方法和/或函数声明项及调用自然语句、类方法和/或函数的步骤;第一次扫描源代码并生成自然语句、类方法和/或函数声明项汇总表的步骤;第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤;和编译成可执行程序的步骤。
1、声明自然语句或类方法
用户使用自然语言书写代码之前要先进行预声明,声明项规则如下:
输入用户定义的语句时,应有一个自然语句声明项的关键字,如“FRINDNAME”或“友好名称”,后接空格;空格后为描述文字和参数集的自然语句,中间可夹插若干参数;再接等号“=”;等号后为被实际调用的类方法或函数和参数;最后以分号“;”结束一行。
编程工具的类库之中内置相应预定义自然语言的声明项,供用户使用。
用户调用“类方法”时也需对其中的自然语句进行声明,“自然语句声明项”应放在“类方法声明项”的后面,以一对尖括号“<”和“>”括住,内以一个自然语句关键字为前导,如“FRIENDNAME”或“友好名称”;后接等号“=”,等号后面以两个单引号“’”括住自然语句;前述“类方法声明项”的参数表中的参数则按从左到右的顺序以<1>,<2>……表示,填在自然语句中。
编程工具的内置类库中也按上述规则预定义自然语句,供用户使用。
声明格式1:
自然语句关键字′自然语句′=类方法或函数和参数;
例如:
友好名称′在<画板1>上<位置X>,<位置Y>处显示<文本>′=画板1.显示(位置X,位置Y,文本);
上述声明项中还规定了标记符号的使用方法:
1)声明时,一对单引号“′”用作括住整个自然语句。
2)一对尖括号“<”和“>”用来标记参数。
3)自然语句中可以使用除半角单引号“′”和左尖括号“<”外的所有中英文字符、符号。
又如:
友好名称′在<画板>上<位置X>,<位置Y>处显示<我的文本>′=画板.显示(位置X,位置Y,我的文本);
所述等号两侧对应参数的顺序可不一致,上例也可以写成:
友好名称′显示<我的文本>在<画板>上<位置X>,<位置Y>处′=画板.显示(位置X,位置Y,我的文本);
声明格式2:
类方法、函数和参数<自然语句关键字=′自然语句′>
例如:
类类1
{
整数型 相加(整数型 参数1,整数型 参数2)<友好名称=′把<1>和<2>相加′>
{
……
}
}
2、使用声明后的自然语句或类方法
调用时直接使用自然语句描述部分格式,将实际数据填充在参数位置,用前后两个单引号“’”括住和用结束符分号“;”结束语句行。
例如:
′在<画板1>上10,12处显示″abc;
可选调用时,若不在自然语句中指明参数值,在后接的括号中补充说明参数值亦可。
例如:
′在<画板1>中写<文本>’(文本=“ABC”);
′在<画板>中写<“ABC”>’(画板=画板1);
′在<画板>中写<文本>’(画板=画板1,文本=“ABC”);
调用自然语句时,也可以嵌套调用。
例如:
‘打印<文本>n次’(文本=‘把<n2>转换到文本’(n2=123),n=3);
上述代码中,“打印<文本><n>次”是一个自然语句,“把<n2>转换到文本”也是一个自然语句,第一个自然语句通过嵌套的方式调用第二个自然语句。
调用类方法时,凡是在程序中使用自然语句,必须使用两个单引号“’”括住。在对象名后接句点的后面书写“类方法”声明过的自然语句。
例如:
类1对象1;
整数型n=对象1.′把1和2相加′;
可选调用时,若不在自然语句中指明参数值,只需在后接的括号中补充说明参数值即可,例如:
整数型n=对象1.′把1和<j>相加′(j=2);
3、在英文中使用自然语句
在英语或其他语种中,虽有时态或语法格式的不同,以致参数的位置与顺序不同,但由于在声明时与使用时的内容是一一对应的,因此自然语句的使用并无障碍。
例如:
‘Print<Text>for<n>times(Text=Convert<n2>to string(n2=123),n=3);’
或者,如以下中文自然语句:
′在<画板1>上10,10处显示″Hello world!;
在英语中则可能用以下自然语句表示:
‘Display″Hello world!″in<Painter>at 10,10;’
4、编译程序源代码
源代码编译为可执行文件时,对源代码的处理步骤如下:
1)当用户下达编译命令后,首先对完成后的源代码进行第一次逐行扫描,匹配每行代码中是否有自然语句声明项的关键字,如“友好名称”或“FRIENDNAME”,如果有,那么就提取结束符前的整句声明项内容到内存中,并与编程语言类库中预定义的“自然语句”声明项汇总,生成一个“自然语句声明项汇总表”,保存在内存或文件中。生成“自然语句声明项汇总表”的过程可在代码输入过程中通过检查是否输入一行代码后立即完成。
2)第二次逐行扫描源代码,匹配源代码中的字符串与“自然语句声明项汇总表”中的自然语句描述是否一致,如果匹配一致,转而调用声明时的类方法或函数,同时根据声明时参数的一一对应关系传送相应的参数值给实际调用的类方法或函数。
3)经过以上处理,程序中的自然语句代码已经转换为实际调用的类方法或函数和参数代码。接下来按常规编译模式编译此代码即可。
Claims (3)
1、一种计算机编程中使用人类自然语言的方法,包括在公知计算机上装入编程软件***的步骤、显示源代码编辑窗口并运行的步骤,其特征在于还包括:
输入自然语句、类方法和/或函数声明项及调用自然语句、类方法和/或函数的步骤;
第一次扫描源代码并生成自然语句、类方法和/或函数声明项汇总表的步骤;
第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤;
和编译成可执行程序的步骤。
2、根据权利要求1所述的计算机编程中使用人类自然语言的方法,其特征在于所述的第一次扫描源代码并生成自然语句、类方法和/或函数声明项的步骤,允许在建立自然语句声明项汇总表或进入第二次源代码扫描过程中进行匹配。
3、根据权利要求1所述的计算机编程中使用人类自然语言的方法,其特征在于所述的第二次扫描源代码,将自然语句转换为实际调用的类方法或函数的步骤,允许在将自然语句转换为类方法或函数与经过处理后直接编译生成程序过程中进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610047249 CN1889043A (zh) | 2006-07-17 | 2006-07-17 | 计算机编程中使用人类自然语言的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200610047249 CN1889043A (zh) | 2006-07-17 | 2006-07-17 | 计算机编程中使用人类自然语言的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1889043A true CN1889043A (zh) | 2007-01-03 |
Family
ID=37578321
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200610047249 Pending CN1889043A (zh) | 2006-07-17 | 2006-07-17 | 计算机编程中使用人类自然语言的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1889043A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294470A (zh) * | 2013-05-27 | 2013-09-11 | 上海华兴数字科技有限公司 | 内嵌自然语言的编程语言*** |
CN103543997A (zh) * | 2012-07-17 | 2014-01-29 | 于丙超 | 三字编程法 |
CN104484156A (zh) * | 2014-12-16 | 2015-04-01 | 用友软件股份有限公司 | 多语言公式的编辑方法、编辑***和多语言公式编辑器 |
CN104778071A (zh) * | 2015-04-02 | 2015-07-15 | 谢玮琦 | 智能规则多语言类型解释***及其创建方法 |
CN106250161A (zh) * | 2016-08-04 | 2016-12-21 | 深圳市微我科技有限公司 | 一种基于数据表的自然语言混合编程方法 |
CN106250159A (zh) * | 2016-08-04 | 2016-12-21 | 深圳市微我科技有限公司 | 一种利用自然语言的混合编程方法 |
CN107247612A (zh) * | 2017-04-25 | 2017-10-13 | 北京航天飞行控制中心 | 作业描述方法及装置 |
CN107329796A (zh) * | 2017-06-30 | 2017-11-07 | 海南职业技术学院 | 一种基于自然语言的游戏开发装置及*** |
CN110221825A (zh) * | 2019-06-10 | 2019-09-10 | 周登祥 | 一种在计算机上实现母语编程的方法 |
CN110727428A (zh) * | 2019-12-19 | 2020-01-24 | 杭州健戎潜渊科技有限公司 | 一种转换业务逻辑层代码的方法、装置和电子设备 |
CN113366430A (zh) * | 2019-01-10 | 2021-09-07 | 布莱恩认知私人有限公司 | 自然解决方案语言 |
-
2006
- 2006-07-17 CN CN 200610047249 patent/CN1889043A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543997A (zh) * | 2012-07-17 | 2014-01-29 | 于丙超 | 三字编程法 |
CN103294470A (zh) * | 2013-05-27 | 2013-09-11 | 上海华兴数字科技有限公司 | 内嵌自然语言的编程语言*** |
CN104484156B (zh) * | 2014-12-16 | 2017-04-05 | 用友网络科技股份有限公司 | 多语言公式的编辑方法、编辑***和多语言公式编辑器 |
CN104484156A (zh) * | 2014-12-16 | 2015-04-01 | 用友软件股份有限公司 | 多语言公式的编辑方法、编辑***和多语言公式编辑器 |
CN104778071A (zh) * | 2015-04-02 | 2015-07-15 | 谢玮琦 | 智能规则多语言类型解释***及其创建方法 |
CN106250159A (zh) * | 2016-08-04 | 2016-12-21 | 深圳市微我科技有限公司 | 一种利用自然语言的混合编程方法 |
CN106250161A (zh) * | 2016-08-04 | 2016-12-21 | 深圳市微我科技有限公司 | 一种基于数据表的自然语言混合编程方法 |
CN106250159B (zh) * | 2016-08-04 | 2020-12-22 | 深圳市微我科技有限公司 | 一种利用自然语言的混合编程方法 |
CN107247612A (zh) * | 2017-04-25 | 2017-10-13 | 北京航天飞行控制中心 | 作业描述方法及装置 |
CN107247612B (zh) * | 2017-04-25 | 2024-05-31 | 北京航天飞行控制中心 | 作业描述方法及装置 |
CN107329796A (zh) * | 2017-06-30 | 2017-11-07 | 海南职业技术学院 | 一种基于自然语言的游戏开发装置及*** |
CN113366430A (zh) * | 2019-01-10 | 2021-09-07 | 布莱恩认知私人有限公司 | 自然解决方案语言 |
CN117149163A (zh) * | 2019-01-10 | 2023-12-01 | 布莱恩认知私人有限公司 | 自然解决方案语言 |
CN110221825A (zh) * | 2019-06-10 | 2019-09-10 | 周登祥 | 一种在计算机上实现母语编程的方法 |
CN110727428A (zh) * | 2019-12-19 | 2020-01-24 | 杭州健戎潜渊科技有限公司 | 一种转换业务逻辑层代码的方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1889043A (zh) | 计算机编程中使用人类自然语言的方法 | |
CN1181428C (zh) | 软件翻译的内省编辑器***、程序和方法 | |
Grönniger et al. | Monticore: a framework for the development of textual domain specific languages | |
CN104461484B (zh) | 前端模板的实现方法和装置 | |
CN108399064B (zh) | 基于Qt开发的多语言词条生成方法 | |
CN1371499A (zh) | 传统数据结构的对象特性元模型仿真器 | |
CN1261867C (zh) | 软件中语言资源本地化的实现方法 | |
CN104063635B (zh) | 目标文件的保护方法及保护*** | |
CN1823323A (zh) | 用于执行本机绑定的方法和装置 | |
CN1842081A (zh) | 扩展巴克斯范式字符串模式匹配和解析的方法及装置 | |
US20080244541A1 (en) | Code translator and method of automatically translating modeling language code to hardware language code | |
CN1808377A (zh) | 由非专属语言驱动的通用序列图生成器 | |
CN1908931A (zh) | 一种文字的可变数据排版的方法 | |
CN1652106A (zh) | 基于语言知识库的机器翻译方法与装置 | |
CN1932802A (zh) | 具有文本提取功能的主机设备及其提取方法 | |
CN1855053A (zh) | 用于执行java虚拟机的指令的方法和设备 | |
CN108595171A (zh) | 对象的模型生成方法、装置、设备及存储介质 | |
CN1265307C (zh) | 语言本地化中特征字符串的提取与替换方法 | |
CN1949169A (zh) | 电视机软件升级方法 | |
CN1877531A (zh) | 一种嵌入式编译体系扫描器的实现方法 | |
CN1108572C (zh) | 汉语和日语的双向机械翻译机 | |
CN103886095B (zh) | 跨平台目标文件复用方法 | |
CN100338595C (zh) | 定义对象层次的说明机制 | |
CN1855052A (zh) | 一种从树型结构数据和一组代码片断结构体生成目标源代码的方法 | |
CN1667610A (zh) | 一种基于标记的xml快速解码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |