計(jì)算機(jī)語(yǔ)言分類_第1頁(yè)
計(jì)算機(jī)語(yǔ)言分類_第2頁(yè)
計(jì)算機(jī)語(yǔ)言分類_第3頁(yè)
計(jì)算機(jī)語(yǔ)言分類_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

程序設(shè)計(jì)語(yǔ)言的分類程序設(shè)計(jì)語(yǔ)言分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言。最初的計(jì)算機(jī)程序都是用0和1的序列表示的,程序員直接使用的是機(jī)器指令,無(wú)需翻譯,從紙帶打孔輸入即可執(zhí)行得到結(jié)果。后來為了方便記憶,就將用0、1序列表示的機(jī)器指令都用符號(hào)助記,這些與機(jī)器指令一一對(duì)應(yīng)的助記符就成了匯編指令,從而誕生了匯編語(yǔ)言。無(wú)論是機(jī)器指令還是匯編指令都是面向機(jī)器的,統(tǒng)稱為低級(jí)語(yǔ)言。機(jī)器語(yǔ)言MachineLanguage(低級(jí)語(yǔ)言)機(jī)器語(yǔ)言是計(jì)算機(jī)唯一能接受和執(zhí)行的語(yǔ)言。機(jī)器語(yǔ)言由二進(jìn)制碼組成,每一串二進(jìn)制碼叫做一條指令。機(jī)器語(yǔ)言是直接用二進(jìn)制代碼指令表達(dá)的計(jì)算機(jī)語(yǔ)言,指令是用0和1組成的一串代碼。如某種計(jì)算機(jī)的指令為1011011000000000,它表示讓計(jì)算機(jī)進(jìn)行一次加法操作;而指41011010100000000則表示進(jìn)行一次減法操作。它們的前八位表示操作碼,而后八位表示地址碼。從上面兩條指令可以看出,它們只是在操作碼中從左邊第0位算起的第6和第7位不同。這種機(jī)型可包含256(=28)個(gè)不同的指令。機(jī)器語(yǔ)言或稱為二進(jìn)制代碼語(yǔ)言,計(jì)算機(jī)可以直接識(shí)別,不需要進(jìn)行任何翻譯。每臺(tái)機(jī)器的指令,其格式和代碼所代表的含義都是硬性規(guī)定的,它是第一代的計(jì)算機(jī)語(yǔ)言。機(jī)器語(yǔ)言對(duì)不同型號(hào)的計(jì)算機(jī)來說一般是不同的。使用機(jī)器語(yǔ)言編寫程序是一種相當(dāng)煩瑣的工作,既難于記憶也難于操作,編寫出來的程序全是由0和1的數(shù)字組成,直觀性差、難以閱讀。不僅難學(xué)、難記、難檢查、又缺乏通用性,給計(jì)算機(jī)的推廣使用帶來很大的障礙。最早的程序設(shè)計(jì)語(yǔ)言都采用機(jī)器語(yǔ)言來編寫。當(dāng)時(shí),要在計(jì)算機(jī)上運(yùn)行的所有算法都必須直接用機(jī)器語(yǔ)言來表達(dá),計(jì)算機(jī)才能接受。算法的運(yùn)算序列包括運(yùn)算對(duì)象和運(yùn)算結(jié)果都必須轉(zhuǎn)換為指令序列。其中的每一條指令都以編碼(指令碼和地址碼)的形式出現(xiàn)。與算法語(yǔ)言表達(dá)的算法,相差十萬(wàn)八千里。對(duì)于沒受過程序設(shè)計(jì)專門訓(xùn)練的人來說,一份程序恰似一份"天書",讓人看了不知所云,可讀性極差。直接用機(jī)器語(yǔ)言表達(dá)算法有許多缺點(diǎn)。大量繁雜瑣碎的細(xì)節(jié)牽制著程序員,使他們不可能有更多的時(shí)間和精力去從事創(chuàng)造性的勞動(dòng),執(zhí)行對(duì)他們來說更為重要的任務(wù)。如確保程序的正確性、高效性。程序員既要駕馭程序設(shè)計(jì)的全局又要深入每一個(gè)局部直到實(shí)現(xiàn)的細(xì)節(jié),即使智力超群的程序員也常常會(huì)顧此失彼,屢出差錯(cuò),因而所編出的程序可靠性差,且開發(fā)周期長(zhǎng)。由于用機(jī)器語(yǔ)言進(jìn)行程序設(shè)計(jì)的思維和表達(dá)方式與人們的習(xí)慣大相徑庭,只有經(jīng)過較長(zhǎng)時(shí)間職業(yè)訓(xùn)練的程序員才能勝任,使得程序設(shè)計(jì)曲高和寡。可讀性差,不便于交流與合作。因?yàn)樗鼑?yán)重地依賴于具體的計(jì)算機(jī),所以可移植性差,重用性差。這些弊端造成當(dāng)時(shí)的計(jì)算機(jī)應(yīng)用未能迅速得到推廣。匯編語(yǔ)言AssemblerLanguage(低級(jí)語(yǔ)言)為了克服機(jī)器語(yǔ)言上述的缺點(diǎn),出路在于程序設(shè)計(jì)語(yǔ)言的抽象,讓它盡可能地接近于算法語(yǔ)言。為此,人們首先注意到的是可讀性和可移植性,因?yàn)樗鼈兿鄬?duì)地容易通過抽象而得到改善。于是,很快就出現(xiàn)匯編語(yǔ)言。這種語(yǔ)言對(duì)機(jī)器語(yǔ)言的抽象,首先表現(xiàn)在將機(jī)器語(yǔ)言的每一條指令符號(hào)化:指令碼代之以記憶符號(hào),地址碼代之以符號(hào)地址,使得其含義顯現(xiàn)在符號(hào)上而不再隱藏在編碼中,可讓人望"文"生義。其次表現(xiàn)在這種語(yǔ)言擺脫了具體計(jì)算機(jī)的限制,可在不同指令集的計(jì)算機(jī)上運(yùn)行,只要該計(jì)算機(jī)配上匯編語(yǔ)言的一個(gè)匯編程序。這無(wú)疑是機(jī)器語(yǔ)言朝算法語(yǔ)言靠攏邁出的一步。但是,它離算法語(yǔ)言還太遠(yuǎn),以致程序員還不能從分解算法的數(shù)據(jù)、運(yùn)算和控制到匯編才能直接表達(dá)的指令等繁雜瑣碎的事務(wù)中解脫出來。用能反映指令功能的助記符表達(dá)的計(jì)算機(jī)語(yǔ)言叫匯編語(yǔ)言。它是符號(hào)化了的機(jī)器語(yǔ)言。用匯編語(yǔ)言編寫的程序叫匯編語(yǔ)言源程序,計(jì)算機(jī)無(wú)法執(zhí)行。必須用匯編程序把它翻譯成機(jī)器語(yǔ)言目標(biāo)程序,計(jì)算機(jī)才能執(zhí)行。這個(gè)翻譯過程稱為匯編過程。匯編語(yǔ)言是用助記符表示指令功能的計(jì)算機(jī)語(yǔ)言。與機(jī)器語(yǔ)言相比,匯編語(yǔ)言具有以下的幾個(gè)特點(diǎn):它使用符號(hào)來表示操作碼和地址碼,這種符號(hào)便于記憶,稱為記憶碼。匯編程序自動(dòng)處理存儲(chǔ)分配,毋需程序員做存儲(chǔ)分配工作。程序員可以直接書寫十進(jìn)制數(shù)。匯編語(yǔ)言比起機(jī)器語(yǔ)言在很多方面都有很大的優(yōu)越性,如編寫容易、修改方便、閱讀簡(jiǎn)單、程序清楚等,但在計(jì)算機(jī)語(yǔ)言系統(tǒng)中,把匯編語(yǔ)言仍然列入“低級(jí)語(yǔ)言”的范疇,它仍然是屬于面向機(jī)器的語(yǔ)言,也就是說,不同的計(jì)算機(jī)可以有不同的指令集。高級(jí)語(yǔ)言(High-levellanguage)機(jī)器語(yǔ)言和匯編語(yǔ)言都是面向機(jī)器的,高級(jí)語(yǔ)言是面向用戶的。到了50年代中期,出現(xiàn)程序設(shè)計(jì)的高級(jí)語(yǔ)言如Fortran,Algol60,以及后來的PL/1,Pascal等,算法的程序表達(dá)才產(chǎn)生一次大的飛躍。用高級(jí)語(yǔ)言編寫的程序叫做高級(jí)語(yǔ)言源程序,必須翻譯成機(jī)器語(yǔ)言目標(biāo)程序才能被計(jì)算機(jī)執(zhí)行。高級(jí)語(yǔ)言的翻譯有兩種方式:編譯方式和解釋方式。編譯與解釋計(jì)算機(jī)并不能直接地接受和執(zhí)行用高級(jí)語(yǔ)言編寫的源程序,源程序在輸入計(jì)算機(jī)時(shí),通過“翻譯程序”翻譯成機(jī)器語(yǔ)言形式的目標(biāo)程序,計(jì)算機(jī)才能識(shí)別和執(zhí)行。這種“翻譯”通常有兩種方式,即編譯方式和解釋方式。編譯方式是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語(yǔ)言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語(yǔ)言編寫的源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語(yǔ)言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式是指源程序進(jìn)入計(jì)算機(jī)后,解釋程序邊掃描邊解釋,逐句輸入逐句翻譯,計(jì)算機(jī)一句句執(zhí)行,并不產(chǎn)生目標(biāo)程序。如PASCAL、FORTRAN、C語(yǔ)言等高級(jí)語(yǔ)言執(zhí)行編譯方式;BASIC語(yǔ)言則以執(zhí)行解釋方式為主。解釋程序(解釋器)所謂解釋程序是高級(jí)語(yǔ)言翻譯程序的一種,它將源語(yǔ)言(如BASIC)書寫的源程序作為輸入,解釋一句后就提交計(jì)算機(jī)執(zhí)行一句,并不形成目標(biāo)程序。就像外語(yǔ)翻譯中的“口譯”一樣,說一句翻一句,不產(chǎn)生全文的翻譯文本。這種工作方式非常適合于人通過終端設(shè)備與計(jì)算機(jī)會(huì)話,如在終端上打一條命令或語(yǔ)句,解釋程序就立即將此語(yǔ)句解釋成一條或幾條指令并提交硬件立即執(zhí)行且將執(zhí)行結(jié)果反映到終端,從終端把命令打入后,就能立即得到計(jì)算結(jié)果。這的確是很方便的,很適合于一些小型機(jī)的計(jì)算問題。但解釋程序執(zhí)行速度很慢,例如源程序中出現(xiàn)循環(huán),則解釋程序也重復(fù)地解釋并提交執(zhí)行這一組語(yǔ)句,這就造成很大浪費(fèi)。圖1解釋型程序設(shè)計(jì)語(yǔ)言執(zhí)行過程Sourcecode:源代碼,源程序。Interpreter:解釋程序,解釋器

