1.1 程序設(shè)計(jì)和程序設(shè)計(jì)語言
1.程序
從最一般的意義來說,程序是對(duì)解決某個(gè)計(jì)算問題的方法(算法)步驟的一種描述;而從計(jì)算機(jī)來說,計(jì)算機(jī)程序是用某種計(jì)算機(jī)能理解并執(zhí)行的計(jì)算機(jī)語言作為描述語言,對(duì)解決問題的方法步驟的描述。計(jì)算機(jī)執(zhí)行按程序所描述的方法步驟,能完成指定的功能。所以,程序就是供計(jì)算機(jī)執(zhí)行后能完成特定功能的指令序列。
一個(gè)計(jì)算機(jī)程序主要描述兩部分內(nèi)容:描述問題的每個(gè)對(duì)象和對(duì)象之間的關(guān)系,以及描述對(duì)這些對(duì)象作處理的處理規(guī)則。其中關(guān)于對(duì)象及對(duì)象之間的關(guān)系是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,而處理規(guī)則是求解的算法。針對(duì)問題所涉及的對(duì)象和要完成的處理,設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)?捎行У睾(jiǎn)化算法,數(shù)據(jù)結(jié)構(gòu)和算法是程序最主要的兩個(gè)方面。
2.程序設(shè)計(jì)的任條和主要步驟
程序設(shè)計(jì)的任務(wù)就是分析解決問題的方法步驟(算法),并將解決問題算法的方法步驟用計(jì)算機(jī)語言記錄下來。程序設(shè)計(jì)的主要步驟包括:認(rèn)識(shí)問題、設(shè)計(jì)解決問題的算法、按算法編寫程序、調(diào)試和測(cè)試程序。在程序開發(fā)過程中,上述步驟可能有反復(fù),如發(fā)現(xiàn)程序有錯(cuò),嚴(yán)重情況可能會(huì)要求重新認(rèn)識(shí)問題和重新設(shè)計(jì)算法等。
3.機(jī)器語言和匯編語言
計(jì)算機(jī)能直接識(shí)別和執(zhí)行的二進(jìn)制代碼稱為計(jì)算機(jī)的機(jī)器語言。用有助于記憶的符號(hào)來代表二進(jìn)制代碼,稱為匯編語言。匯編語言與機(jī)器語言幾乎有一對(duì)一的關(guān)系。用匯編語言編寫的程序稱為“匯編源程序”,匯編源程序不能在計(jì)算機(jī)上直接執(zhí)行,需要用匯編程序?qū)R編源
程序翻譯成機(jī)器語言程序,然后執(zhí)行由匯編程序翻譯出來的機(jī)器語言程序。機(jī)器語言和匯編語言是與具體計(jì)算機(jī)緊密相關(guān)的,稱它們是面向機(jī)器的語言。
4.高級(jí)語言
與機(jī)器語言和匯編語言相比較,高級(jí)語言與具體計(jì)算機(jī)無關(guān),是一種能方便描述算法過程的計(jì)算機(jī)程序設(shè)計(jì)語言。高級(jí)語言種類千差萬別,但一般包含有以下四種成分:數(shù)據(jù)成分用來描述程序所涉及的數(shù)據(jù);運(yùn)算成分用來描述運(yùn)算;控制成分用來表達(dá)程序的控制構(gòu)造;傳輸成分用來表達(dá)數(shù)據(jù)的傳輸。由于高級(jí)語言程序主要是描述計(jì)算機(jī)的解題過程,即描述復(fù)雜的加工處理過程,所以也稱這種高級(jí)語言為面向過程語言。
用高級(jí)語言編寫的程序稱為“源程序”。計(jì)算機(jī)不能直接技源程序的語句運(yùn)行,通常有解釋方式和編譯方式兩種方法在計(jì)算機(jī)上執(zhí)行源程序。
解釋方式,即讓計(jì)算機(jī)運(yùn)行解釋程序,解釋程序逐句取出源程序中的語句,對(duì)它作解釋執(zhí)行,輸入數(shù)據(jù),產(chǎn)生結(jié)果。
編譯方式,即先運(yùn)行編譯程序,從源程序一次翻譯產(chǎn)生計(jì)算機(jī)可直接執(zhí)行的二進(jìn)制程序(稱為目標(biāo)程序);然后讓計(jì)算機(jī)執(zhí)行目標(biāo)程序,輸入數(shù)據(jù),產(chǎn)生結(jié)果。
解釋方式的主要優(yōu)點(diǎn)是計(jì)算機(jī)與人的交互性好,調(diào)試程序時(shí),能一邊執(zhí)行一邊直接改錯(cuò),能較快得到一個(gè)正確的程序。缺點(diǎn)是逐句解釋執(zhí)行,運(yùn)行速度慢。
編譯方式的主要優(yōu)點(diǎn)是計(jì)算機(jī)運(yùn)行目標(biāo)程序快,缺點(diǎn)是修改源程序后必須重新編譯以產(chǎn)生新的目標(biāo)程序。
現(xiàn)在也有將上述兩種方式結(jié)合起來的,即先編譯源程序,產(chǎn)生計(jì)算機(jī)還是不能直接執(zhí)行的中間代碼,然后讓解釋程序解釋執(zhí)行中間代碼。這樣做的好處首先是比直接解釋執(zhí)行快;更大的好處是中間代碼獨(dú)立于計(jì)算機(jī),只要有相應(yīng)的解釋程序,就可在任何計(jì)算機(jī)上運(yùn)行。
5.面向問題語言
面向問題語言是為了易于描述和求解某類特定領(lǐng)域的問題而專門設(shè)計(jì)的一種非過程語言。用面向問題語言解題時(shí),不僅擺脫計(jì)算機(jī)的內(nèi)部邏輯,也不必關(guān)心問題的求解算法和求解的過程,只需指出問題是做什么,數(shù)據(jù)的輸入和輸出形式,就能由相應(yīng)的計(jì)算機(jī)系統(tǒng)得到所需結(jié)果。如報(bào)表語言、SOL(Structured Query Language)語言等。SQL語言是數(shù)據(jù)庫(kù)查詢和操縱語言,能直接使用數(shù)據(jù)庫(kù)管理系統(tǒng)。由于使用面向問題語言來解題只要告訴計(jì)算機(jī)做什么,不必告訴計(jì)算機(jī)如何做,能方便用戶的使用和提高程序的開發(fā)速度。但實(shí)現(xiàn)面向問題語言的系統(tǒng)從最一般的意義下實(shí)現(xiàn)問題如何求解,通常實(shí)現(xiàn)的效率較低。另外,面向問題語言要求問題已有通用的求解方法,目前其應(yīng)用范圍還比較狹窄。
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |