官小龍 馬瑞敏
摘 要:計(jì)算機(jī)自1946年第一臺(tái)計(jì)算機(jī)出現(xiàn)以后,也有了蓬勃的發(fā)展,從早期的電子管計(jì)算機(jī)到現(xiàn)在超大規(guī)模集成電路,計(jì)算機(jī)的編碼語言亦在不斷前進(jìn),從早期的機(jī)器語言到現(xiàn)在Python以及Swift等高級(jí)語言,其形式語法之間存在著較大的差異。索緒爾認(rèn)為語言符號(hào)具有不變性和可變性得統(tǒng)一,語言系統(tǒng)必須有大量的符號(hào),而人機(jī)交互的過程,則可以視作為一種言語活動(dòng),通過分析軟件CiteSpace,目前計(jì)算機(jī)語言的研究重點(diǎn)還停留在機(jī)器翻譯,譯后編輯以及語言服務(wù)等領(lǐng)域,對(duì)計(jì)算機(jī)語言本身的研究較少。因此將從語言學(xué)的角度出發(fā),將對(duì)計(jì)算機(jī)編程語言(C語言和Python)進(jìn)行分析,探討計(jì)算機(jī)編程語言的發(fā)展規(guī)律,并研究未來計(jì)算機(jī)編程語言的發(fā)展方向,對(duì)外來計(jì)算機(jī)語言的設(shè)計(jì)起到一定的推進(jìn)作用。
關(guān)鍵詞:語言符號(hào);言語活動(dòng);計(jì)算機(jī)語言
中圖分類號(hào):TB 文獻(xiàn)標(biāo)識(shí)碼:Adoi:10.19311/j.cnki.1672.3198.2018.32.106
1 引言
人類第一臺(tái)電子計(jì)算機(jī),即“埃尼阿克(ENIAC)”問世于1946年,由大量的電子管組成,用于進(jìn)行彈道計(jì)算。自埃尼阿克的面世以后,電子計(jì)算機(jī)經(jīng)歷了電子管-晶體管-集成電路-超大規(guī)模集成電路的階段,運(yùn)行速度越來越快,而體積和成本也越來越低,從早期只能手動(dòng)控制,到現(xiàn)在使用高級(jí)語言編程,也經(jīng)歷了長時(shí)間的發(fā)展過程。一般認(rèn)為,計(jì)算機(jī)語言最早由二進(jìn)制0與1所組成,計(jì)算機(jī)通過讀取穿孔卡片從而獲得相應(yīng)的指令序列,與人類所使用的語言相差甚遠(yuǎn),其方式類似于摩爾斯電碼。匯編語言在二進(jìn)制碼的基礎(chǔ)上,加入了一定的助記符幫助程序員記憶操作碼,但仍然十分繁瑣。而高級(jí)語言諸如Fortran,C,C++,JAVA等,伴隨著個(gè)人電腦的普及,使編程語言的可讀性大大提高。計(jì)算機(jī)語言的不斷發(fā)展,其根本推動(dòng)力是抽象機(jī)制更高的要求,以及對(duì)程序設(shè)計(jì)思想更好的支持,也可以說使及其能夠理解的語言提升到能夠很好模擬人類思考問題的形式(李源,2008)。而高級(jí)語言的發(fā)展過程,從C語言的面向過程式編程語言,到C++,Python的面向?qū)ο笫骄幊?,到現(xiàn)在Swift面向協(xié)議式編程,可以說從無論式以縱向,即機(jī)器語言,匯編語言以及高級(jí)語言,還是以高級(jí)語言這個(gè)橫向維度,從面向過程中使用函數(shù)一步一步的執(zhí)行指令,到面向過程式的編程講問題分解成多個(gè)對(duì)象,可以看出編程方式越來越貼近實(shí)際生活,而且平臺(tái)無關(guān)的特性使程序可以方便地被移植到網(wǎng)絡(luò)上的不同機(jī)器、不同平臺(tái)(葛偉麗,2008)。語言的簡化使得開發(fā)周期縮短,而面向?qū)ο笈c面向協(xié)議又與當(dāng)今流行得敏捷開發(fā)模式相互契合,大大加快程序開發(fā)的速度,今日各式各樣得程序的,已經(jīng)在數(shù)量上遠(yuǎn)遠(yuǎn)超過了幾十年前,已難以用數(shù)量來估算??梢哉f形形色色的程序已經(jīng)成為我們生活中的一部分。
索緒爾提出了語言學(xué)的基本概念、研究方向和任務(wù),對(duì)現(xiàn)代語言學(xué)、符號(hào)學(xué)等學(xué)科產(chǎn)生了深遠(yuǎn)影響,成為結(jié)構(gòu)主義的重要來源(王銘玉等,2015)。自索緒爾開創(chuàng)現(xiàn)代語言學(xué)理論以后,語義學(xué),語用學(xué),生成語法,功能對(duì)等等諸多理論于上世紀(jì)相繼出現(xiàn),語言學(xué)理論百花齊放,人們紛紛從哲學(xué),社會(huì)學(xué),心理學(xué)等角度對(duì)于語言現(xiàn)象進(jìn)行闡釋,逐步形成了正是由此形成了形式主義和功能主義這兩大語言學(xué)陣營,它們互為補(bǔ)充,共同支撐起了當(dāng)代語言學(xué)的大廈(王銘玉等,同上)。
2 計(jì)算機(jī)語言研究現(xiàn)狀和前瞻
2.1 以CiteSpace角度分析計(jì)算機(jī)語言的研究現(xiàn)狀
盡管語言學(xué)和計(jì)算機(jī)科學(xué)都已經(jīng)經(jīng)過數(shù)十年的發(fā)展,但是兩者之間相互結(jié)合的地方并不多見,而是更多的計(jì)算機(jī)作為一種工具,來解決諸如機(jī)器翻譯等自然語言的相關(guān)問題。
CiteSpace這款軟件的原理是分析單位(文獻(xiàn)、關(guān)鍵詞、作者等)的相似性分析及測度,本質(zhì)上屬于宏觀知識(shí)計(jì)量的信息可視化技術(shù)(李琬等,2014)。CiteSpace可視化工具,可以將一個(gè)知識(shí)領(lǐng)域來龍去脈的演進(jìn)歷程集中展現(xiàn)在一幅引文網(wǎng)絡(luò)圖譜上,并把圖譜上作為知識(shí)基礎(chǔ)的引文節(jié)點(diǎn)文獻(xiàn)和共引聚類所表征的研究前沿自動(dòng)標(biāo)識(shí)出來(陳悅等,2015)。
筆者使用CiteSpace對(duì)CNKI上關(guān)鍵詞“計(jì)算機(jī)語言”的進(jìn)行了提取,選取的年份為2003年至2017年,呈現(xiàn)出這15年以來引用次數(shù)最高的引文。這里從CiteSpace所呈現(xiàn)的圖譜和頻率信息來看,大多數(shù)計(jì)算機(jī)語言的研究還處在“機(jī)器翻譯”,“譯后編輯”,“語言服務(wù)行業(yè)”以及“翻譯模型”等層面上,可以看出廣大學(xué)者目前仍然將計(jì)算機(jī)語言與機(jī)器翻譯來掛鉤,計(jì)算機(jī)只是被看作用來解決翻譯問題的一種工具,而并沒有作為語言使用對(duì)象而加以研究,故而并沒有語言學(xué)的角度來分析計(jì)算機(jī)編程語言本身,所以說目前還很少有從語言學(xué)視角來研究早已發(fā)展了數(shù)十年的計(jì)算機(jī)編程語言。
2.2 計(jì)算機(jī)編程語言的探索
索緒爾曾認(rèn)為,語言既是一個(gè)系統(tǒng),它的各項(xiàng)因素都有著連帶關(guān)系,而且其中每項(xiàng)要素的價(jià)值都只是因?yàn)橛衅渌黜?xiàng)要素同時(shí)存在的結(jié)果。那么從這個(gè)層面看,無論何種計(jì)算機(jī)編程語言,都可以構(gòu)成一個(gè)系統(tǒng),且每一個(gè)語句,函數(shù)都有著連帶的關(guān)系,而語句和函數(shù)之間正是因?yàn)橄嗷ゴ嬖?,相互依存,才?gòu)成了程序本身。而人與計(jì)算機(jī)之間的交互可以看作是一個(gè)言語活動(dòng),人類通過輸入編程語言與計(jì)算機(jī)交互,而計(jì)算機(jī)執(zhí)行人類所輸入的編程語言從而給予人類反饋信息,從以上可以看出,計(jì)算機(jī)編程語言可視作人與機(jī)器之間交流的一種“語言”,具有一些語言所具有的特性。
3 語言實(shí)例分析
自電子計(jì)算機(jī)誕生以來,人類已經(jīng)發(fā)明了許許多多計(jì)算機(jī)編程語言,故將他們每一個(gè)進(jìn)行舉例分析并不現(xiàn)實(shí)。這里通過分析兩種主要的編程語言,即上世紀(jì)60年代末由貝爾實(shí)驗(yàn)室所發(fā)明的C語言,與1989年誕生目前廣泛用于人工智能的Python進(jìn)行分析,這兩種語言最具代表性,前者面向過程,且廣泛用于嵌入式系統(tǒng)的開發(fā),而后者則是面向過程語言的佼佼者,不僅功能強(qiáng)大,且容易閱讀。而“Hello World程序”正是源于C語言設(shè)計(jì)者所編寫的《C程序設(shè)計(jì)語言》中第一個(gè)實(shí)例,目前已為大多數(shù)程序設(shè)計(jì)教程中所引用作為第一格程序范例,其功能為輸出一段為“Hello World”的字符串。通過這一小段編程語言的分析,筆者希望能從中分析并找到一些語言學(xué)規(guī)律。
3.1 C語言
#include
main()
{printf(“hello,world\\n”);}
如上所述,這段程序的功能是輸出一段“hello world”的字符串,而計(jì)算機(jī)編譯這段程序的過程,可以視作計(jì)算機(jī)“大腦”進(jìn)行處理的過程,隨后計(jì)算機(jī)輸出“hello world”的字符串,整個(gè)交互過程到此結(jié)束。索緒爾曾說語言符號(hào)是兩面的心里實(shí)體,以printf語句為例,可以理解為圖2。
可以看出printf語句所指的是打印輸出的概念,之所謂稱之為符號(hào),是因?yàn)樵贑語言這套語言系統(tǒng)中,printf帶有“打印輸出”的概念。
但是執(zhí)行這次交互,我們需要首先包含標(biāo)準(zhǔn)輸入輸出庫,也就相當(dāng)于告訴計(jì)算機(jī)要調(diào)用這些標(biāo)準(zhǔn)庫,然后定義一個(gè)main函數(shù)開始執(zhí)行程序,如同告訴計(jì)算機(jī)然后你再調(diào)用函數(shù)再去打印“hello world”字符串。從中看出人與計(jì)算機(jī)的交互方式與人類之間還存在著較大的差距。
3.2 Python
Python出現(xiàn)較C語言晚一些,目前廣泛應(yīng)用于人工智能和統(tǒng)計(jì)等領(lǐng)域,以Python3版本的語法為例,其“Hello world”也比C語言版本要簡單得多。
print('Hello World')
Python只需要一句話,即print就可以完成字符串的輸出工作,而且輸出語句也不再是print而不再是printf,這與符號(hào)的任意性相一致,在Python的語法系統(tǒng)中,print所指才是打印輸出概念,語言演化中的歷時(shí)態(tài)必須有一種動(dòng)力因素,來產(chǎn)生某種效果,編程語言在發(fā)展中不斷為人類使用,后來的設(shè)計(jì)者以易讀性的考慮,使編程語言變得更加貼近自然語言,這種易讀性的動(dòng)力推動(dòng)了編程語言的發(fā)展,通過printf向print轉(zhuǎn)變,體現(xiàn)了編程語言同樣具有歷時(shí)規(guī)律。
4 結(jié)束語
對(duì)于不斷出現(xiàn)的計(jì)算機(jī)編程語言,這些編程語言不僅僅使人類用來實(shí)現(xiàn)某些特定任務(wù)而產(chǎn)生的電子工具,同時(shí)也需要作為一門語言來進(jìn)行對(duì)待。通過CiteSpace軟件對(duì)現(xiàn)在計(jì)算機(jī)語言進(jìn)行分析,發(fā)現(xiàn)當(dāng)前學(xué)者們認(rèn)為計(jì)算機(jī)語言更多的與翻譯模型,語言服務(wù)等行業(yè)相聯(lián)系,將其視為一種工具,而非語言。筆者以C語言和Python兩種語言為例,對(duì)編程語言系統(tǒng)種的“所指”以及“言語活動(dòng)”等語言學(xué)理論進(jìn)行了剖析與探究,同時(shí)從語言的歷時(shí)性的角度分析了計(jì)算機(jī)語言的演變,出于易讀性和簡便性的考慮,編程語言設(shè)計(jì)越來越貼近人類所使用的自然語言,這種易讀性推動(dòng)了計(jì)算機(jī)編程語言的發(fā)展,隨著人工智能技術(shù)等不斷深入,人與機(jī)器之間的交互行為會(huì)變得越來越頻繁,計(jì)算機(jī)語言作為交互方式之一,將會(huì)得到進(jìn)一步的重視。
參考文獻(xiàn)
[1]陳悅等.CiteSpace知識(shí)圖譜的方法論功能[J].科學(xué)學(xué)研究,2015,(2):242.253.
[2]葛偉麗.計(jì)算機(jī)語言發(fā)展和自然辯證法[J].科技咨詢,2008,(36):249.
[3]李琬,孫斌棟.西方經(jīng)濟(jì)地理學(xué)的知識(shí)結(jié)構(gòu)與研究熱點(diǎn)-基于CiteSpace 的圖譜量化研究[J].經(jīng)濟(jì)地理,2014,(4):7.12.
[4]李源.計(jì)算機(jī)語言發(fā)展的歷史、現(xiàn)狀和未來[J].數(shù)碼世界,2008,(12):20.21.
[5]索緒爾.普通語言學(xué)教程[M].北京:商務(wù)印書館,2017.
[6]王銘玉,于鑫.索緒爾語言學(xué)理論的繼承與批判[J].外語教學(xué)與研究,2013,(3):363.373.