1、什么是計(jì)算機(jī)語言?
[caption id="attachment_1037" align="aligncenter" width="220"]
算機(jī)語言.jpg)
計(jì)算機(jī)語言[/caption]
俗話說,人有人言,獸有獸語。人類的語言,是人與人之間傳遞信息的媒介,是人類在自身發(fā)展的過程中逐漸形成的自然語言。計(jì)算機(jī)作為一種具有一定計(jì)算智能的機(jī)器,也應(yīng)具有一種語言的,以便進(jìn)行人和計(jì)算機(jī)之間的信息交流,這就是我們常說的“計(jì)算機(jī)語言”。所以,計(jì)算機(jī)語言是人們?yōu)榱撕陀?jì)算機(jī)進(jìn)行交流而設(shè)計(jì)的人工語言。
計(jì)算機(jī)語言(Computer Language),也叫程序設(shè)計(jì)語言、編程語言(Programming Language),指用于人與計(jì)算機(jī)之間通訊的語言,是人與計(jì)算機(jī)之間傳遞信息的媒介。計(jì)算機(jī)系統(tǒng)的最大特征是通過指令傳達(dá)給機(jī)器。為了使電子計(jì)算機(jī)進(jìn)行各種工作,就需要有一套用以編寫計(jì)算機(jī)程序的數(shù)字、字符和語法規(guī)則,由這些字符和語法規(guī)則組成計(jì)算機(jī)各種指令或各種語句,由此形成了計(jì)算機(jī)語言。
計(jì)算機(jī)每做的一次動(dòng)作、一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)語言編好的程序來執(zhí)行的。程序是計(jì)算機(jī)要執(zhí)行的指令的集合,而程序全部都是用我們所掌握的計(jì)算機(jī)語言來編寫的。所以,人們要使用計(jì)算機(jī)、控制計(jì)算機(jī),一定要通過計(jì)算機(jī)語言向計(jì)算機(jī)發(fā)出命令。
計(jì)算機(jī)語言,從問世到現(xiàn)在已有近六十年的發(fā)展史,經(jīng)歷了由機(jī)器代碼到符號(hào)化、由低級(jí)到高級(jí)、由過程性到非過程性、由面向機(jī)器到面向?qū)ο蟮陌l(fā)展。語言本身技術(shù)上也從模塊化、結(jié)構(gòu)化發(fā)展到面向?qū)ο?,產(chǎn)生了許多新方法、新概念和新技術(shù);應(yīng)用范圍從單機(jī)發(fā)展到異構(gòu)的、分布式計(jì)算機(jī)網(wǎng)絡(luò);應(yīng)用領(lǐng)域也從單純的科學(xué)工程計(jì)算發(fā)展到包括過程控制、信息處理、事務(wù)處理等各個(gè)不同的方面?,F(xiàn)在可以這么說,計(jì)算機(jī)是無處不在,無時(shí)不在,無事不在,因而計(jì)算機(jī)語言也是無處不在,無時(shí)不在,無事不在。
2. 計(jì)算機(jī)語言的分類
計(jì)算機(jī)語言種類繁多,按大類可粗略的分為三種,即機(jī)器語言、匯編語言、高級(jí)語言。
機(jī)器語言 電子計(jì)算機(jī)使用的是由“0”和“1”組成的二進(jìn)制數(shù)碼,二進(jìn)制是計(jì)算機(jī)的語言的基礎(chǔ)。由于計(jì)算機(jī)內(nèi)部只能接受二進(jìn)制代碼,因此,用二進(jìn)制代碼0和1描述的指令稱為機(jī)器指令,全部機(jī)器指令的集合構(gòu)成計(jì)算機(jī)的機(jī)器語言。用機(jī)器語言編的程序稱為目標(biāo)程序,計(jì)算機(jī)可直接運(yùn)行,是第一代計(jì)算機(jī)語言。因此程序就是一個(gè)個(gè)的二進(jìn)制文件,一條機(jī)器語言成為一條指令,是不可分割的最小功能單元。由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)常?;ゲ幌嗤?,所以,在一臺(tái)計(jì)算機(jī)上執(zhí)行的用機(jī)器語言編寫的程序,通常不能在另一臺(tái)型號(hào)不同的計(jì)算機(jī)上運(yùn)行;要想在另一臺(tái)計(jì)算機(jī)上執(zhí)行,必須新編程序,造成了工作重復(fù)和資源浪費(fèi),且機(jī)器語言編寫的程序無明顯特征,依賴于具體機(jī)種,因機(jī)而異,難以記憶、不便閱讀、很難書寫和在編程人員之間進(jìn)行交流,局限性很大,屬于低級(jí)語言。但由于使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語言,針對(duì)性強(qiáng),可直接對(duì)計(jì)算機(jī)硬件進(jìn)行操作,故而運(yùn)算效率是所有語言中最高的。
匯編語言 為了減輕使用機(jī)器語言編程的痛苦,人們進(jìn)行了一種有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令的二進(jìn)制符號(hào)串,比如,用"ADD"代表加法,"MOV"代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)和維護(hù)也更為方便,這種程序設(shè)計(jì)語言就稱為匯編語言,是第二代計(jì)算機(jī)語言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,專門負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語言,這種翻譯程序被稱為匯編程序。
匯編語言實(shí)質(zhì)上和機(jī)器語言是相同的,都是直接對(duì)硬件操作,只不過指令采用了英文縮寫的標(biāo)識(shí)符,更容易識(shí)別和記憶,但也同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對(duì)應(yīng)實(shí)際操作過程中的一個(gè)很細(xì)微的動(dòng)作,如移動(dòng)、自增、代數(shù)運(yùn)算等,因此匯編源程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語言編程需要有更多的計(jì)算機(jī)專業(yè)知識(shí),但匯編語言的優(yōu)點(diǎn)也是顯而易見的,用匯編語言所能完成的操作不是一般高級(jí)語言所能夠?qū)崿F(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件不僅比較小,執(zhí)行速度也較快。匯編語言同樣十分依賴于機(jī)器硬件,移植性不強(qiáng),但效率高,針對(duì)計(jì)算機(jī)特定硬件而編制的匯編程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長(zhǎng),程序精練且質(zhì)量高,所以至今仍是一種常用而強(qiáng)有力的軟件開發(fā)工具,一些最常用的程序段多用匯編語言研制,以提高機(jī)器的使用效率。
高級(jí)語言 高級(jí)語言是大多數(shù)編程者的選擇,和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),大大簡(jiǎn)化了程序中的指令。由于省略了很多細(xì)節(jié),編程者也就不需要具有太多高深的計(jì)算機(jī)專業(yè)知識(shí)。
這里所說的“高級(jí)語言”,是指一種完全用符號(hào)編寫、獨(dú)立于具體計(jì)算機(jī)的編程語言。和機(jī)器語言、匯編語言等低級(jí)語言相比,由于它們更便于人們理解、記憶和使用,故稱其為高級(jí)語言。
用高級(jí)語言編程,一般人都能很快學(xué)會(huì)使用計(jì)算機(jī),并且完全可以不必了解具體的機(jī)器指令,也可以不懂計(jì)算機(jī)的內(nèi)部結(jié)構(gòu)和工作原理,就能編寫出應(yīng)用計(jì)算機(jī)進(jìn)行科學(xué)計(jì)算和事務(wù)管理的程序。高級(jí)語言容易學(xué)習(xí),通用性強(qiáng),書寫出來的程序比較短,更便于推廣和交流,是一種很理想的程序設(shè)計(jì)語言。
高級(jí)語言主要是相對(duì)于機(jī)器語言和匯編語言而言的,并不是特指某一種具體的語言,而是包括了很多編程語言,如Basic(True Basic、QBasic、Visual Basic)、C、C++、Pascal、Fortran等。這些語言的語法、命令格式都互不相同,各有特色,以適應(yīng)不同編程、不同的計(jì)算機(jī)應(yīng)用人群的需要。
高級(jí)語言所編制的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過轉(zhuǎn)換才能被執(zhí)行,按轉(zhuǎn)換方式可分為兩大類:
解釋類:執(zhí)行方式類似于我們?nèi)粘I钪械摹巴暦g”,應(yīng)用程序源代碼一邊由相應(yīng)語言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語言),一邊執(zhí)行,因此效率比較低,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序時(shí)不能脫離其解釋器,但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序,如較早時(shí)期的QBasic語言。
編譯類:編譯是指在應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語言),因此其目標(biāo)程序可以脫離其語言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標(biāo)文件才能執(zhí)行,只有目標(biāo)文件而沒有源代碼,通常無法進(jìn)行修改,是目前高級(jí)語言采用最多的使用方式。