从语言学角度初探计算机编程语言

2018-12-07 11:57官小龙马瑞敏
现代商贸工业 2018年32期

官小龙 马瑞敏

摘 要:计算机自1946年第一台计算机出现以后,也有了蓬勃的发展,从早期的电子管计算机到现在超大规模集成电路,计算机的编码语言亦在不断前进,从早期的机器语言到现在Python以及Swift等高级语言,其形式语法之间存在着较大的差异。索绪尔认为语言符号具有不变性和可变性得统一,语言系统必须有大量的符号,而人机交互的过程,则可以视作为一种言语活动,通过分析软件CiteSpace,目前计算机语言的研究重点还停留在机器翻译,译后编辑以及语言服务等领域,对计算机语言本身的研究较少。因此将从语言学的角度出发,将对计算机编程语言(C语言和Python)进行分析,探讨计算机编程语言的发展规律,并研究未来计算机编程语言的发展方向,对外来计算机语言的设计起到一定的推进作用。

关键词:语言符号;言语活动;计算机语言

中图分类号:TB 文献标识码:Adoi:10.19311/j.cnki.1672.3198.2018.32.106

1 引言

人类第一台电子计算机,即“埃尼阿克(ENIAC)”问世于1946年,由大量的电子管组成,用于进行弹道计算。自埃尼阿克的面世以后,电子计算机经历了电子管-晶体管-集成电路-超大规模集成电路的阶段,运行速度越来越快,而体积和成本也越来越低,从早期只能手动控制,到现在使用高级语言编程,也经历了长时间的发展过程。一般认为,计算机语言最早由二进制0与1所组成,计算机通过读取穿孔卡片从而获得相应的指令序列,与人类所使用的语言相差甚远,其方式類似于摩尔斯电码。汇编语言在二进制码的基础上,加入了一定的助记符帮助程序员记忆操作码,但仍然十分繁琐。而高级语言诸如Fortran,C,C++,JAVA等,伴随着个人电脑的普及,使编程语言的可读性大大提高。计算机语言的不断发展,其根本推动力是抽象机制更高的要求,以及对程序设计思想更好的支持,也可以说使及其能够理解的语言提升到能够很好模拟人类思考问题的形式(李源,2008)。而高级语言的发展过程,从C语言的面向过程式编程语言,到C++,Python的面向对象式编程,到现在Swift面向协议式编程,可以说从无论式以纵向,即机器语言,汇编语言以及高级语言,还是以高级语言这个横向维度,从面向过程中使用函数一步一步的执行指令,到面向过程式的编程讲问题分解成多个对象,可以看出编程方式越来越贴近实际生活,而且平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台(葛伟丽,2008)。语言的简化使得开发周期缩短,而面向对象与面向协议又与当今流行得敏捷开发模式相互契合,大大加快程序开发的速度,今日各式各样得程序的,已经在数量上远远超过了几十年前,已难以用数量来估算。可以说形形色色的程序已经成为我们生活中的一部分。

索绪尔提出了语言学的基本概念、研究方向和任务,对现代语言学、符号学等学科产生了深远影响,成为结构主义的重要来源(王铭玉等,2015)。自索绪尔开创现代语言学理论以后,语义学,语用学,生成语法,功能对等等诸多理论于上世纪相继出现,语言学理论百花齐放,人们纷纷从哲学,社会学,心理学等角度对于语言现象进行阐释,逐步形成了正是由此形成了形式主义和功能主义这两大语言学阵营,它们互为补充,共同支撑起了当代语言学的大厦(王铭玉等,同上)。

2 计算机语言研究现状和前瞻

2.1 以CiteSpace角度分析计算机语言的研究现状

尽管语言学和计算机科学都已经经过数十年的发展,但是两者之间相互结合的地方并不多见,而是更多的计算机作为一种工具,来解决诸如机器翻译等自然语言的相关问题。

CiteSpace这款软件的原理是分析单位(文献、关键词、作者等)的相似性分析及测度,本质上属于宏观知识计量的信息可视化技术(李琬等,2014)。CiteSpace可视化工具,可以将一个知识领域来龙去脉的演进历程集中展现在一幅引文网络图谱上,并把图谱上作为知识基础的引文节点文献和共引聚类所表征的研究前沿自动标识出来(陈悦等,2015)。

笔者使用CiteSpace对CNKI上关键词“计算机语言”的进行了提取,选取的年份为2003年至2017年,呈现出这15年以来引用次数最高的引文。这里从CiteSpace所呈现的图谱和频率信息来看,大多数计算机语言的研究还处在“机器翻译”,“译后编辑”,“语言服务行业”以及“翻译模型”等层面上,可以看出广大学者目前仍然将计算机语言与机器翻译来挂钩,计算机只是被看作用来解决翻译问题的一种工具,而并没有作为语言使用对象而加以研究,故而并没有语言学的角度来分析计算机编程语言本身,所以说目前还很少有从语言学视角来研究早已发展了数十年的计算机编程语言。

2.2 计算机编程语言的探索

索绪尔曾认为,语言既是一个系统,它的各项因素都有着连带关系,而且其中每项要素的价值都只是因为有其他各项要素同时存在的结果。那么从这个层面看,无论何种计算机编程语言,都可以构成一个系统,且每一个语句,函数都有着连带的关系,而语句和函数之间正是因为相互存在,相互依存,才构成了程序本身。而人与计算机之间的交互可以看作是一个言语活动,人类通过输入编程语言与计算机交互,而计算机执行人类所输入的编程语言从而给予人类反馈信息,从以上可以看出,计算机编程语言可视作人与机器之间交流的一种“语言”,具有一些语言所具有的特性。

3 语言实例分析

自电子计算机诞生以来,人类已经发明了许许多多计算机编程语言,故将他们每一个进行举例分析并不现实。这里通过分析两种主要的编程语言,即上世纪60年代末由贝尔实验室所发明的C语言,与1989年诞生目前广泛用于人工智能的Python进行分析,这两种语言最具代表性,前者面向过程,且广泛用于嵌入式系统的开发,而后者则是面向过程语言的佼佼者,不仅功能强大,且容易阅读。而“Hello World程序”正是源于C语言设计者所编写的《C程序设计语言》中第一个实例,目前已为大多数程序设计教程中所引用作为第一格程序范例,其功能为输出一段为“Hello World”的字符串。通过这一小段编程语言的分析,笔者希望能从中分析并找到一些语言学规律。

3.1 C语言

#include

main()

{printf(“hello,world\\n”);}

如上所述,这段程序的功能是输出一段“hello world”的字符串,而计算机编译这段程序的过程,可以视作计算机“大脑”进行处理的过程,随后计算机输出“hello world”的字符串,整个交互过程到此结束。索绪尔曾说语言符号是两面的心里实体,以printf语句为例,可以理解为图2。

可以看出printf语句所指的是打印输出的概念,之所谓称之为符号,是因为在C语言这套语言系统中,printf带有“打印输出”的概念。

但是执行这次交互,我们需要首先包含标准输入输出库,也就相当于告诉计算机要调用这些标准库,然后定义一个main函数开始执行程序,如同告诉计算机然后你再调用函数再去打印“hello world”字符串。从中看出人与计算机的交互方式与人类之间还存在着较大的差距。

3.2 Python

Python出现较C语言晚一些,目前广泛应用于人工智能和统计等领域,以Python3版本的语法为例,其“Hello world”也比C语言版本要简单得多。

print('Hello World')

Python只需要一句话,即print就可以完成字符串的输出工作,而且输出语句也不再是print而不再是printf,这与符号的任意性相一致,在Python的语法系统中,print所指才是打印輸出概念,语言演化中的历时态必须有一种动力因素,来产生某种效果,编程语言在发展中不断为人类使用,后来的设计者以易读性的考虑,使编程语言变得更加贴近自然语言,这种易读性的动力推动了编程语言的发展,通过printf向print转变,体现了编程语言同样具有历时规律。

4 结束语

对于不断出现的计算机编程语言,这些编程语言不仅仅使人类用来实现某些特定任务而产生的电子工具,同时也需要作为一门语言来进行对待。通过CiteSpace软件对现在计算机语言进行分析,发现当前学者们认为计算机语言更多的与翻译模型,语言服务等行业相联系,将其视为一种工具,而非语言。笔者以C语言和Python两种语言为例,对编程语言系统种的“所指”以及“言语活动”等语言学理论进行了剖析与探究,同时从语言的历时性的角度分析了计算机语言的演变,出于易读性和简便性的考虑,编程语言设计越来越贴近人类所使用的自然语言,这种易读性推动了计算机编程语言的发展,随着人工智能技术等不断深入,人与机器之间的交互行为会变得越来越频繁,计算机语言作为交互方式之一,将会得到进一步的重视。

参考文献

[1]陈悦等.CiteSpace知识图谱的方法论功能[J].科学学研究,2015,(2):242.253.

[2]葛伟丽.计算机语言发展和自然辩证法[J].科技咨询,2008,(36):249.

[3]李琬,孙斌栋.西方经济地理学的知识结构与研究热点-基于CiteSpace 的图谱量化研究[J].经济地理,2014,(4):7.12.

[4]李源.计算机语言发展的历史、现状和未来[J].数码世界,2008,(12):20.21.

[5]索绪尔.普通语言学教程[M].北京:商务印书馆,2017.

[6]王铭玉,于鑫.索绪尔语言学理论的继承与批判[J].外语教学与研究,2013,(3):363.373.