編譯程序(編譯器)這是一類很重要的語(yǔ)言處理程序,它把高級(jí)語(yǔ)言(如FORTRAN、COBOL、PascakC等)源程序作為輸入,進(jìn)行翻譯轉(zhuǎn)換,產(chǎn)生出機(jī)器語(yǔ)言的目標(biāo)程序,然后再讓計(jì)算機(jī)去執(zhí)行這個(gè)目標(biāo)程序,得到計(jì)算結(jié)果。編譯程序工作時(shí),先分析,后綜合,從而得到目標(biāo)程序。所謂分析,是指詞法分析和語(yǔ)法分析;所謂綜合是指代碼優(yōu)化,存儲(chǔ)分配和代碼生成。為了完成這些分析綜合任務(wù),編譯程序采用對(duì)源程序進(jìn)行多次掃描的辦法,每次掃描集中完成一項(xiàng)或幾項(xiàng)任務(wù),也有一項(xiàng)任務(wù)分散到幾次掃描去完成的。下面舉一個(gè)四遍掃描的例子:第一遍掃描做詞法分析;第二遍掃描做語(yǔ)法分析;第三遍掃描做代碼優(yōu)化和存儲(chǔ)分配;第四遍掃描做代碼生成。值得一提的是,大多數(shù)的編譯程序直接產(chǎn)生機(jī)器語(yǔ)言的目標(biāo)代碼,形成可執(zhí)行的目標(biāo)文件,但也有的編譯程序則先產(chǎn)生匯編語(yǔ)言一級(jí)的符號(hào)代碼文件,然后再調(diào)用匯編程序進(jìn)行翻譯加工處理,最后產(chǎn)生可執(zhí)行的機(jī)器語(yǔ)言目標(biāo)文件。在實(shí)際應(yīng)用中,對(duì)于需要經(jīng)常使用的有大量計(jì)算的大型題目,采用速度較快的編譯型的高級(jí)語(yǔ)言較好,雖然編譯過程本身較為復(fù)雜,但一旦形成目標(biāo)文件,以后可多次使用。相反,對(duì)于小型題目或計(jì)算簡(jiǎn)單不太費(fèi)機(jī)時(shí)的題目,則多選用解釋型的會(huì)話式高級(jí)語(yǔ)言,如BASIC,這樣可以大大縮短編程及調(diào)試的時(shí)間。Thecompiler「的jdsThecompiler「的jdsthe?ounc*cod&......andgonomtosobjectcode.Youoxocutothopicxjram(onewayoranoth&r'i......andtheresultappoansonthfiscrwn.圖2編譯型程序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論