CN106227531B - 一种在计算机上实现母语编程的方法 - Google Patents

一种在计算机上实现母语编程的方法 Download PDF

Info

Publication number
CN106227531B
CN106227531B CN201610581217.5A CN201610581217A CN106227531B CN 106227531 B CN106227531 B CN 106227531B CN 201610581217 A CN201610581217 A CN 201610581217A CN 106227531 B CN106227531 B CN 106227531B
Authority
CN
China
Prior art keywords
statement
alias
title
keyword
programming
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.)
Active
Application number
CN201610581217.5A
Other languages
English (en)
Other versions
CN106227531A (zh
Inventor
周登祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhou Dengxiang
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201610581217.5A priority Critical patent/CN106227531B/zh
Publication of CN106227531A publication Critical patent/CN106227531A/zh
Application granted granted Critical
Publication of CN106227531B publication Critical patent/CN106227531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明属于计算机应用领域,具体涉及一种在计算机上实现母语编程的方法。一种在计算机上实现母语编程的方法,包括如下步骤:(1)、设置不同人类语言下的编程语言的关键字和预编译指令;(2)设置依赖的代码库接口声明的名称的别名。

Description

一种在计算机上实现母语编程的方法
技术领域
本发明属于计算机应用领域,具体涉及一种在计算机上实现母语编程的方法。
背景技术
现在的C/C++等计算机编程语言是基于英语的,虽然其支持使用Unicode作为标识符,但是它的关键字是英语,提供的基础库编程接口是英语,对于许多不熟悉英语的人来说,要想编写C/C++代码,这些英语名称对他们来说是有阻碍的。
发明内容
发明目的:本发明针对上述现有技术存在的问题做出改进,即本发明公开了一种在计算机上实现母语编程的方法,让C/C++等计算机编程语言实现母语编程,通过设置不同人类语言下的编程语言的关键字和预编译指令和设置程序库接口声明的别名,让人们可以使用母语来编程。
技术方案:一种在计算机上实现母语编程的方法,包括如下步骤:
(1)、设置不同人类语言下的编程语言的关键字和预编译指令;
(11)新增人类语言预编译指令,用来声明用到的编程语言关键字和预编译指令的人类语言;
(12)在编写的代码开头,使用步骤(11)中增加的人类语言预编译指令声明用到的编程人类语言类型集合;
(13)在编译器对编写完成的代码作词法分析的阶段,解析到步骤(12)中的声明用到的编程人类语言类型集合时,创建人类语言预编译指令指定的人类语言的编程语言关键字标识符集合散列表和编程语言预编译指令标识符集合散列表,编程语言关键字标识符集合散列表中包含关键字字符串和关键字类型,编程语言预编译指令标识符集合散列表中包含预编译指令字符串和预编译指令类型;
(14)在判断标识符是否为关键字时,先使用默认的标识符类型判断,若没有查询到该标识符,则查询步骤(13)中创建的编程语言关键字标识符集合散列表,判断是否为关键字,如果是关键字,则查询该关键字类型;
(15)对预编译指令类型判断时,先使用默认的预编译指令类型进行判断,若判断失败,则查询步骤(13)中创建的编程语言预编译指令标识符集合散列表,并判断预编译指令的类型;
(2)设置依赖的代码库接口声明的名称的别名;
(21)新增别名定义关键字,用来定义声明名称的别名;
(22)使用步骤(21)中的别名定义关键字定义代码库接口声明名称的别名,所述声明名称的别名的内容包含别名名称、原始名名称和原始名名称的名称路径;
(23)当编程需要使用代码库接口时,包含步骤(22)中定义代码库接口声明的名称别名的代码;
(24)当编译器解析到步骤(22)中定义代码库接口声明名称的别名时,根据原始名名称的名称路径,找到原始名名称所属的声明上下文,在原始名声明记录所属的声明上下文内,查询出以原始名为名称的声明记录的集合,为每一条以该原始名为名称的声明记录用别名创建一条别名声明记录,别名声明记录使用别名作为名称,别名声明记录包含对应的原始声明记录的引用,把新建的别名声明记录增加到原始名名称所属的声明上下文;
(25)在编译器根据名称查询到声明记录时,先判断声明记录的类型,如果是别名声明记录,则用别名声明记录对应的原始声明记录。
有益效果:本发明公开的一种在计算机上实现母语编程的方法具有以下有益效果:
1、能够方便增加对某一种人类语言编程的支持,当需要支持新的人类语言编程时,需要设置该人类语言下的编程语言的关键字和预编译指令,设置编程语言的基础库接口的别名和设置需要的第三方库接口的别名;
2、使用该方法,开发人员可以使用熟悉的人类语言编程;
3、不同人类语言写出的代码可以相互通用,提供不同人类语言的别名设置,就可以调用不同人类语言编写出的代码库;
4、可以使用别的人类语言开发出的代码,代码中可以同时出现多种人类语言编写的程序;
5、可以重用现有的代码库。提供别名设置,就可以让现有的代码库支持多种人类语言。
附图说明
图1为声明的名称路径的树状图;
图2为声明记录在编译器内的树状图;
图3为增加别名声明记录后声明记录在编译器内的树状图。
具体实施方式
下面对本发明的具体实施方式详细说明。
一种在计算机上实现母语编程的方法,包括如下步骤:
(1)、设置不同人类语言下的编程语言的关键字和预编译指令;
(11)新增人类语言预编译指令,用来声明用到的编程语言关键字和预编译指令的人类语言;
(12)在编写的代码开头,使用步骤(11)中增加的人类语言预编译指令声明用到的编程人类语言类型集合;
(13)在编译器对编写完成的代码作词法分析的阶段,解析到步骤(12)中的声明用到的编程人类语言类型集合时,创建人类语言预编译指令指定的人类语言的编程语言关键字标识符集合散列表和编程语言预编译指令标识符集合散列表,编程语言关键字标识符集合散列表中包含关键字字符串和关键字类型,编程语言预编译指令标识符集合散列表中包含预编译指令字符串和预编译指令类型;
(14)在判断标识符是否为关键字时,先使用默认的标识符类型判断,若没有查询到该标识符,则查询步骤(13)中创建的编程语言关键字标识符集合散列表,判断是否为关键字,如果是关键字,则查询该关键字类型;
(15)对预编译指令类型判断时,先使用默认的预编译指令类型进行判断,若判断失败,则查询步骤(13)中创建的编程语言预编译指令标识符集合散列表,并判断预编译指令的类型;
增加预编译指令__0__,该指令用来声明使用到的除英语外的编程人类语言类型集合。例如1为中文。
#__0__1//声明使用中文编程语言关键字和预编译指令
#定义大小12345
整方法1(){
整甲=10;
整乙=大小;
整丙=甲+乙;
返回丙;
}
该中文代码相当于英语代码:
#define大小12345
int方法1(){
int甲=10;
int乙=大小;
int丙=甲+乙;
return丙;
}
(2)设置依赖的代码库接口声明的名称的别名;
(21)新增别名定义关键字,用来定义声明名称的别名;
(22)使用步骤(21)中的别名定义关键字定义代码库接口声明名称的别名,所述声明名称的别名的内容包含别名名称、原始名名称和原始名名称的名称路径;
(23)当编程需要使用代码库接口时,包含步骤(22)中定义代码库接口声明的名称别名的代码;
(24)当编译器解析到步骤(22)中定义代码库接口声明名称的别名时,根据原始名名称的名称路径,找到原始名名称所属的声明上下文,在原始名声明记录所属的声明上下文内,查询出以原始名为名称的声明记录的集合,为每一条以该原始名为名称的声明记录用别名创建一条别名声明记录,别名声明记录使用别名作为名称,别名声明记录包含对应的原始声明记录的引用,把新建的别名声明记录增加到原始名名称所属的声明上下文;
(25)在编译器根据名称查询到声明记录时,先判断声明记录的类型,如果是别名声明记录,则用别名声明记录对应的原始声明记录。
一个声明原始名名称的名称路径是指在代码逻辑上,从全局作用域开始,到达这个声明的路径,可以用树形图表示。例如:有代码:
const int A=10;
struct SS{int a;int b;};
namesapce NN{class CC{int a;int b;};
class DD{void f();void f(int i);};}
这些代码的声明的名称路径的树状图如图1所示,
声明记录是指在编译器内,编译器为每个声明创建的数据段,该数据段包含声明名称,声明类型等内容。
原始名名称所属的声明上下文指的是在编译器内,编译器对声明及声明路径树形结构的表示。对于声明路径的根,用全局声明上下文表示,其他声明用树形结构中的节点表示。以上的代码的声明记录在编译器内的树状图如图2所示。
增加新关键字__1__,用来定义声明名称的别名。
调用以下定义声明名称的别名代码:
__1__甲=A;
__1__乙=SS;
__1__丁=SS::a;
__1__戊=SS::b;
__1__丙=NN;
__1__己=NN::CC;
__1__丁=NN::CC::a;
__1__戊=NN::CC::b;
__1__庚=NN::DD;
__1__丑=NN::DD::f;
编译器内对声明记录的表示的树状图如图3所示。
在包含定义声明名称的别名代码后,可以使用以下中文来调用这些声明:
#__0__1
丙::己某;
某.丁=甲;
某.戊=甲;
庚某2;
某2.丑();
某2.丑(某.丁);
上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (1)

1.一种在计算机上实现母语编程的方法,其特征在于,包括如下步骤:
(1)、设置不同人类语言下的编程语言的关键字和预编译指令;
(11)新增人类语言预编译指令,用来声明用到的编程语言关键字和预编译指令的人类语言;
(12)在编写的代码开头,使用步骤(11)中增加的人类语言预编译指令声明用到的编程人类语言类型集合;
(13)在编译器对编写完成的代码作词法分析的阶段,解析到步骤(12)中的声明用到的编程人类语言类型集合时,创建人类语言预编译指令指定的人类语言的编程语言关键字标识符集合散列表和编程语言预编译指令标识符集合散列表,编程语言关键字标识符集合散列表中包含关键字字符串和关键字类型,编程语言预编译指令标识符集合散列表中包含预编译指令字符串和预编译指令类型;
(14)在判断标识符是否为关键字时,先使用默认的标识符类型判断,若没有查询到该标识符,则查询步骤(13)中创建的编程语言关键字标识符集合散列表,判断是否为关键字,如果是关键字,则查询该关键字类型;
(15)对预编译指令类型判断时,先使用默认的预编译指令类型进行判断,若判断失败,则查询步骤(13)中创建的编程语言预编译指令标识符集合散列表,并判断预编译指令的类型;
(2)设置依赖的代码库接口声明的名称的别名;
(21)新增别名定义关键字,用来定义声明名称的别名;
(22)使用步骤(21)中的别名定义关键字定义代码库接口声明名称的别名,所述声明名称的别名的内容包含别名名称、原始名名称和原始名名称的名称路径;
(23)当编程需要使用代码库接口时,包含步骤(22)中定义代码库接口声明的名称别名的代码;
(24)当编译器解析到步骤(22)中定义代码库接口声明名称的别名时,根据原始名名称的名称路径,找到原始名名称所属的声明上下文,在原始名声明记录所属的声明上下文内,查询出以原始名为名称的声明记录的集合,为每一条以该原始名为名称的声明记录用别名创建一条别名声明记录,别名声明记录使用别名作为名称,别名声明记录包含对应的原始声明记录的引用,把新建的别名声明记录增加到原始名名称所属的声明上下文;
(25)在编译器根据名称查询到声明记录时,先判断声明记录的类型,如果是别名声明记录,则用别名声明记录对应的原始声明记录。
CN201610581217.5A 2016-07-21 2016-07-21 一种在计算机上实现母语编程的方法 Active CN106227531B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610581217.5A CN106227531B (zh) 2016-07-21 2016-07-21 一种在计算机上实现母语编程的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610581217.5A CN106227531B (zh) 2016-07-21 2016-07-21 一种在计算机上实现母语编程的方法

Publications (2)

Publication Number Publication Date
CN106227531A CN106227531A (zh) 2016-12-14
CN106227531B true CN106227531B (zh) 2019-05-21

Family

ID=57531154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610581217.5A Active CN106227531B (zh) 2016-07-21 2016-07-21 一种在计算机上实现母语编程的方法

Country Status (1)

Country Link
CN (1) CN106227531B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110221825B (zh) * 2019-06-10 2022-11-18 周登祥 一种在计算机上实现母语编程的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174207A (zh) * 2007-11-05 2008-05-07 马旭东 一种能够使用母语开发多种高级语言程序的***和方法
CN102479078A (zh) * 2010-11-26 2012-05-30 苗玉水 汉语语音码计算机汉语编程方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020145B2 (en) * 2005-08-18 2011-09-13 Wave Semiconductor Method and language for process expression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101174207A (zh) * 2007-11-05 2008-05-07 马旭东 一种能够使用母语开发多种高级语言程序的***和方法
CN102479078A (zh) * 2010-11-26 2012-05-30 苗玉水 汉语语音码计算机汉语编程方法

Also Published As

Publication number Publication date
CN106227531A (zh) 2016-12-14

Similar Documents

Publication Publication Date Title
US11036937B2 (en) Contraction aware parsing system for domain-specific languages
CN100489841C (zh) 用于开发自然语言理解应用的方法和集成开发工具
CN112232074B (zh) 实体关系抽取方法、装置、电子设备及存储介质
US11138506B2 (en) Abstraction and portability to intent recognition
TWI735380B (zh) 自然語言處理方法與其計算裝置
Abdelnabi et al. Generating uml class diagram from natural language requirements: A survey of approaches and techniques
Wintner Morphological processing of semitic languages
Anderson Words and paradigms: Peter H. Matthews and the development of morphological theory
Dunham et al. LingSync & the Online Linguistic Database: New models for the collection and management of data for language communities, linguists and language learners
Flickinger et al. The evolution of HPSG
CN103927179A (zh) 一种基于WordNet的程序可读性分析方法
Pinter et al. NYTWIT: A dataset of novel words in the New York Times
CN106227531B (zh) 一种在计算机上实现母语编程的方法
CN105159931B (zh) 用于生成同义词的方法和装置
CN109325217A (zh) 一种文件转换方法、***、装置及计算机可读存储介质
CN103020311B (zh) 一种用户检索词的处理方法及***
Stepanov et al. Language style and domain adaptation for cross-language SLU porting
CN103678607B (zh) 一种情感标注***的构建方法
Kilgarriff Putting the corpus into the dictionary
Wilcock The evolution of text annotation frameworks
WO2011047608A1 (zh) 模式化双语句对形成方法及其形成装置
Moshagen et al. Rich Morphology, No Corpus–And We Still Made It. The Sámi Experience
Di Sciullo et al. Perspectives on morphological complexity
Diffendaffer et al. A Comparative Study of Phonological Processes Between Canadian-French-Speaking and American-English-Speaking Children with Speech Sound Disorders
Reese Natural language processing with java cookbook: over 70 recipes to create linguistic and language translation applications using java libraries

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20190329

Address after: 561300 No. 97 East Suburb Road, Huajiang Town, Guanling Buyi and Miao Autonomous County, Anshun City, Guizhou Province

Applicant after: Zhou Dengxiang

Address before: 100107 Beijing Chaoyang District Tianlangyuan C Block 3 Floor 03 Business (Harvest Incubator 2777)

Applicant before: Beijing Pu Hui Technology Co. Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant