首先我们要了解什么是自然语言,比如汉语、英语、德语等一系列人与人之间用于沟通的语言,而编程语言则分为高级语言(如C、Java、C#、Python等)和低级语言(汇编语言)
计算机在长期的历史发展中,经过那么多科学家的研究,设计出了我们现在用的计算机,其中的坎坷与困难很难想象,如何将我们的实际问题转化为底层器件的运算,在解决这个问题的同时,就产生了高级编程语言、汇编语言以及计算机。
自然语言为什么不合适做编程语言,是因为自然语言经过了长期的发展,有太多不适用做编程语言的地方,其中最明显的是二义性,如不同音量和语气,以及说话上下文,就会使一段话表现不同的含义,计算机只是一个按部就班执行任务和程序的傻瓜,你给的命令如果存在多种意思,电脑是无法理解的,所以这个时候我们需要特殊的编程语言来告诉计算机我们的真实意图。
程序员在开发一个功能普遍的做法都是:自然语言描述需求------>解决问题的算法------->用程序语言描述算法,这样就可以将实际问题转化为严格的顺序指令,可以让计算机按照顺序去执行并解决我们的需求。
广义的“语言”是任何一种有结构的符号系统。人类的语言、手势、体态,
机
器的指令、命令、程序,
排版时的格式说明,
公路上的交通图标……都属于这种广
义的
“语言”。其中,
最重要的两类语言,
是自然语言和形式语言。
狭义的“语言”指“自然语言”,
即人类在其社会生活中发展出来的用来互相
交际的声音符号系统。现已发现数千种不同的自然语言。“自然语言理解”指的就
是使计算机来按照这种语言所表达的意义作出相应的反应的机制。
语言学上对语言有这样的层次划分:
第一层次是语音和文字,
即基本语言信号
的构成;
第二层次是词法和句法(合称“语法”),
即语言基本运用单位的构成和组
合的形式规律;
第三层次是语义,
即语言所要表达的概念结构;
第四层次是语用,
即语言与语言使用环境的相互作用。一般说来,
人和计算机打交道,
目前是采用键
盘输入字符的方式,
但语音的文字方式由于语音和文字的识别的进展也已经开始进
入实用的水平;
自然语言理解的关键,
仍然是文字进入计算机以后的词法和句法分
析、语义分析和语用分析。现在已经有一些计算机程序能在受限制的领域内“懂得”
英语等自然语言,
比如根据数据库里的信息回答问题或处理事务,
按照自然语言的
命令做一些简单的事情等等。要实现不限领域的自然语言理解,
目前在技术上还面
临很艰巨的挑战。
首先,
自然语言是极其复杂的符号系统。一个人尽管可以对自己的母语运用自
如,
但却无法把自己母语的构成规律、意义的表达规律和语言使用的规律用计算机
可以接受的方式彻底说清楚。传统的语言学是在没有计算机参照的条件下发展起来
的,
虽然为自然语言理解积累了宝贵的财富,
但那是讲给人的,
真正要让语言学知
识变成计算机上可 *** 作的,
绝不是那么简单,
也不能那么模糊。这个目标的实现,
需要大量又懂语言学又懂计算机的人在正确的技术路线的指导下一起做非常大规模
的基本建设,
绝不是一拍脑袋想出个“绝招”就能解决的。
其次,
自然语言的各个层次上都含有巨大的不确定性。在语音和文字层次上,
有一字多音、一音多字的问题;
在词法和句法层次上,
有词类词性、词边界、句法
结构的不确定性问题;
在语义和语用层次上,
也有大量的因种种原因造成的内涵、
外延、指代、言外之义的不确定性。语言学上把这些不确定性叫做“歧义”。歧义
一般不能通过发生歧义的语言单位自身获得解决,
而必须借助于更大的语言单位乃
至非语言的环境背景因素和常识来解决。人类有很强的依靠整体消除局部不确定性
的能力和常识推理能力,
体现在语言上就是利用语境信息和常识消除歧义的能力。
使计算机获得同样强大的能力,
是从事自然语言理解的学者梦寐以求的目标。
另外,
自然语言不是一成不变的死的语言,
它在社会生活中发展,
在 *** 不同语
言和同一语言的不同变体的人们之间的相互影响中变化。一个词、一个说法可能在
一夜之间突然流行起来;
特殊的人群结构变化会导致新的语言或新的语言变体
(如
方言)
的出现。这些都要求理解自然语言的计算机程序要具有对外界语言环境的应
变能力。
最后一点,
自然语言是人们交流思想的工具。既然交流的是思想,
那思想本身
在计算机里的组织结构就显得格外重要。在人工智能里,
这就是“知识表示”的问
题。可以说,
在知识表示问题上的突破,
对于自然语言理解的进展将产生决定性的
影响。
在上述四个方面,
都有许多学者在勇敢地迎接挑战,
使计算机程序一步步地朝
着不限领域的自然语言理解的远大目标前进。善解人意的计算机系统一定会在不远
的将来造福人类。
自然语言与编程语言有哪些相同之处:都是英语,单词意思差不多,注释报错显示都是英语。
由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似汉字或者普通英文,且由于远离对硬件的直接 *** 作,使得一般人经过学习之后都可以编程。高级语言通常按其基本类型、代系、实现方式、应用范围等分类。
编程语言
处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语言发展变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件、互联网和IT业的发展促进了编程语言的发展。
自适应语言包编程是一种基于自然语言处理技术的编程方式,它的目的是让非专业程序员也能够轻松地创建自己的计算机程序。这种编程方式使用了自适应语言包技术,即根据用户输入的自然语言描述,自动识别所需的程序功能和实现方法,并将这些功能和方法转化为计算机程序。
自适应语言包编程通常包括以下几个步骤:
1 制定语言包:制定包含常用编程功能和方法的语言包,例如常用的数据结构、算法、控制流程、输入输出等。
2 识别用户需求:根据用户输入的自然语言描述,识别用户所需的程序功能和实现方法。
3 生成程序代码:根据用户需求和预先定义的语言包,自动生成程序代码,并将其转换成可执行的计算机程序。
自适应语言包编程的优点在于它简化了编程过程,使非专业程序员也能够创建自己的计算机程序。同时,自适应语言包编程还可以提高程序的可读性和可维护性,减少因编程错误导致的程序崩溃和安全漏洞。但是,自适应语言包编程的局限性在于它可能无法满足复杂程序的需求,因为语言包的功能和方法是有限的,而且自然语言的表达方式也可能存在歧义和模糊性,导致生成的程序不够准确。
一、机器语言
1、优点:可以被计算机直接识别、执行,所以用机器语言写的程序效率最高。
2、缺点:是用指令编程,而成千上万条指令很难记住,且一旦出错很难找出错误。不同型号的计算机,指令编码并不相同,因此,针对某一型计算机写的程序移植到另外一种计算机上后,运行结果未必正确,甚至有可能根本不能运行。
二、汇编语言
1、优点:可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。
2、缺点:汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难等缺点。
三、高级语言
1、优点:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。
2、缺点:高级语言种类繁多。
扩展资料
程序设计语言具有心理工程及技术等特性。
1、心理特性:歧义性、简洁性、局部性、顺序性、传统性。
2、工程特性:可移植性,开发工具的可利用性,软件的可重用性、可维护性。
3、技术特性:支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。
参考资料来源:百度百科——程序设计语言
参考资料来源:百度百科——计算机设计语言
以上就是关于自然语言为什么不适合直接作为编程语言全部的内容,包括:自然语言为什么不适合直接作为编程语言、什么是自然语言啊、自然语言与编程语言有哪些相同之处等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)