语言程控系统的制作方法

文档序号:16507454发布日期:2019-01-05 09:07阅读:143来源:国知局
语言程控系统的制作方法
本发明涉及一种使用自然语言来控制或编程系统的方法以及一种相应配置的系统。
背景技术
:在人的周围运作、与人互动的技术系统,其出现的问题因其复杂性而无法通过纯粹以计算程序为基础的方法得到解决。人形机器人的控制就是一个例子。出现的技术问题与处理这些问题的可能性方案是如此之多,使其只有在大批专家的参与下才能得到解决。以语言为基础对技术系统与技术应用的控制本身是众所周知的,比如在移动终端设备或机器人程控领域。即便自然语言编程的方法,特别是涉及人与机器的沟通,许多年来一直是研究与开发的对象。没有经过编程方法训练的应用者也应获得通过自然语言控制技术系统的机会。与此相伴经常出现的问题是,自然语言是多义的,对其理解经常依赖上下文,而这又不总是明确无误或直接在场。此外人类思维常常是多方位的,而目前的软件则偏于某一目标,因此普通应用者要掌握它就会比较困难。本发明的目标就是在考虑到上述问题的前提下,基于自然语言改善与简化技术系统的控制或编程。技术实现要素:此目的通过一种具备独立权利要求的特征的方法,系统和数据结构而达到。有利实施例与进一步发展在从属权利要求中呈现。本发明主要建立在一个特定数据结构上,此数据结构在本发明中被命名为字符串-程序代码-组件。该数据结构首先包括一条自然语言的表达表达的定义字符串。其次,此字符串-程序代码-组件包括一条明确归属于定义字符串的程序代码段。它实现一种自然语言归属于的表达的功能。定义字符串与程序代码段紧密相连,不可分割,组成一个功能化的统一体。程序代码段在一定程度上实现定义字符串的语义,也就是说自然语言的表达所指。“自然语言的表达”这一概念在涉及本发明时,此表达包含自然语言中一个或多个词。这一表达只能包含一个或多个其基本形态的词。而该表达优先是自然语言中语法正确的句子。中间形态也是可以的。这样一个数据结构,也就是根据本发明的字符串-程序代码-组件,提供一个完成的、高度封装与功能化的统一体。字符串-程序代码-组件的内在实现向外可以被隐化。如下详细陈述,字符串-程序代码-组件可以通过简单的方式,比如即插即用,被整合到一个系统中,并通过自然语言打开。由此该系统可以通过第三者随机扩展与补充。字符串-程序代码-组件规范化的必要性只局限在最小程度。程序代码段的编制可以通过流行的程序语言如java或c++来完成。因此,通过自然语言控制一个系统的方法优先使用的一个实施方式特别包含在系统中提供多个此前已陈述的字符串-程序代码-组件的步骤中。根据发明的优先实施方式,在众多的此前已陈述的字符串-程序代码-组件中有一个得到进一步发展而支持一种参数输入,籍此该字符串-程序代码-组件的程序代码段所提供的功能可以得到细化。换言之,通过字符串-程序代码-组件的程序代码段实现的功能不是固定而不变的,而是可以由参数输入得到细化。比如一个通过程序代码段实现的对一数据库里日期选择的基本功能可以通过参数进一步细化到其中哪一个表格,并且表格中哪一行被选择。更精确地,至少这可以给字符串-程序代码-组件提供一个自己的参数输入的方法。这一字符串-程序代码-组件被系统的一个控制装置处理后,此参数输入的方法就会被调用,而字符串-程序代码-组件几乎接管了必要参数的记录本身。根据一个替代实施方式,一种字符串-程序代码-组件可以从众多的字符串-程序代码-组件中被设置支持一种参数输入,使此字符串-程序代码-组件的定义字符串对处理字符串-程序代码-组件的系统的控制设施的成分被明确标出是要细化的参数。这里可以使用基本已知的,与“标记”或“注解”相连的软件技术。对一个或多个参数的记录是通过基于对字符串-程序代码-组件的定义字符串的特别标识的控制设施来完成的。不言而喻,此文件中使用的“标识”概念的应用不仅局限于软件技术中基本已知的技术如注解,xml,json等。同样用于实现“标记”的新技术也可以使用。比如编程语言中源代码的保留关键字与相应的编译器以及翻译器的应用。根据另一种实施方式,可以对一种参数,籍此可对通过字符串-程序代码-组件的程序代码段的设置功能特别化(细化)处理,附加一个可随机定义的参数类型。这一类参数类型最有可能不同于在常规的编程语言中已经通晓的原始类型如字符串(string),整型数(integer),浮点数(float),日期(date)与布尔类型(boolean)等。与此相关的参数类型可有特别的计量单位等。随机定义的范畴,如“蔬菜”,也可以作为参数类型。此外,也可以对一种由一种或多种“标准参数”与一种或多种随机定义的参数组合而成的参数类型进行定义或分配。比如对于一种显示温度的参数,可以定义一种包括浮点数(float)与具体的测量单位(摄氏度)的参数类型。通过系统,更好的是字符串-程序代码-组件本身通过以上描述的参数输入来记录参数这一事实具备如下优点:即相对参数的类型或值的错误输入可以在记录时得到即时检验。对特别地,可随机定义的参数类型的预定有助于此。比如倘若一种参数代表一个数字,与其相对应的是可作为附加参数类型的,而且必要的计量单位,(如“米”或“公里”)。因为参数输入的失误造成的错误(否则要在后期,比如应用中才被发现)可以由此而早期被发现与截获。通过特定的字符串-程序代码-组件方法来输入、记录与检验参数特别具有优势。这种方法可以有针对性地调整到字符串-程序代码-组件的程序代码里,而系统本身无须调整。每个程序员可以将根据字符串-程序代码-组件调整的方法加入参数输入,并根据程序代码的具体要求对字符串-程序代码-组件进行调整。一种附加的,可随机定义的参数类型的预定还具备另外一个优点:归属于各种不同参数的各种不同参数类型可以任意顺序地输入。正确的分配唯有根据参数类型,通过参数输入的方法以及系统完成。输入时检验参数类型可以使用以下更详解的模式匹配方法,即一般是通过对输入字符串与字符串-程序代码-组件的定义字符串的比较中得到应用。根据优先的实施方式,通过由众多字符串-程序代码-组件中的至少一个产生的程序代码段提供的功能可以送出返回值。返回值可以是简单的逻辑或者数值,字符串等,但是也可以是复杂的结构,甚至是功能。如此一种返回值可以在自然语言中得到标识或注解,并通过系统将去储存于为其预设的储存区域。在此区域被储存的值在某种意义代表了一种历史或记忆。基于标识此后可以通过字符串-程序代码-组件简单地,使用自然语言地,明确地追溯被储存的返回值。由此则上下文的产生,储存于简单、明确的应用成为可能。返回值与参数一样,可以被分配得到一个随机定义的返回值类型,比如其特征在于对返回值的被分配的计量单位。如在此后控制结构相关章节的进一步陈述,第二种字符串-程序代码-组件可以利用第一字符串-程序代码-组件的返回值,特别是作为通过第二种字符串-程序代码-组件的程序代码段所提供的功能的辨别参数。如果与有条件的指令相关,此种利用先前字符串-程序代码-组件的返回值的方法可以特别被优先应用。根据第一优先实施方式,此系统在接收常规下包括自然语言表述的输入字符串时,如果这输入字符串按照预定的相似度显示与字符串-程序代码-组件的定义字符串有预定的相似度,通过程序代码段实现的功能就会执行。简而言之,如果系统接收到自然语言的,而且本质上与字符串-程序代码-组件的定义字符串相符的输入,字符串-程序代码-组件的功能就会被启动。比较输入字符串与字符串-程序代码-组件的定义字符串的相似度,可以使用共知的相似度技术标准。这也同样适用于输入字符串与定义字符串的比较方法。这方面有很多共知的方法,比如常规的模式匹配方法。预定的相似度,比如通过一个依赖于应用相似值居于0与1之间的数值得到显示,可以依此根据本系统得到这一输入字符串的不同方式而发生变化。这里要区别比如通过语音输入与转换成字符串,或者字符串的直接输入,比如通过键盘等。具体的相似度测量或比较方法不是本发明的对象。最简单的可以对输入字符串进行分析,看它是否完全或大致包括定义字符串的自然语言中表达的预定部分。完全是指同一词,大致是指可以允许语法上的偏差(比如单数/复数,大小写,变形等),还有可被忽略的标点符号如逗号等。同义词或术语也可被看作相似。根据一种实施方式,字符串-程序代码-组件的程序代码段设置了与系统对应的设备的控制功能。一个优先的应用案例是家电设备的控制,另一个优先的应用案例是对机器人等的控制。此外可以设想,对信息的搜寻,比如在对公众开放的网上图书馆,应用这里陈述的方法后可以得到简化。根据另一种实施方式,此参数输入方法实现了在字符串-程序代码-组件与使用者之间的对话。对话也可以通过字符串-程序代码-组件的程序代码段来代替。也就是说,参数输入以及通过程序代码设置的功能在自然语言中生成一种输出,使用者将此理解为提问或输入请求。使用者用一相应的输入答复这一提问,通过方法与功能可以将此作为进一步的输入字符串接收并加以处理。这种提问-答复过程可以多次重复。期间字符串-程序代码-组件可以通过下面陈述的方式将此前使用者的答复纳入对对话的控制。这种实施方式合适比如提供专家系统。根据第一变量,参数输入的对话可以用于对通过程序代码分段实施的功能细化。这样一种参数输入可以如此设计,而使所陈述的参数就可以预测到参数类型,参数值等依据功能或参数输入的方法进行检验。籍此可以辨认与防止错误输入。根据第二变量,对话可以支持使用者与系统之间的自由通信。自由通信在此处应理解为通过功能对使用者提出问题或者输入请求,而使用者对此作出答复的一种交换,而此答复无论是形式上还是语义上都无限制。使用者的答复通过输入字符串的输入系统来完成,此系统将此输入字符串延送至字符串-程序代码-组件的功能。此外,这输入字符串原则上包括自然语言的表达。根据另一个实施方法,字符串-程序代码-组件的程序代码段完成一种发送输入字符串给系统的功能。换言之,字符串-程序代码-组件的功能生成给系统的输入,此输入可以导致系统中已经存在的另一种字符串-程序代码-组件被启动。在此,根据本发明的字符串-程序代码-组件在应用中的显现了另一个显著的优点。每个字符串-程序代码-组件可以在封闭的状况下提供特别的功能,此功能通过字符串-程序代码-组件的定义字符串在自然语言中能被辨识与启动。传统意义上能具备语音控制功能的系统按照常规设计都是封闭的,因此就其完整性与扩展性而言很大程度是受到限制的。根据本发明,系统与此相反可以简单地通过对其附加一个字符串-程序代码-组件而加以扩充。复杂的技术状况,比如知识表达或机器人的程控,可以籍此由分布式的方式加以改善。感兴趣的第三方可以籍此通过可以加诸于系统的特别字符串-程序代码-组件提供解决问题的个别侧面。这种字符串-程序代码-组件然后可以如上述提示使用已经具备的字符串-程序代码-组件的功能,并将自身的功能提供给下一步的字符串-程序代码-组件。相应的系统由此而成开放性的,并通过简单方式向任何方向进行扩展。达到此效果的主要原因是字符串-程序代码-组件的设计。传统语音程控的系统按照惯例只允许打开已具备的标准功能,比如启动一个互联网的搜寻,发送一条消息,输入碰面的日期等。在现在发明的框架下,与此相反,任何功能都可以借助程序代码段,在与自然语言中的定义字符串相适应后得到设置,并被纳入系统。当标准技术中语言程控仅仅是提高各自系统的人体工程学,本发明通过程序代码段提供一种特定的功能,对自然语言里已包含在定义字符串中表达的语义进行编程。此发明所建议的字符串-程序代码-组件的数据结构因此允许自然语言表达语义的功能转化,而此转化借助于自然语言表达封闭的功能单元,与明确和不可分割归属于此表达的程序代码段。不言而喻,一种字符串-程序代码-组件的程序代码段同时也可以设置不同的,以上已陈述的功能。特别是程序代码段既可以为系统设置一种对话的功能,也可以设置一种输入字符串的传送功能。如果在对话过程中发现,基于接收到的使用者的输入启动下一个具备进一步功能的字符串-程序代码-组件合适时,这就一直有实质意义。在某种程度上,此系统依靠自然语言间接支持不同字符串-程序代码-组件的通信。根据第一方面,字符串-程序代码-组件如前所述,被设置后可以自行将自然语言中的表达的输入字符串传送给系统,籍此间接的“启动”下一个字符串-程序代码-组件。其定义字符串与输入字符串足够一致。借助系统支持的,通过自然语言的各种字符串-程序代码-组件的通信的另一方面,将在下面显得更为清楚。具体而言,此通过自然语言控制系统的方法可以包括下列步骤:系统接收到一种输入字符串。输入字符串原则上包括用自然语言的表达。下一步骤中,系统比较输入字符串与系统中根据既定相似度已经被设置的字符串-程序代码-组件的定义字符串,比如借助于传统的模式匹配方法。如果输入字符串根据既定相似度对定义字符串显示出一种既定的相似,系统将执行由程序代码段设置的功能。根据优先实施方式,起码通过系统接收的输入字符串的份额可以得到储存。这就可能一方面涉及到导致展开字符串-程序代码-组件的功能输入字符串。另一选择或补充可能起码是字符串的份额得到储存,通过使用者在对话的框架下用字符串-程序代码-组件输入。其间根据实施方式至少在字符串-程序代码-组件中接收到的输入字符串的一个份额得到自我储存。对此字符串-程序代码-组件可以包括一个合适的上下文储存器-数据结构。储存在字符串-程序代码-组件的信息然后被自身选出支持后续的通过字符串-程序代码-组件的程序代码段设置的功能的展开。如此被储存的输入字符串的份额可以被选出来支持后续字符串-程序代码-组件的功能的展开。这样使用者的对话可由字符串-程序代码-组件来控制,即字符串-程序代码-组件根据对话过程中得到的与储存的使用者的信息来决定其走向。另一选择也可将接收的输入字符串的分额集中储存在系统里。根据这一变量,被储存的信息(常规是包括用自然语言的一个表达的输入字符串)因此就可作为一种上下文-或-背景知识被后续展开的下一步的字符串-程序代码-组件使用。集中在系统中储存的输入字符串的份额在一定程度上作为系统短期-或-长期记忆来用,字符串-程序代码-组件可以每次以合适发方式来提取。在此,借助自然语言,并由系统间接支持的不同字符串-程序代码-组件的通信的另一面显而易见:一个字符串-程序代码-组件在它展开属于它的功能时可以动用此前应用另一字符串-程序代码-组件的功能时所储存的自然语言信息。如前所述,一个字符串-程序代码-组件的程序代码链设置的功能可能提供一个返回值,也可以储存在系统中,使得后续展开的字符串-程序代码-组件可以动用。这一返回值可以包括自然语言的内容,或者借助自然语言的内容得到注解。数值或逻辑值也可以作为返回值来用。如果此返回值得到自然语言注解的话,可以简单借助自然语言被动用,比如作为一个后续启动的字符串-程序代码-组件的参数。根据另一种实施方式,可以设置一个通过一字符串-程序代码-组件的程序代码段实施的功能,从一接收与储存的输入字符串中引导出上下文信息,同时将此存入系统。上下文信息的引导比如可以通过在字符串-程序代码-组件中预存的信息实现。上下文信息籍此可作为附加信息基础提供给另外,后续展开的字符串-程序代码-组件。上下文信息优先包括自然语言中的内容。在某种意义上这样一种字符串-程序代码-组件的设置,是为了从输入字符串推出结果。根据第一实施方式,字符串-程序代码-组件根据惯例可以通过合适的程序语言来编制。选择这种编程,常规是为了设置基本功能。这也包括简单的控制结构,如有条件的指令,循环等。这意味着,起码众多字符串-程序代码-组件的字符串-程序代码-组件的程序代码段可以设置控制程序流程的控制结构,比如一个分枝,一个循环,或者一个有条件的指令。原则上此控制结构也是通过字符串-程序代码-组件的程序代码段设置的。如后显示,因为控制结构可以由生成或特别方式通过字符串-程序代码-组件被设置,一个系统的控制方法,以及如后还将陈述的自然语言的编程方法原则上可以达到更高编程语言的全面功能。字符串-程序代码-组件的程序代码段比如可以设置有条件的指令,比如说“如果-提问”的指令。对有条件指令的条件下定义,可以根据第一变量通过字符串-程序代码-组件的程序代码段设置的功能来搜寻。由此则非常特别的条件可以简单的被设置与搜寻。这特别是涉及到这些条件,它们不能或很难通过一个生成形式,比如“如果a<b,然后”来获得。比如说,“如果外面是亮的,那么…”这样一个条件句可以通过一个字符串-程序代码-组件来查询,其程序代码段设置一个外置的亮度传感器的提问功能。根据第二变量,如果起码一个字符串-程序代码-组件的程序代码链设置有条件的指令,定义条件指令的条件可以通过起码一个操作符与至少一个操作数来定义。换言之,这条件在此例中拥有一个生成形式“操作数1操作符操作数2”,比如“a<b”。因为此例中的控制结构,比如一个“如果-提问”,由一个字符串-程序代码-组件提供,操作数与操作符可以被视为参数。通过下面还要大致描写的方式,此参数在编程中由自然语言获取。这特别是通过已陈述的特别方法获取由字符串-程序代码-组件设置的参数时会发生。这种方法可以获取任意数字操作数,并建议任何流行的操作符作为选项。如后详述,前期字符串-程序代码-组件的返回值也可被选为操作数。不言而喻,借助字符串-程序代码-组件不仅可以设置“如果-提问”,而且可以设置任何其它有条件的控制结构,如“循环(while,foreach等)”。有别于“如果-提问”,循环条件在与循环控制结构相关的循环块展开后再次被检验。满足条件的话,进入下一轮的循环流程。有可能循环条件在多次循环流程后不再满足条件,比如循环块内被启动的字符串-程序代码-组件的功能改变了一个或多个相对循环条件被检验的值。通过设置循环的字符串-程序代码-组件的功能,比如循环计数器的计数,也可以改变起码一个这样的值。循环的一般形式可以如下加以设置:looploop_1=newloop();while(loop_1.executecodesegment()){//这里是通过密码产生器//写进句子其它组成部分的源代码。}其中,loop等级具体地实施字符串-程序代码-组件,以便实现一循环,并可实现不同的循环如“dowhile”、“repeat”、“foreach”等循环。如后会详细说明,通过字符串-程序代码-组件在自然语言中的编程,同样实现一种由结果来控制的流程。也就是说,所谓“事件侦听器”(结果处理例程)可以通过字符串-程序代码-组件得到展现。不同流程的并列处理亦是如此。如后所述,此发明此外提供仅仅借助自然语言进行编程的可能,也就是说,基于现有的字符串-程序代码-组件继续生成出新的字符串-程序代码-组件。如此则在一定程度上,新的借助自然语言的编程成为可能。它实际上无需编程经验,因此对广大范围的应用者开放。与字符串-程序代码-组件的基本设计相结合,既有系统的扩展更加简化。根据实施形式,自然语言中的编程方法包括下列步骤:一批字符串-程序代码-组件按照前述方法被提供,也就是说,这批字符串-程序代码-组件中的字符串-程序代码-组件每次获取了包括自然语言中内容的定义字符串,与一个明确从属于定义字符串的程序代码段,此程序代码段设置了一个从属于自然语言内容的功能。作为下一步,编程字符串在自然语言中被送进系统,而此系统是专门用来储存与处理这批字符串-程序代码-组件的。“自然语言的编程字符串”这一概念在本发明中,如同此前所述的“自然语言的表达”这一概念,基本是指自然语言中含有一个或多个词语的表达。这些词语可以基本形态出现,这一表达也可以包含一个起码部分语法正确的句子或一批这样的句子。如后所述,这一表达被称为“编程字符串”是因为此内容是用来编程的,也就是说用来制作一个可以通过一个计算单位实行的程序。因此也可被视作“程序代码”或“编程语言”,而编程语言在本发明中是自然语言。在输入编程字符串时或其后,如果此编程字符串起码包括一个字符串-程序代码-组件的定义字符串的部分字符串,一批字符串-程序代码-组件中的一个或多个字符串-程序代码-组件被选中。换言之,如果编程字符串与字符串-程序代码-组件的定义字符串在字符串基础上的一致性在寻找后并被发现,相应的字符串-程序代码-组件即被选中。再换一种说法,字符串-程序代码-组件在某种意义上是被编程字符串“激活”的。不言而喻,因为是以自然语言在进行,编程字符串的一部分与字符串-程序代码-组件的部分字符串的一致性不必一直是百分之百。可以通过预定来确认这样一种一致性只有超过预设相似度的界限即可。用来比较编程字符串与字符串-程序代码-组件的定义字符串的相似度,如前涉及本发明中控制程序方法的第一变量所述,使用现有技术的相似度即可。这同样适用于编程字符串于定义字符串的比较方法。对此现有技术具备多种流行的方法,比如惯用的模式匹配法。预设的界限,通过受制于所有相似度0与1之间的数值呈现,也可以变化。最简单的可以对编程字符串进行分析,看它是否完全或大致包括定义字符串的自然语言中内容的预定部分。完全是指同一词,大致是指可以允许的语法上的偏差(比如单数/复数,格,位等),还有可被忽略的标点符号如逗号等。同义词或概念也可被看作相似。在下一步的方法步骤中,在起码被选定的字符串-程序代码-组件的一个或多个程序代码段的基础上,最后生成一个从属于编程字符串的程序。一个在自然语言中编程的相应系统包括一批前述的字符串-程序代码-组件。此外,系统还具备一个输入装置用于自然语言中编程字符串的输入,以及与此输入装置相捆的控制装置。输入装置具备一个编辑器,用于编辑编程字符串,特别是与代数输入或选择相连,以此一定字符串-程序代码-组件的程序代码段提供的功能可得到细化,如下面详细描写的。控制装置是用来储存字符串-程序代码-组件,以及处理输入的编程字符串。此外,如果输入的编程字符串按照前述的方法至少包括部分字符串的定义字符串,它用来选出至少一个其中的字符串-程序代码-组件。为了至少一个预定的编程字符串,系统的其它部分还包括一个代码生成器和一个编译程序,用来生成在至少一个被选出的字符串-程序代码-组件的程序代码段的基础上的,从属于编程字符串的程序。这方面本发明从根本上有别于现有技术。那里大多数是根据人工智能来“理解”自然语言的输入,也就是说,进行语言分析而搞懂输入的意义。下一步就是将此意义转化成程序代码。这里所建议的操作方法反而本质上不基于“了解”,而是严格确定性地运行的,其中不会出现对输入数据的语义误解。输入的编程字符串不用语言或语义分析,而只需在字符串比较的基础上与储存的字符串-程序代码-组件的定义字符串进行比较。这样一来几乎没有计算耗费,二来极易实施。本发明还具备其它优点。我们建议的方法是高度模块化的。不同字符串-程序代码-组件都是独立的。不同的软件开发者可以在不同的地点不同的时间独立开放新的字符串-程序代码-组件并将其加入系统。如下详述,从一简单的设置了单一,严格限制的基础功能的程序代码段的字符串-程序代码-组件可以通过自然语言的编程,可以便捷地生成复杂的字符串-程序代码-组件,并将其加入系统。根据本发明的方法,字符串-程序代码-组件的程序代码段相当于电脑语言里高级编程语言的已实现的基本方法。系统包容的字符串-程序代码-组件越多,越多样化,这里提议到的系统框架下的自然语言中的编程拥有的可能性就越大且可变。本发明这方面的主要目标是让不具备特殊编程知识的使用者,借助专家开发出的字符串-程序代码-组件的基础,用自然语言自己建立系统。可以预料,由此软件系统的复杂性在不同的使用领域明显变小,费用也变低。已有的系统面对新的要求或小的更动基本上不会导致长期使用并多次适应的基本结构的改变,而仅仅是这或那种字符串-程序代码-组件的补充,以及在此基础上进行的依据自然语言编制的系统的补充。此外,实际上对程序代码无须进行原则上费时的注解。因为编程是通过自然语言的,程序也就不辨自明了。如前所述,根据优先实施方式,选出的至少一个字符串-程序代码-组件被设置来支持参数输入,籍此则通过选出的字符串-程序代码-组件的程序代码段提供的功能在自然语言的编程中动态细化。这优先是借助自己的参数输入方法达到的。根据实施方式,本方法包括输入至少一个参数这一步骤,以此一定字符串-程序代码-组件的程序代码段所提供的功能可得到细化。这一步骤是在输入编程字符串的同时或以后并在生成从属该编程字符串的程序之前进行的。可以特殊的与不同的方式输入参数,如上面已描写。上述方法可以应用到常规编程上,比如移动手机中的应用程序。在生成从属编程字符串的程序的这一步骤中,在一个预制平台要生成可展开的程序代码。如前所述,系统可以包括针对任何编程语言和实现环境的代码生成器与编译器。另一方面,自然语言的编程,如前所述也可以从已有的字符串-程序代码-组件的基础上生成出新的字符串-程序代码-组件。为此要确定针对新的字符串-程序代码-组件的新的定义字符串,通过合适的自然语言中的编程字符串,根据上述方法选出若干字符串-程序代码-组件。新的,为生成新的字符串-程序代码-组件的程序字符串会在系统符号的基础上产生,该符号则在从属编程字符串的系统生成步骤中自动产生。处理自然语言的系统的优先实施方式,包括若干先前所述的已整合进系统的字符串-程序代码-组件。这些字符串-程序代码-组件又包括拥有自然语言内容的定义字符串,以及明确从属于定义字符串的程序代码段,此代码段设置从属于自然语言中内容的功能。若干字符串-程序代码-组件中至少有一个包括参数输入的方法,籍此被设置的字符串-程序代码-组件用来支持参数输入。由字符串-程序代码-组件的程序代码段提供的功能也因此可确定下来。根据一种实施方式,在接收根据既定相似度显示与定义字符串有既定相似的输入字符串时,此系统的设置是为了实施通过程序代码段设立的功能。如前所述,此系统可以整合任何数量的字符串-程序代码-组件。它们又构成封闭与功能化的单元,可以被独立的软件开发者提供,并籍此扩大整个系统的功能。同样如前所述,如果相应的输入字符串生成并作为输入字符串纳入系统的化,一个字符串-程序代码-组件的功能可以唤起另一个字符串-程序代码-组件的功能。换言之,一个字符串-程序代码-组件被另一个字符串-程序代码-组件唤起不是直接,而是通过系统间接完成的。因此在设置字符串-程序代码-组件时,各字符串-程序代码-组件之间是相互独立的,不必相互顾及。每个字符串-程序代码-组件都可以为一个特定的问题部分提供特定的答案。通过对不同字符串-程序代码-组件的功能的合理组合由此全面处理复杂的事态。此前或缺的功能可以随时通过纳入新的字符串-程序代码-组件得到补充,而无须对已有的字符串-程序代码-组件或系统本身加以改动。根据一种实施方式,系统包括一个控制装置,用来接收含有自然语言内容的输入字符串。它同时也是为了依据既定相似度比较输入字符串与系统已具备的字符串-程序代码-组件的定义字符串,以及在如下情况下展开相应字符串-程序代码-组件的程序字符串设置的功能,即输入字符串对定义字符串显示出符合既定相似度的既定相似。根据另一种实施方式,此系统包括输入器。此输入器是用来接收使用者用自然语言的输入,由此引导出包含自然语言内容的输入字符串,并将此传送到控制装置。这样一个输入器可以包括一个惯用形式的语言识别设置,比如将通过一个话筒获取的语言转化成相应的字符串。此外编辑可以作为输入器使输入内容通过键盘或相类者为系统服务。根据一种实施方式,系统可以包括另一类别的输入器,用来通过比如传感器接收周围信号,并引导出包含自然语言内容的输入字符串,而且将此传送给系统的控制装置。更普遍的是设定一输入器,用来接收任何既定的触发信号,引导出受制于触发信号的包含自然语言内容的输入字符串,并将输入字符串传送给系统。触发信号可以是环境信号,比如显示环境的变化(比如明暗度,零暖度,喧闹度等)。另一选择则触发信号也可以由系统发出,用于促进输入器生成一输入字符串来描写输入器的系统当时的状况(比如照明设备中的“开/关”,窗的“打开/关闭”等)。这里显示出前述系统的另一个特点。不仅人,而且技术仪器也可以在自然语言内容的基础上作为使用者与系统的控制装置进行通信。系统的控制装置也不管人或技术仪器作为使用者的不同,而是一视同仁地处理接收到的包含自然语言内容的输入字符串。比如可以设置一个输入器,用来记录温度,明暗度,湿度,吵闹度等相类的环境参数,用自然语言进行描述,然后传送给系统的控制装置。相对应地,系统可以唤起相应的字符串-程序代码-组件,以此来控制这和/或那输入器的功能。系统还可包括一输出设置,用来向使用者在自然语言中发出信号,从而支持使用者与字符串-程序代码-组件的对话。输出器特别可能是常见的,通过扩音器或相类者来完成的语音输出。通过显示屏或相类者展现的文字输出也是可能的。不言而喻,系统还可以包括组合的输入与输出器。正如多次提及,系统可以包括任何形式的技术器,它们被借助于通过字符串-程序代码-组件的程序代码段设置的功能来控制。所陈述的方法特别适用于机器人的控制。家用电器或娱乐电子设备的控制也可以通过所述方法来完成。此外,上述方法在专家系统设置时具有优势。特别是因为不同应用者的字符串-程序代码-组件可以简单的纳入系统,被不同应用者掌握的不同的知识领域可以简单地联网,以便不同先前分离的知识领域简单的被集合在一起。附图说明以下为对本发明与附加图像相连的解释,其中一些实施例作为本发明的例子。图像表示:图1图示意性地显示根据本发明的数据结构的优先实施方式;图2图示意性地显示根据本发明的系统的不同组成第一优先实施形式;图3图示出了根据本发明,在使用图2的的系统下组成第一优先实施形式的步骤;图4图示出了根据本发明的方法的第二优先实施方式;图5图示出了根据本发明,对于用于自然语言编程的第二优先实施方式的系统;与图6显示在使用图5中的系统,以自然语言编程方法的第三优先实施方式中的步骤。具体实施方式图1显示数据结构10以字符串-程序代码-组件形式的优先实施方式。字符串-程序代码-组件包括定义字符串12,此字符串又包括自然语言中的内容13。此外,字符串-程序代码-组件包括程序代码段14,此段设置了一从属自然语言中内容13的功能。最终字符串-程序代码-组件还包括一用于参数输入的方法16。字符串-程序代码-组件10组成一不可分割的,封闭的单元,它包括与自然语言表达13及程序代码段1相连的定义字符串12,程序代码段14实现自然语言表达13的意义。字符串-程序代码-组件技术上处理成其内在执行对外是隐蔽的。内在执行由一实现字符串-程序代码-组件10的程序代码段14的方法体组成。定义字符串12在某种程度上我们是作为对接点服务于自然语言中的输入字符串,从而调用字符串-程序代码-组件10的功能。此点在论及图3时还会进一步解释。籍此字符串-程序代码-组件10总是显示出是自成一体的,高度封闭的以及有效的单元。字符串-程序代码-组件10可以借助即插即用以本身已知的方式纳入系统100(参见图2)。字符串-程序代码-组件10可以通过惯用的编程语言提供,如下c++例子会加以说明。为了实现字符串-程序代码-组件10会在c++中定义一个抽象类,作为基础类来服务于具体的字符串-程序代码-组件10。classzeichenkette-programmcode-komponente{publicstringgetsentence()=0;publicvoidcollectparameter()=0;publicresultobjectexecutecodesegment()=0;}具体的字符串-程序代码-组件实现这抽象类。举例说,通过自然语言的内容“将一数加到另一数”为定义字符串实现“mycplusplusaddition”。异步递归getsentence()的方法送回一自然语言中的表达。collectparamter(…)在此例中用于搜集实现代码段必要的函数参数。输入的参数就其涉及到将建立的参数类型的正确性加以检验,以免输入失误。在本例中,比如在collectparameter(…)的框架下进行如下检验,只有两个以数值的形式的参数,而不是任意的字符串可以输入。executecodesegment()这一方法用于实现字符串-程序代码-组件10的真正功能,即将两数相加。不言而喻,这里仅仅作为举例用的字符串-程序代码-组件设计不仅是可以通过c+++,而且是通过其它常规的编程语言如php,visualbasic,c#,objective-c或者相类者来实现。字符串-程序代码-组件不仅可以通过常规的电脑语言,也可以选择自然语言来编程。此点会在讲的图4时细述。图2举例显示一系统100,其中纳入不同的字符串-程序代码-组件10,10',10"。使用者40,42可以通过自然语言与系统通信,从而引发出不同功能的启动。通过这些由字符串-程序代码-组件10,10’,10”的程序代码段设置的功能,与系统100联机的仪器30,32,34,36可被控制,如一盏灯30,一个机器人32,一扇窗34或一个专家系统36。使用者既可以是人42,也可以是相应设置的技术仪器40。系统中各种不同组件的相互作用将在下面涉及图3与图4时加以陈述。图3显示控制使用者40,42与系统100通信的方法的第一实施方式的步骤。步骤s1中,系统100准备了至少一个字符串-程序代码-组件10。字符串-程序代码-组件包括定义字符串12,此字符串又包括自然语言中的内容13。此外,字符串-程序代码-组件包括明确从属于定义字符串的程序代码段14,此段设置了从属自然语言中表达13的功能。设置该系统100的目的是,在接收一条按照预定相似程度与定义字符串12具有预定相似度的输入字符串时,执行程序代码段14所实施的功能,如下所述。此外,该系统100包括一个控制装置20。设置控制装置20的目的是接收一条自然语言表达的输入字符串。设置控制装置20的另一个目的是按照预定的相似程度把输入字符串与字符串-程序代码-组件10的定义字符串12比较起来,其目的也是执行通过有关字符串-程序代码-组件10的程序代码段14所实施的功能,前提是输入字符串按照预定的相似程度具有与定义字符串12的预定相似度。步骤s2中,控制装置20接收输入字符串,比接收作为人的使用者42自然语言的内容“请打开电视机”。输入字符串的输入可以得到终端设备50,52的支持,它们的设置是通过比如传声筒来记录使用者42所说的一句话“请打开电视机”,并借助常规语言识别软件转换成字符串。已转换的字符串“请打开电视机”则作为输入字符串通过输入器50,52被传送到控制装置20。步骤s2中,控制装置对输入字符串与根据预定相似度的一或多个字符串-程序代码-组件10,10',10″的定义字符串进行比较。对自然语言的内容的表达可以用常规的模型匹配方法进行。通过图2的相关例子可以假设,拥有记录自然语言内容“打开电视机”的定义字符串12的字符串-程序代码-组件10被纳入系统100。定义字符串12从属于一相应的程序代码段14。此段中设有与系统100相联的电视机开关的功能。通过比较输入字符串中“请打开电视机”与定义字符串中“打开电视机”发现,输入字符串完整包容了定义字符串,可以理解为足够相似。不言而喻,用来比较的记录自然语言内容的字符串的相似度不同,比较的方法也就要不同。不属本发明范围的专业人员对这些方法是熟悉的。同样众所周知,比较的内容可在比较前加以简化。举例中的(此处无内容)的助词如“请”,冠词等类可以剔除。此外,比较内容的语法也可以加以简化,比如动词使用不定式就可。在上述例子中,如果输入字符串“请打开电视机”显示与根据预定相似度的定义字符串“打开电视机”既定相似,控制设施在步骤s4中执行通过程序代码段14设置的功能,打开电视机34。如果步骤s3没能发现足够相似的字符串-程序代码-组件的定义字符串,控制装置可以将此相应地转告使用者。与此相对,如果系统发现多数输入字符串对定义字符串有某种程度的相似,也可以将此告知使用者。如此则使用者可以获得机会,选出根据相应的定义字符串他认为最合适输入字符串的字符串-程序代码-组件。拥有自然语言内容的输入字符串也可以有选择地通过一输入器,比如明暗传感器40来完成,并将此传送给控制装置20。这里如果输入器40辨别出空间的亮度在减弱,比如晚上或多云,可以生成一个“这里暗”形式的输入字符串传送给控制装置20。而它可如前所述在纳入系统的字符串-程序代码-组件10,10',10″中搜寻,看是否其中有一个字符串-程序代码-组件具备足够相似的定义字符串。如果是如此,控制装置20可以执行明确从属于定义字符串的功能。可能结果是,与系统100相联的灯30被打开。此外可以预设,装置40不是自动将输入字符串传送到控制装置20,而是当收到控制装置相应的要求时。相对技术仪器控制的另一选择是,字符串-程序代码-组件10的程序代码段14可以更具优势地用来制定允许使用者42与字符串-程序代码-组件10对话的功能。特别是在专家系统方面,比如在医疗领域,此种应用具备优点。下面的例子将简介此范例。专家系统36使用字符串-程序代码-组件10,10'时可依下列方式与使用者42对话。比如使用者42可以通过控制装置20向专家系统提出“我想我是生病了”。控制装置20对包括这内容的输入字符串与现有字符串-程序代码-组件10的定义字符串进行比较后发现,字符串-程序代码-组件10的定义字符串中有“我生病”这一内容。此字符串-程序代码-组件10的程序代码段14执行与使用者42类似如下的对话:使用者:“我想,我生病了”系统:“你哪里不舒服?你发烧了?”使用者:“对”系统:“体温多少?”使用者:“38.5”系统:“已经多久了?”使用者:“今天中午开始的”系统:“还有哪里不舒服?”使用者:“没了”系统:“那请多注意休息,可能明天就会好一点”。系统对使用者的答复可以通过一个合适的输入仪器50,54,比如传声器,在自然语言中完成。另一选择是使用显示屏来提问与答复。通过输入字符串中的“我想我生病了”启动的字符串-程序代码-组件10设置一场询问使用者一般身体状况的对话。如果没有特别情况,对话可以如上述般结束。但是如果对话是如下面所示系统:“你哪里不舒服?你发烧了?”使用者:“对”系统:“体温多少?”使用者:“39.5”系统:“已经多久了?”使用者:“三天”系统:“还有哪里不舒服?”使用者:“有,头与四肢痛,流鼻涕与咳嗽”字符串-程序代码-组件10的程序代码段14可以成熟的继续对话系统:“你的症兆显示你可能得流感了”……同时可以设置刚刚进行的字符串-程序代码-组件10的功能,将带有“流感”内容的输入字符串传送至控制装置20。为了对使用者42的健康状况就流感的嫌疑通过独立、完全为此预设的字符串-程序代码-组件10'进行诊断,然后按照这种方式启动字符串-程序代码-组件10'的功能。如此功能可以通过合适的后续对话进一步获得使用者身体状况的信息,以便提出相应的行动建议。按照惯例,显示“流感”内容的定义字符串的字符串-程序代码-组件10'也可以获取此前字符串-程序代码-组件10已经得到的信息(发烧,多高,多久,其它不舒服处)。与此相应,在功能中基本预设的提问可以被省略。对使用者也相当透明,实行字符串-程序代码-组件10的也实行了字符串-程序代码-组件10'。如前多次提到,就使用者而言,字符串-程序代码-组件也可用自然语言来编程。下面的举例先简单地展示与图4相关的简例。详细说明见图5与图6。第一步骤t1中,多个字符串-程序代码-组件10,10',10″在系统里被准备。这些字符串-程序代码-组件构成用自然语言编程下一步新的字符串-程序代码-组件的基础。通过图2的相关系统可以假设,字符串-程序代码-组件10,10',10″已经被纳入系统100。比如字符串-程序代码-组件10用来打开电视机34。它又包括带有“打开电视机”内容的定义字符串12,以及与之相捆绑的程序代码段。此段中设有打开电视机34开关的功能。另一个字符串-程序代码-组件10'用于调节亮度与空间照明,也包括定义字符串“检查亮度”。字符串-程序代码-组件10'的程序代码段14'设置一功能,它向明暗传感器40发出指令,当时的亮度以输入字符串的形式(记录自然语言的内容)传送给控制装置20。如前所述,系统100中已具备字符串-程序代码-组件10″用来处理此输入字符串。比如在接收到“天已黑了”的内容时开灯30,或者在对“天很亮”内容作出反应时启动遮阳设备如窗帘(未显示)。此后使用者42在步骤t2中,通过使用系统已具备的多种字符串-程序代码-组件10,10',10″定义新的字符串-程序代码-组件。其方式如下:在第一部分步骤ts2.1中,使用者42为要定义包括自然语言内容的新字符串-程序代码-组件给出一定义字符串。在此处的例子里该定义字符串包括比如表达“我想看电视”。在另一个部分步骤ts2.2中,使用者标定用来定义新字符串-程序代码-组件的编程代码段的一字符串系列(编程字符串)。字符串系列的字符串各包括一个自然语言的内容。根据既定的相似度,如果字符串系列中的一个字符串显示出与多种字符串-程序代码-组件10,10',10″中的一种字符串-程序代码-组件10的定义字符串具备既定相似,也就是说,如果“编程字符串”至少包括一个字符串-程序代码-组件10的定义字符串的部分字符串,被新定义的字符串-程序代码-组件的程序代码段14就会扩展到多种字符串-程序代码-组件10,10',10″中字符串-程序代码-组件10的程序代码段14。具体而言,本例中的字符串系列(编程字符串)的内容是(“检查一下亮度”,“打开这台电视机”)。字符串“检查一下亮度”包括此前已说明的字符串-程序代码-组件的程序代码段10的定义字符串12的内容“检查亮度”。因此(还空着)的,要新定义的字符串-程序代码-组件的程序代码段增加了字符串-程序代码-组件10的程序代码段。与此相类,因为字符串“打开这台电视机”包含定义字符串12中的内容“打开电视机”,要新定义的字符串-程序代码-组件的程序代码段增加了字符串-程序代码-组件10的程序代码段。在结尾步骤t3中,新定义的字符串-程序代码-组件按照上述说明被内容系统100。如果使用者42现在向系统100提出“我想看电视”的内容,新定义的字符串-程序代码-组件的功能会被启动。它通过对亮度传感器40的询问进行检查。依据系统方面接收到的输入字符串(“天黑了”,“天很亮”)根据情况灯30会被打开,或者百叶窗会被放下。最后电视机也会被打开。不言而喻,通过如此方法更加复杂的流程也可借助使用已有的字符串-程序代码-组件用自然语言来编程。特别是控制结构,比如分支,有条件指令与循环等,特别是程序开端,通过通用的编程语言用字符串-程序代码-组件被制定后作为基石。这些基础组件在字符串-程序代码-组件的后续编程的框架下通过自然语言得到应用。粗言之,一个带有定义字符串“我要看电视”的新的字符串-程序代码-组件通过如下字符串系列作出有别于上述举例的定义:“如果我在工作室,将房间的亮度调到满月夜的程度放下百叶窗打开工作室电视机。如果我在客厅时,打开客厅电视机”。这个例子的前提是,在系统里已经有字符串-程序代码-组件。它们设置了一个条件指令(“如果……”),一个使用者的地点(“在客厅里”,“在工作室里”),一个可调节的照明设备(“将房间的亮度调到满月夜的程度”)与百叶窗(“放下百叶窗”),一个可操作的不同电视机(“打开工作室的电视机”,“打开客厅的电视机”),同时通过定义字符串可以对话。图5概括性地说明允许自然语言中编程的系统200的组件。在自然语言中编程在本文从根本而言是建立在一个被称为字符串-程序代码-组件的数据结构,对此已作了基本说明。系统200包括一带有储存区域270的控制装置260,一个输入装置240,储存区域230以及一个代码生成器282,与一个编译器284。每个组件的任务与功能见下说明。输入装置240被系统使用者用来对系统的输入。如下所示,输入借助自然语言的编程字符串用自然语言进行,比如“将两数相加”。输入可通过键盘或相类者,或者语音输入来完成。输入装置240包括一个编辑器250,如后所示,用来支持使用者与系统200之间的通信。编辑器通常一个输出装置,比如显示器,用来给使用者进行输入,以及控制装置的输出。与图1相关的字符串-程序代码-组件210,210',210″此前已被加以描写。使用参数输入方法16的作用方式与优点将在如下简单举例中明显可见。字符串-程序代码-组件设立搜集参数方法“collectparameter()”用来组建与搜集参数。此例中的字符串-程序代码-组件的程序代码段在一处或多处设置一个输出钟点的的功能,此功能可作为参数被输入。输入参数的方法16具备如下形式:如果作为编程字符串或输入字符串比如通过一编辑器输入“多晚了”,系统通过匹配算法(matching-algorithmus)在众多现有的字符串-程序代码-组件中寻找一致,并发现与现有字符串-程序代码-组件的定义字符串部分相符:“如下城市现在几点了?”系统因此调用该字符串-程序代码-组件的搜集参数方法“collectparameter”。搜集参数方法“collectparameter”根据后续程序代码检验此句子的开端是否正确,如果不正确的话,对此加以修正。根据返回值“ok”编辑器告诉系统,此数据正确。系统方面对编辑器给出“句”项的内容。编辑器显示修正,并等待使用者的输入。如果使用者给出“瑞士”一词,编辑器将此输入传送给系统。系统将“瑞士”一词分派给“接收词”项,并再次调用搜集参数方法“collectparameter”。参数输入法16根据后续程序代码修正语法,并在选出的城市中补充登记一条:籍此编辑器显示陈述“在瑞士几点了”。假设如果使用者输入“matta”,搜集参数方法“collectparameter”会再次被调用。因为matta不是一个正确的城市名称,参数输入法16根据后续程序代码生成一个错误的信息,并给系统提供一系列修正建议。系统将错误信息与建议转送给编辑器。编辑器发布错误信息与建议:使用者因此将登记名称改为马耳他,编辑器将此修改后的输入传送给系统。控制设施将“马耳他”一词分派给“接收词”(receivedword)项,并再次调用搜集参数方法“collectparameter”。通过后续程序代码在所选城市名单中补充一条登记,并修改语法:现在显示出如下句子:“在瑞士与马耳他几点了”。编辑器将此输入传给系统。搜集参数方法“collectparameter”再次被调用。通过后续程序此句子得到语法修改,并通过返回值“句子结束”(endofsentence)向系统发出信号,参数输入结束。系统将“句”项的内容发送给编辑器。编辑器显示此句子并等待使用者的陈述。作为参数输入法16的另一选项,也可以使用通过借助控制装置260的其它途径来输入。这里字符串-程序代码-组件的方法比如通过“句子一部分”(partofsentence)的标识标出。这个方法具备输入参数而没有返回值。/*markierung:partofsentence="einezeichenkette"*/voidsetoutput(stringoutput);如此字符串-程序代码-组件210则通知控制装置,一部分调用字符串解释为参数,同时接过对此参数的记录。被记录的参数此后则被该方法分派给代码生成器282(作为结果,在典范式给出的程序代码中除“字符串-程序代码-组件”外同时显现“句子成分”,两者可理解为同义词)。如果上述新的字符串-程序代码-组件210“在显示屏上给出字符串”被纳入系统200,那么它将被分析后记入一登记表格。控制装置260通过登记时的标识认出,句子一部分的值“一个字符串”必须作为项分派给设置输出方法setoutput(字符串输出stringoutput)。如果一般一个新的字符串-程序代码-组件210被纳入系统200的话,它可以被一个元数据分析器(没有显示)分析,相应的元数据为其它用途而被储备。属于元数据的有类名,基础类,方法与变数。举例来说,如果c++中被提供了一个字符串-程序代码-组件,将会通过同时提供类的声明的分析及其方法寻找设立抽象类“句子成分”。由此一个c++的元数据分析器辨别出此类为字符串-程序代码-组件。其中得到句子方法(getsentence)被调用,包括类名的定义字符串被登记到元数据-表格。由此该字符串-程序代码-组件被纳入了系统,可以用来在自然语言中编程。任何常用的编程语言都具备的元数据分析器掌握可以获取关于字符串-程序代码-组件的公开分子的一切信息的技术。为了c++程序,字符串-程序代码-组件的声明数据得到分析,以便获取元数据。现代常规编程语言提供这种技术。比如java通过反射方法(reflection)提供一个类的所有元数据。比如一个用来即时报钟点的字符串-程序代码-组件可以有如下形式:编程语言c++中“执行代码段”方法executecodesegment()的元数据可见如下:编程语言=c++标题数据=whattime.h类名=whattime方法名称=executecodesegment退出状态=time项=无元数据分析器也为退出状态time提供元数据:编程语言=c++标题数据=time.h类名=time籍此元数据分析器与控制装置拥有所有字符串-程序代码-组件的元数据信息。一般来说,执行代码段方法executecodesegment()是用来设立字符串-程序代码-组件的真正的功能,比如输出作为参数被记录的字符串或将两个数相加。下面以与图6相关的一个简单例子更详尽地说明与图4相关的自然语言中的编程的方法。在第一步骤s601中,一系列字符串-程序代码-组件210,210,210"以此前已述方式在系统100得到设立于登记,例如用来提供即刻时间或显示屏上输出一个字符串的字符串-程序代码-组件。在第二步骤s602中,系统200的使用者通过输入设置240将一个自然语言的编程字符串输入系统200。编程字符串比如可以“多晚了。。。”开始。控制装置260辨别出此输入,并不断对已输入的编程字符串部分与系统中已有字符串-程序代码-组件210,210’,210"的定义字符串进行比较。在现有的例子中,控制装置260辨出,这里有一个带有定义字符串“现在是多晚了?”的字符串-程序代码-组件210,同时建议使用者使用该字符串-程序代码-组件。该建议可以比如通过编辑器250输出。在现有的例子里使用者接受了此建议。带有定义字符串“现在多晚了?”的字符串-程序代码-组件籍此被选出,因为编程字符串“多晚。。。”至少包含了定义字符串的部分字符串。编程字符串相应地被补充为“现在是多晚了?”。自然语言中的编程可以继续进行,比如使用者可以输入“给。。。”。控制装置260再次辨别出一个定义字符串部分地与编程字符串相符,即“在屏幕上输出一个字符串”,同时建议使用相应的字符串-程序代码-组件。如果使用者如此例中接收了,如前一般说明所述,控制装置260接管记录参数“一个字符串”,并在此等待使用者输入用引号括写的字符串或字符串数据类的变数。使用者输入“现在的时间”(字符串-程序代码-组件“现在是多晚了?”的返回值)。编程字符串被补充为:“现在是多晚了?在显示屏上显示即时钟点。”此处从两方面显示出所述方法的优点。字符串-程序代码-组件可以将值数返回(一个显示现时钟点的时间读数)。这些返回值通过系统200储存在比如一个存储器270里。存储器优先通过自然语言来注解,即现例中的“现时”。如此则后续字符串-程序代码-组件不仅从根本上,而且以简单方式借助自然语言,即通过自然语言的表达“现时”的参数“一个字符串”的细化动用返回值。所举之例同时显示,编程字符串的输入的步骤以及一个字符串-程序代码-组件的选出可以多次交叉。此外一个参数检索与参数输入在输入过程中,与/或在编程字符串输入后可能是不可或缺的。如果使用者发出信号,通知编程字符串的输入已完成,在s604步骤中,在被选出字符串-程序代码-组件的程序代码段的基础上,生成一个从属于编程字符串的程序。对此,代码生成器282为两个字符串-程序代码-组件生成如下程序代码:#include"whattime.h"#include"printtext.h"whattimewhattime_1=newwhattime()stringresult_1=whattime_1.executecodesegment();printtextprinttext_1=newprinttext()printtext_1.setoutput(result_1);printtext_1.executecodesegment();此处的变数“result_1”符合字符串-程序代码-组件“现在是多晚?”的返回值“现时”。相应的c++284编译器编译现有的代码,同时将其可用数据置入一个为其准备的(没有显示的)系统200的存储器。当此可执行文件被执行时,屏幕上就会显示即时的时间。算术的运算可以借助自然语言的编程字符串,比如以“将20与5相加并将其结果开根”,或者也可以数学中普及的数学符号来表示。举例如下:相加结果=20+5除了图表,一切数学符号都可以被用来将此前所得结果作为公式里的变数继续运算。其结果同样可以作为参数在后续字符串-程序代码-组件中得到使用。不言而喻,生成单个字符串-程序代码-组件的编程代码段的编程语言,有别于如下编程语言,其代码生成器为借助于自然语言以所述方式编程的程序制定程序代码。如果编程语言不同,代码生成器在目标编程语言的程序代码中补充机制,以其来成全在陌生的编程语言里,比如通过proxy启动程序代码段。如前所述,系统代码生成器与编译器可以包括不同的,被使用者选择性使用的目标编程语言(c++,c#,java等)与不同的执行平台(windows,linus,android等)。下面还将通过例子进一步说明本文所推荐的方法的其他方面。控制格式,特别是有条件的指令,是常见编程语言的必要组成部分。如下举例说明,通过这里推荐的、用自然语言编程的方法,可以提供具备全面功能的控制格式。有条件指令同样可以作为字符串-程序代码-组件来设立。为此执行代码段方法executecodesegment()在if指令句中用controlflow="if"方式来标识。由此代码生成器被指令,执行代码段方法executecodesegment()作为一个if-指令的条件加以输入:(//这里是通过代码生成器//把其它字符串-程序代码-组件的源代码//输入的。)“a<b”格式的生成条件可以多种方式实施,以便相应的字符串-程序代码-组件具备一个检索参数的方法,它用来在自然语言编程中检索一个如此条件的运算数与操作者。运算数与操作者的数量与类型可以有变化,并在编程中被检索。通过这种方式基于任何条件的陈述都可以形成。此外,字符串-程序代码-组件允许检查不服从生成模式,而是接近自然语言的条件。比如说条件格式“如果外面亮的话,然后。。。”。这可以借助字符串-程序代码-组件实行如下:outdoorbrightnesssensor类涉及到一个室外光线强度传感器。“isbright()”程序测量亮度并给出答复“true”,如果亮度不低于预设的强度的话。代码生成器为此在c++中生成如下程序代码:(//这里是通过代码生成器//把其它字符串-程序代码-组件的源代码//输入的。)如果执行代码段方法executecodesegment()返回一个布尔真值“true”,块中的指令就会执行。这个指令是由在根据“然后“概念输入的编程字符串基础上被选出的字符串-程序代码-组件发出的。根据另一方面,字符串-程序代码-组件的子集可以在集合在一个模块中。在系统中记录模块时所有此模块包含的字符串-程序代码-组件在元数据-表格里归为一组。定义字符串组类创建应用程序指令1myapplication插入输入框指令1mytextfield插入按键指令1mybuttom同组中所有字符串-程序代码-组件都知道相互间的接口。同组的字符串-程序代码-组件之间可以假设有内在的关系。字符串-程序代码-组件“插入输入框”会涉及字符串-程序代码-组件“创建应用程序”。因此无须输入参数来对此特意指定,被生成的输入框从属于创建的应用程序。此外,控制装置260可以根据组合,将第一个字符串-程序代码-组件的返回值不用明说地分配给同组中下一个字符串-程序代码-组件。在这里所推荐的借助自然语言编程还有另一方面,就是同时处理不同的任务。控制复杂的系统,比如控制一个人形的机器人,一系列系统流程经常必须同时进行。这里关系到多种流程共同处理同一任务。程序流程的并行在现代编程语言中已极易实现。比如java提供的抽象类“thread”,只用唯一个run()方法设置平行进行的程序代码来编流程。为了生成一个流程,必须生成一个新的类用来设置抽象类thread及其方法run()。此后必须生成一个此类的例,最后启动thread类的方法start()。比如,为了包括定义字符串“关掉百叶窗”的字符串-程序代码-组件,在其类名是“jalousiedown”的前提下生成下列程序代码:通过下列由定义字符串命名的字符串-程序代码-组件,可以实现简单的平行的任务。平行实施下列:将室内照明的亮度调到满月光夜。放下百叶窗通过输入定义字符串“平行实施下列”,java的代码生成器为每个字符串-程序代码-组件生成了一个流程,并在run()方法中补充相应的字符串-程序代码-组件。籍此,两个字符串-程序代码-组件,也就是说,通过每个程序代码段设置的功能,启动start()方法后同时进行。正如多次提示,通过所述方法,可以从已有的字符串-程序代码-组件中生成新的字符串-程序代码-组件。为了制定一个新的字符串-程序代码-组件,将对一个新的定义字符串规定一个或多个基本的字符串-程序代码-组件。代码生成器282这里为新字符串-程序代码-组件制定一个“getsentence”方法,用于新定义字符串的返回与设置一个功能的“executecodesegment()方法。它体现在提供单个字符串-程序代码-组件的,并在生成此新的字符串-程序代码-组件被使用的功能的组合。根据一个非常简单的的举例,在两个已经说明的字符串-程序代码-组件“现在是多晚?”与“在屏幕上输出一个字符串”基础上,可以为新的定义字符串“屏幕显示”生成一个字符串-程序代码-组件。一个相应的编程字符串可以如下表示:“生成定义字符串d与编程字符串p的新的字符串-程序代码-组件”,此处d与p每次作为字符串类型的参数相符。规范d=“屏幕显示”,p=“现在多晚了?在屏幕上输出字符串”,会得到期待的效果:一个新的字符串-程序代码-组件通过定义字符串“屏幕显示”被生成。如果如前所述用自然语言编程,输入编程字符串“现在多晚了?在屏幕上输出字符串”输入时,程序代码段符合被代码生成器生成的程序代码。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1