張敬言
【摘要】? ? 除了硬件,軟件是計(jì)算機(jī)實(shí)現(xiàn)特定功能的基礎(chǔ),軟件又分為系統(tǒng)軟件和應(yīng)用軟件兩種類(lèi)型,但都是借助計(jì)算機(jī)編程語(yǔ)言實(shí)現(xiàn)的。本文主要根據(jù)計(jì)算機(jī)編程語(yǔ)言的發(fā)展歷程,從編程語(yǔ)言的概念、工作過(guò)程和應(yīng)用角度分別對(duì)機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言進(jìn)行了研究分析,為深入了解計(jì)算機(jī)編程語(yǔ)言提供參考。
【關(guān)鍵詞】? ? 計(jì)算機(jī)? ? 編程語(yǔ)言? ? 機(jī)器語(yǔ)言? ? 高級(jí)語(yǔ)言
一、引言
隨著信息技術(shù)的迅速發(fā)展和應(yīng)用,計(jì)算機(jī)技術(shù)的應(yīng)用也在眾多的科技領(lǐng)域中發(fā)揮著越來(lái)越大的作用。通常而言,計(jì)算機(jī)系統(tǒng)是由一些硬件組件和常用軟件系統(tǒng)組成,這里說(shuō)的硬件組件是指由電路集成的電子芯片或者是其他的物理部件,是計(jì)算機(jī)功能實(shí)現(xiàn)的基礎(chǔ),比方說(shuō)我們最常見(jiàn)到的CPU、主板和顯示器等。
而軟件系統(tǒng)又經(jīng)常被分為系統(tǒng)軟件與應(yīng)用軟件兩種類(lèi)型,例如Windows 10就屬于典型的系統(tǒng)軟件,主要負(fù)責(zé)對(duì)以芯片為基礎(chǔ)的硬件組件的管理,在硬件組件和應(yīng)用軟件之間起到一個(gè)承上啟下的橋梁作用。應(yīng)用軟件總量繁多,如Office、Classin等,是根據(jù)特定功能需求開(kāi)發(fā)出來(lái)的供用戶直接使用的一種程序[1][2]。
不過(guò),不論是以操作系統(tǒng)為代表的系統(tǒng)軟件,還是以辦公軟件為代表的應(yīng)用軟件,其本質(zhì)都離不開(kāi)計(jì)算機(jī)編程語(yǔ)言[3]。因此學(xué)習(xí)和掌握計(jì)算機(jī)編程語(yǔ)言是計(jì)算機(jī)技術(shù)發(fā)展的基礎(chǔ),其經(jīng)過(guò)由簡(jiǎn)單到復(fù)雜,由低級(jí)向高級(jí)發(fā)展的一個(gè)過(guò)程。本文結(jié)合對(duì)計(jì)算機(jī)程序和計(jì)算機(jī)編程語(yǔ)言的理論,從計(jì)算機(jī)語(yǔ)言的概念、工作過(guò)程和實(shí)際應(yīng)用等角度對(duì)典型計(jì)算機(jī)語(yǔ)言進(jìn)行探討與分析總結(jié),為今后進(jìn)一步學(xué)習(xí)計(jì)算機(jī)技術(shù)奠定基礎(chǔ)。
二、機(jī)器語(yǔ)言
2.1概念
顧名思義,機(jī)器語(yǔ)言是適用于機(jī)器理解的語(yǔ)言,機(jī)器碼是機(jī)器語(yǔ)言的指令集,通常都是以二進(jìn)制代碼實(shí)現(xiàn)的,雖然現(xiàn)在計(jì)算機(jī)的發(fā)展已經(jīng)很少看到機(jī)器語(yǔ)言,但高級(jí)語(yǔ)言的基礎(chǔ)仍舊是機(jī)器語(yǔ)言。機(jī)器語(yǔ)言可以對(duì)計(jì)算機(jī)的編程系統(tǒng)進(jìn)行識(shí)別和操作,對(duì)不同種CPU,對(duì)應(yīng)的機(jī)器語(yǔ)言是不一致的,這是由于硬件結(jié)構(gòu)不同所導(dǎo)致[4][5]。CPU的基礎(chǔ)是集成電路,而電路只有兩個(gè)狀態(tài),通常采用“0”和“1”來(lái)描述電路的狀態(tài),所以機(jī)器語(yǔ)言也是基于“0”和“1”來(lái)實(shí)現(xiàn)的,CPU能夠?qū)⒌降臋C(jī)器語(yǔ)言直接執(zhí)行,即機(jī)器語(yǔ)言從執(zhí)行效率上來(lái)說(shuō)比其他的語(yǔ)言都要高。
2.2工作過(guò)程
簡(jiǎn)單的來(lái)說(shuō),機(jī)器語(yǔ)言是利用二進(jìn)制代碼 “0”和“1”,通過(guò)不同的排列組合實(shí)現(xiàn)對(duì)硬件操作的特定功能。當(dāng)程序員需要借助機(jī)器語(yǔ)言實(shí)現(xiàn)對(duì)計(jì)算機(jī)操作時(shí),需要掌握特定CPU的機(jī)器語(yǔ)言指令及其實(shí)際功能,然后按照機(jī)器語(yǔ)言的要求,自行對(duì)每條指令進(jìn)行操作,為每一次操作分配存儲(chǔ)空間,并且需要記住各個(gè)狀態(tài)的變化,可見(jiàn)其執(zhí)行過(guò)程十分復(fù)雜。而且計(jì)算機(jī)的機(jī)器語(yǔ)言功能與格式與對(duì)象機(jī)器的位數(shù)、存儲(chǔ)空間和指令功能有關(guān)。通常而言,一條機(jī)器語(yǔ)言指令中,包含了常見(jiàn)的操作碼(運(yùn)算功能),操作數(shù)(運(yùn)算對(duì)象)和操作結(jié)果(運(yùn)算結(jié)果),并且都是用二進(jìn)制來(lái)表示的。根據(jù)不同型號(hào)的計(jì)算機(jī),采用一定的指令格式來(lái)編寫(xiě)指令,對(duì)計(jì)算機(jī)的操作系統(tǒng)進(jìn)行指令輸入,進(jìn)而對(duì)計(jì)算機(jī)上的操作系統(tǒng)進(jìn)行編譯和解釋。
2.3應(yīng)用分析
機(jī)器語(yǔ)言所使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語(yǔ)言,其一條指令就是一個(gè)語(yǔ)句。盡管各種型號(hào)的計(jì)算機(jī)不同,機(jī)器語(yǔ)言也有所不同,但也有一些基本的常用機(jī)器語(yǔ)言指令是可以通用的,具有一定的兼容性,這種兼容性被廣泛應(yīng)用于軟件特別是應(yīng)用程序的更新,所以其運(yùn)算效率是所有語(yǔ)言中最高的。但它也存在著眾多的缺陷,例如,編寫(xiě)代碼時(shí)的繁瑣和依賴(lài)性強(qiáng),以及使用時(shí)出錯(cuò)率較高。由于大量的繁瑣細(xì)節(jié),導(dǎo)致了程序員難以駕駛計(jì)算機(jī)。因此,這也是計(jì)算機(jī)在剛發(fā)明時(shí)未能廣泛得到推廣的一個(gè)重要原因。但無(wú)論是目前多么智能的計(jì)算機(jī),都離不開(kāi)機(jī)器語(yǔ)言對(duì)其進(jìn)行最基本的指令。所以機(jī)器語(yǔ)言雖然效率很高,但是使用起來(lái)非常繁瑣,所以后來(lái)人們又發(fā)明了另一種更方便的語(yǔ)言——匯編語(yǔ)言,下面我們來(lái)介紹一下匯編語(yǔ)言。
三、匯編語(yǔ)言
3.1概念
雖然匯編語(yǔ)言是一種低級(jí)語(yǔ)言[6],但是目前它卻被應(yīng)用在很多地方。例如用在電子計(jì)算機(jī)、微控制器和其他一些可編程的機(jī)器上。它還有另外一種叫法:符號(hào)語(yǔ)言。顧名思義,即用符號(hào)來(lái)代替機(jī)器指令的操作碼。匯編語(yǔ)言的應(yīng)用會(huì)根據(jù)機(jī)器設(shè)備的不同而采用不一樣的語(yǔ)言指令集,并且能轉(zhuǎn)化為機(jī)器指令。
實(shí)際上來(lái)說(shuō),兩種語(yǔ)言的指令集是相互對(duì)應(yīng)的。在目前的實(shí)際使用過(guò)程當(dāng)中,匯編語(yǔ)言并沒(méi)有像其他語(yǔ)言一樣能夠廣泛的用在程序的設(shè)計(jì)之中。通常來(lái)說(shuō),它只是被用于一些硬件或是高要求的程序優(yōu)化的情況下,同時(shí)它還能夠被用于驅(qū)動(dòng)、實(shí)時(shí)運(yùn)行等程序的設(shè)計(jì)中。簡(jiǎn)而言之,匯編語(yǔ)言就是機(jī)器語(yǔ)言的一種升級(jí)版,由英文字母所構(gòu)成,就是將繁瑣的機(jī)器語(yǔ)言匯編為較為簡(jiǎn)潔的計(jì)算機(jī)語(yǔ)言。
3.2工作過(guò)程
匯編語(yǔ)言是一種能夠直接對(duì)處理器進(jìn)行處理的語(yǔ)言。只有在指令的控制下,處理器才能進(jìn)行工作,并且不同的處理器都有它們自身的一套工作指令。不同處理器的這一套工作指令之間不能相互應(yīng)用,具有唯一性。匯編語(yǔ)言的主體實(shí)質(zhì)上就是一種指令,這種匯編指令涵蓋了很多種類(lèi)型的指令,例如輸入輸出、邏輯運(yùn)算等指令。值得注意的是,匯編指令要與機(jī)器指令要相互區(qū)別開(kāi)來(lái)。它們的區(qū)別在于表達(dá)指令的方式上,前者有著簡(jiǎn)單并且容易被記憶的格式。現(xiàn)在對(duì)于匯編程序而言,主要為各類(lèi)程序的開(kāi)發(fā)、修改等增加附加的支持機(jī)制。就比如我們常見(jiàn)的宏(Macro),這是一種編程工具所帶有的批量處理操作,也就是宏匯編器。如果想要使用匯編語(yǔ)言,就必須借助匯編器(Assembler)來(lái)實(shí)現(xiàn)。匯編器能夠?qū)崿F(xiàn)將匯編語(yǔ)言轉(zhuǎn)成機(jī)器能夠識(shí)別的語(yǔ)言。通常來(lái)說(shuō),匯編器只能夠生成目標(biāo)代碼,并不能生成直接可以執(zhí)行的代碼,必須要通過(guò)鏈接器中轉(zhuǎn)一下,然后才能夠生成可以直接執(zhí)行的代碼。
在實(shí)際的應(yīng)用過(guò)程中,匯編語(yǔ)言的工作過(guò)程就是程序員使用一些英文簡(jiǎn)寫(xiě)字母編寫(xiě)成更容易識(shí)別與記憶的匯編指令等,然后再通過(guò)編譯器從而轉(zhuǎn)變?yōu)榭梢灾苯颖籆PU執(zhí)行的機(jī)器語(yǔ)言,進(jìn)而“間接的”對(duì)計(jì)算機(jī)的操作系統(tǒng)進(jìn)行編譯和操控。
3.3應(yīng)用分析
匯編語(yǔ)言實(shí)際上就是輔助機(jī)器語(yǔ)言的一種符號(hào),相對(duì)來(lái)說(shuō)匯編語(yǔ)言有著更易改寫(xiě)、調(diào)控等優(yōu)點(diǎn)。一位優(yōu)秀的匯編語(yǔ)言工作者是能夠使用一些技術(shù)設(shè)計(jì),讓匯編語(yǔ)言編寫(xiě)的代碼有著超越高級(jí)語(yǔ)言編寫(xiě)的代碼的優(yōu)勢(shì),比方說(shuō)在執(zhí)行速度方面,有著更快的速度;在內(nèi)存空間方面,占用的內(nèi)存更少。通過(guò)使用匯編語(yǔ)言設(shè)計(jì)出來(lái)的程序最后還是要被轉(zhuǎn)化為機(jī)器指令,用這樣的方式能夠保證機(jī)器語(yǔ)言的一一對(duì)應(yīng),能夠直接便捷地訪問(wèn)和操作計(jì)算機(jī)。匯編語(yǔ)言代碼非常的簡(jiǎn)短、執(zhí)行命令的效率高、不會(huì)占用很大的內(nèi)存,被當(dāng)作是高效的設(shè)計(jì)語(yǔ)言,并且還廣泛用于與高級(jí)語(yǔ)言結(jié)合使用。
通過(guò)與高級(jí)語(yǔ)言的結(jié)合,兩種語(yǔ)言能夠相互彌補(bǔ),有效地提高程序執(zhí)行的效率和硬件方面控制。然而,匯編語(yǔ)言在某些方面仍然有不足之處。它不能滿足復(fù)雜程序的編寫(xiě)環(huán)境,這是因?yàn)閰R編語(yǔ)言的應(yīng)用需要借助機(jī)器。不同的機(jī)器的匯編語(yǔ)言不一樣,所以匯編語(yǔ)言要依托于機(jī)器編寫(xiě),并不能相互移植和應(yīng)用,這就有一定的局限性了。這也就導(dǎo)致程序員使用匯編語(yǔ)言時(shí),要求掌握一些不同的處理器結(jié)構(gòu)等方面的知識(shí),并且只能針對(duì)某一種處理器進(jìn)行編寫(xiě)和優(yōu)化程序,這種開(kāi)發(fā)效率非常的低,時(shí)間成本過(guò)高。正是因?yàn)閰R編語(yǔ)言時(shí)針對(duì)于機(jī)器而言的,它是構(gòu)成語(yǔ)言層次的基礎(chǔ),也就是語(yǔ)言結(jié)構(gòu)的底層。因此,匯編語(yǔ)言常常被當(dāng)作是低級(jí)語(yǔ)言。接下來(lái),將對(duì)應(yīng)用功能強(qiáng)大且應(yīng)用范圍較大的高級(jí)語(yǔ)言進(jìn)行簡(jiǎn)單的闡述。
四、高級(jí)語(yǔ)言
4.1概念
計(jì)算機(jī)的語(yǔ)言有多種,除了前面介紹的低級(jí)語(yǔ)言,它還包括高級(jí)語(yǔ)言。不同于其他兩種編程語(yǔ)言,高級(jí)語(yǔ)言是一種高度“包裝”的編程語(yǔ)言。高級(jí)語(yǔ)言和人類(lèi)的日常溝通的語(yǔ)言類(lèi)似,它使用的是人們通俗易懂的文字或者符號(hào)來(lái)表達(dá)的。通過(guò)這樣的表達(dá)方式,增強(qiáng)程序員編寫(xiě)程序的可讀性,也能夠幫助對(duì)編程語(yǔ)言不那么精通的人了解程序的大致內(nèi)容。實(shí)質(zhì)上高級(jí)語(yǔ)言是一種比較符合人類(lèi)語(yǔ)言邏輯思維的程序,它基本上可以不用依托于硬件系統(tǒng)進(jìn)行程序的編寫(xiě),使得操作更加簡(jiǎn)單。
然而,高級(jí)語(yǔ)言不是指代的某種語(yǔ)言,它包含了多種類(lèi)型的語(yǔ)言,比如:C語(yǔ)言、Basic語(yǔ)言等。每一種高級(jí)語(yǔ)言都有自己的特點(diǎn)、功能、適用范圍和操作指令。簡(jiǎn)單的用一句話來(lái)說(shuō),高級(jí)語(yǔ)言就是一類(lèi)利用一些人們?nèi)菀桌斫獾奈淖郑÷粤艘恍┓爆?、不相關(guān)聯(lián)的細(xì)節(jié),簡(jiǎn)化了的輸入指令。
4.2工作過(guò)程
接下來(lái)闡述高級(jí)語(yǔ)言的語(yǔ)法和結(jié)構(gòu)。它的語(yǔ)言結(jié)構(gòu)和漢字類(lèi)似,并且不依靠于硬件,能夠直接操作,程序員只需要經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí)即可進(jìn)行編程。高級(jí)語(yǔ)言按照類(lèi)型分類(lèi)有很多種,例如命令式、函數(shù)式等語(yǔ)言。不過(guò)這些語(yǔ)言雖然屬于不同種類(lèi)型,但是它們之間還是會(huì)有相互影響,能夠在一定程度上相互支持。
在目前對(duì)編程語(yǔ)言的應(yīng)用中,由于高級(jí)語(yǔ)言在各個(gè)領(lǐng)域應(yīng)用的最多,因此也就成為了程序員首要考慮的編程語(yǔ)言。高級(jí)語(yǔ)言的工作過(guò)程與前面講的匯編語(yǔ)言相類(lèi)似。它們都是通過(guò)一系列的指令,對(duì)計(jì)算機(jī)的系統(tǒng)程序進(jìn)行編寫(xiě)和解釋。雖然高級(jí)語(yǔ)言的功能強(qiáng)大,但是仍然有一定的局限性。它并不可以編寫(xiě)成為能夠直接訪問(wèn)機(jī)器硬件和軟件資源或者控制設(shè)備等功能的語(yǔ)言,如果器件要使用這些功能就必須調(diào)用匯編語(yǔ)言進(jìn)行操作??偟膩?lái)說(shuō),高級(jí)語(yǔ)言能夠借用接口,來(lái)調(diào)用外部的一些程序,實(shí)現(xiàn)對(duì)計(jì)算機(jī)的編寫(xiě)。
4.3應(yīng)用分析
高級(jí)語(yǔ)言能夠被廣泛應(yīng)用,必然其他語(yǔ)言所不能代替的地方。它不僅容易掌握,而且能夠?qū)?fù)雜的算法簡(jiǎn)單化。高級(jí)語(yǔ)言已經(jīng)成為了程序設(shè)計(jì)和優(yōu)化的一個(gè)前提,它為程序編譯者創(chuàng)造了良好的編譯環(huán)境。,讓程序員編寫(xiě)的程序有更好的可靠性和維護(hù)性。它能夠脫離機(jī)器語(yǔ)言,有自身的表達(dá)特色,與計(jì)算機(jī)的某些結(jié)構(gòu)聯(lián)系不大,可以更加便捷的將數(shù)據(jù)的運(yùn)算表達(dá)的清楚。在程序的控制結(jié)構(gòu)方面也可以更方便的表示出來(lái)。正是因?yàn)檫@些功能,使得用高級(jí)語(yǔ)言編寫(xiě)出來(lái)的程序具有簡(jiǎn)單易讀性和重復(fù)利用性等優(yōu)點(diǎn)。因此,可以將一些繁瑣的事情通過(guò)編譯程序來(lái)完成,從而縮短開(kāi)發(fā)周期。通過(guò)這樣的方式讓程序員有更多的時(shí)間去優(yōu)化程序的運(yùn)算,以提高質(zhì)量,進(jìn)而推動(dòng)計(jì)算機(jī)技術(shù)的發(fā)展。不過(guò),高級(jí)語(yǔ)言編寫(xiě)出來(lái)的程序會(huì)比匯編語(yǔ)言編寫(xiě)出來(lái)的更長(zhǎng)一些,這也就導(dǎo)致了運(yùn)行速度上會(huì)稍慢。但是從總體上來(lái)看,高級(jí)語(yǔ)言仍是目前一種有效的計(jì)算機(jī)語(yǔ)言,在軟件應(yīng)用等方面有著極大的潛力。
五、總結(jié)
計(jì)算機(jī)編程語(yǔ)言不僅僅是計(jì)算機(jī)運(yùn)行的語(yǔ)言指令,更是計(jì)算機(jī)程序員與計(jì)算機(jī)之間的交流工具。從上個(gè)世紀(jì)50年代到現(xiàn)在正在開(kāi)始的“5G”時(shí)代,計(jì)算機(jī)語(yǔ)言的發(fā)展包含了三個(gè)階段,分別是機(jī)器、匯編和高級(jí)語(yǔ)言階段。這幾個(gè)發(fā)展階段為計(jì)算機(jī)世界的建設(shè)奠定了牢固的基礎(chǔ)。相信在未來(lái)的世界中,計(jì)算機(jī)語(yǔ)言會(huì)發(fā)展成為使用更加方便、效率更加高效、應(yīng)用更加廣泛的人與計(jì)算機(jī)的交流語(yǔ)言,助推世界第三次科技革命的發(fā)展。
參? 考? 文? 獻(xiàn)
[1]沈美明. PDP-11機(jī)器語(yǔ)言與匯編語(yǔ)言程序設(shè)計(jì)[M]. 機(jī)械工業(yè)出版社, 1988.
[2]孟洪亮. 試析計(jì)算機(jī)編程語(yǔ)言的發(fā)展與應(yīng)用[J]. 電腦編程技巧與維護(hù), 2018, No.397(07):26-28.
[3] Robert, Harper, 李亞寧. 編程語(yǔ)言的實(shí)用基礎(chǔ)[J]. 國(guó)外科技新書(shū)評(píng)介, 2015(2):8-9.
[4]鄧昶. 常用計(jì)算機(jī)編程語(yǔ)言的分析和選用技巧探析[J]. 計(jì)算機(jī)光盤(pán)軟件與應(yīng)用, 2014, 5(19):75-76.
[5]葉連杰. 計(jì)算機(jī)編程語(yǔ)言的發(fā)展與應(yīng)用[J]. 信息與電腦(理論版), 2014(11):191-192.
[6]趙志華. 試論不同編程語(yǔ)言對(duì)計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的影響[J]. 電腦編程技巧與維護(hù), 2015(15):17-18.