语言哲学视角下自然语言与程序设计语言对比研究
摘要:随着计算机网络技术的发展以及相关学科的演进,程序设计语言正在逐步从单一学科工具进化成为一种通用的实用人工语言,如何将在自然语言研究中行之有效的语言学准则和理论运用与人工语言之上是一個不可回避的问题。本文立足借助语言哲学提供的理论工具,结合语言学和计算机科学的相关理论对自然语言与程序设计语言的关系进行分析和研究,力图展示作为人造语言的计算机程序设计语言在其内部构造中映射出的与自然语言类似之处。
关键词:语言对比、程序设计语言、自然语言、语言哲学
*本文是2015年度河南省教育厅人文社会科学研究一般项目(获得河南省教育厅人文社会科学研究项目资助)《生成语法视阈下跨语言语法比较研究的价值及其在教学中的应用》(2015-QN-454)的阶段性研究成果。
一、20世纪语言哲学的发展历程
20世纪是语言学和哲学高速发展的时代,随着一些哲学家开始走出传统的哲学研究范畴,将语言当作自己的研究目标,于此同时一些语言学家也开始从传统的哲学中汲取养分,随后一些哲学家开始提出语言哲学的概念。维特根斯坦正式其中的主要代表人物。他的哲学主要研究的是语言,他想揭示当人们交流时,表达自己的时候到发生了什么。他主张哲学的本质就是语言。语言是人类思想的表达,是整个文明的基础,哲学的本质只能在语言中寻找。他消解了传统形而上学的唯一本质,为哲学找到了新的发展方向。
随着时代的发展,计算机网络技术逐渐不再以新技术的面貌出现在世界中,而在更多的场景中,在越来越多的领域中,计算机网络技术扮演者骨干和中流砥柱的作用。甚至可以好不夸张的说,当今时代所享受的快捷高效的节奏正是由于有了无数的计算机网络节点构成的网络骨架才得以实现。
人类自然语言,伴随着人类历史和文明的发展,从简单粗糙的雏形逐步发展成为翔实丰富、表现能力极强的语言体系,是人类智慧和人类文明发展的一个充分的体现。自然语言的发展经历了人类主动的选择和进化,而程序设计语言的演变过程中,这些来自自然语言与人类文明的启示能否发挥相应的作用呢?这些都将是吸引学界的新视角、新话题。
二、Lisp程序设计语言介绍
本文立足借用语言哲学提供的方法论和理论依据结合自然语言和程序设计语言进行对比分析研究,从语言生成的内部对自然语言和程序设计语言(亦可理解为人工语言)进行比较。为了更好的进行分析研究,首先需要阐明所选择的自然语言与程序设计语言。自然语言方面,选择使用英语与汉语两种主流语言。而在程序设计语言方面,则选择使用Lisp语言的方言CommonLisp程序设计语言来进行与两种自然语言的对比。
Lisp语言是现在仍然在使用的所有程序设计语言中第二老的。Lisp拥有非常久远的历史。它最早的出现可以追溯到20世纪50年代。Lisp由图灵奖获得者JohnMcCarthy发明。Lisp最早的初衷是为了解决人工智能发展的需要,尽管人工智能早期的发展非常缓慢,但是Lisp作为一种理想化的工具却的到了长久的关注和支持,久而久之,越来越多来自与计算机行业其他领域的专家加入到Lisp的开发队伍中。随着时代的变迁,Lisp逐步从一种单一的语言变化成一个语言家族,从一种实实在在的计算机程序设计语言变成了一种规范,所有遵循这种规范、有在特殊领域进行深度挖掘的语言被称为Lisp的方言。而我们这里涉及的CommonLisp则是一种通用的Lisp方言。
三、 自然语言与程序设计语言对比研究
1.语言的基本构成单位
语言作为表达思想的外在工具,是由基本的单位构成的,从词法的角度,语素和语素合成单词是有一定规则的。例如汉语中的‘库’字,作为一个语素,和其它语素结合成单词时有一个限制条件,必须是单音语素。如:库存、库房、车库。程序设计语言所使用的基本单位也有着类似的规定,从而保证其基本构成单位的有效与合法,在程序设计语言中,这些基本的构成单位可以成为identifier(标示词),而在CommonLisp中这些单位则又被称为Symbol(符号)或者atom(原子)。例如this-is-a-symbol就是一个合法的Symbol,而还有一些其他类型的Symbol可以出现在CommonLisp语言中,例如关键词,比如,:keywords就是一个合法的关键词符号。这一规则,严格的规定了可以作为语言构成单位的基本元素的组成方式,从而保证了更高一级语言表达的整洁与合理。
2.语言内部的逻辑关系
有了基本的表达单位,便可以在此基础上构建出更加复杂的表达结构,从而表达逻辑关系。首先我们来分析一下汉语与英语的逻辑关系构成方式。两种语言在构成逻辑关系表达结构的最大差别在于,汉语使用的是隐性的逻辑关系表达方式,也就是不一定需要借助明确的逻辑关系连接词来构成逻辑关系,而英语与此相反,英语中所有的逻辑关系,都需要借用逻辑关系词语来表达,否则就会被认为是缺失或者不符合语法规定。
例如,汉语句子中“车未停稳,不要下车”就将表达逻辑关系的“如果”省略掉了,而其英语地对等表达方式“Ifthecarisnotsteady,pleasedon’tgetoffthecar”中的“if”则不能省略,否则便会造成整个句子的缺失和不完整。
而CommonLisp语言中表达类似的逻辑判断,也需要借助明确的语法标志词,例如:
(if(>x0)x0)
在这个语句中,如果x大于0的先决条件得到满足,则语句会返回x的值,反之则会输出0作为整个语句的返回值。
参考文献:
[1]:AdvancedTechniquesforCommonLisp[M],PrenticeHall,UpperSaddleRiver,NewJersey,1993.
[2]陈嘉映.语言哲学[M],北京:北京大学出版社,2003。
[3]维特根斯坦.逻辑哲学论[M],商务印书馆,1996。
闫达(作者单位:信阳农林学院)
上一篇:高等数学教学中的数学哲学思考
下一篇:科学技术哲学与自然辩证法辨析