官术网_书友最值得收藏!

1.1 程序與程序語(yǔ)言

1.1.1 程序的基本概念

程序的概念來(lái)源于日常生活,通常,完成一項(xiàng)復(fù)雜的任務(wù)需要分解成一系列的具體步驟。這些按一定的順序安排的具體步驟就是程序。例如,開(kāi)學(xué)典禮程序、聯(lián)歡晚會(huì)程序等。

隨著計(jì)算機(jī)的出現(xiàn)和發(fā)展,程序成了計(jì)算機(jī)的專(zhuān)有名詞,計(jì)算機(jī)都是在程序的控制下運(yùn)行的。所謂計(jì)算機(jī)程序,就是用計(jì)算機(jī)語(yǔ)言描述的解決某一問(wèn)題的一系列加工步驟,是符合一定語(yǔ)法規(guī)則的符號(hào)序列。程序設(shè)計(jì)就是借助計(jì)算機(jī)語(yǔ)言,告訴計(jì)算機(jī)要處理什么(即處理數(shù)據(jù))以及如何處理(即處理步驟)。執(zhí)行程序就是向計(jì)算機(jī)發(fā)出一系列指令,讓計(jì)算機(jī)按程序規(guī)定的步驟和要求解決特定問(wèn)題。

同一問(wèn)題有不同的解決方法,不同用戶(hù)編寫(xiě)的程序也并不完全相同。而且不同的程序有不同的效率,這就涉及程序的優(yōu)化,涉及程序所采用的數(shù)據(jù)結(jié)構(gòu)和算法等方面。

1.1.2 程序設(shè)計(jì)語(yǔ)言

程序設(shè)計(jì)離不開(kāi)程序設(shè)計(jì)語(yǔ)言。了解程序設(shè)計(jì)語(yǔ)言的發(fā)展過(guò)程,有助于讀者加深對(duì)程序設(shè)計(jì)語(yǔ)言的認(rèn)識(shí),使其能更好地利用程序設(shè)計(jì)語(yǔ)言解決實(shí)際問(wèn)題。

程序設(shè)計(jì)語(yǔ)言的發(fā)展很快,新的程序設(shè)計(jì)語(yǔ)言不斷出現(xiàn),功能也越來(lái)越強(qiáng)大。從其發(fā)展過(guò)程來(lái)看,程序設(shè)計(jì)語(yǔ)言的發(fā)展大致經(jīng)歷了以下幾個(gè)階段。

1.機(jī)器語(yǔ)言

所謂機(jī)器語(yǔ)言,就是指計(jì)算機(jī)能夠識(shí)別的指令集合,即指令系統(tǒng)。在機(jī)器語(yǔ)言中,每條指令都用二進(jìn)制0和1組成的序列來(lái)表示。例如,某計(jì)算機(jī)的加法指令為10000000,減法指令為10010000。不同類(lèi)型的計(jì)算機(jī),機(jī)器語(yǔ)言也不相同。

用機(jī)器語(yǔ)言編寫(xiě)的程序,計(jì)算機(jī)可以直接執(zhí)行,且執(zhí)行效率高,這是機(jī)器語(yǔ)言的優(yōu)點(diǎn)。但機(jī)器語(yǔ)言的指令不直觀,難認(rèn)、難記、難理解,容易出錯(cuò),編程缺乏通用性,編程人員需要查閱機(jī)器指令系統(tǒng),編程效率低。因此,目前很少直接用機(jī)器語(yǔ)言編寫(xiě)程序。

2.匯編語(yǔ)言

由于機(jī)器語(yǔ)言的編程效率低,為了減輕程序開(kāi)發(fā)人員的編程負(fù)擔(dān),開(kāi)始采用一些助記符號(hào)來(lái)表示機(jī)器語(yǔ)言中的機(jī)器指令,這樣便出現(xiàn)了匯編語(yǔ)言。助記符號(hào)一般采用代表某種操作的英文單詞縮寫(xiě),與機(jī)器語(yǔ)言相比,便于識(shí)別和記憶。例如,上述兩條加法指令和減法指令可以用助記符號(hào)ADD和SUB來(lái)表示。

用匯編語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,計(jì)算機(jī)不能直接執(zhí)行,必須經(jīng)過(guò)匯編程序翻譯成機(jī)器語(yǔ)言程序才能執(zhí)行。

對(duì)比機(jī)器語(yǔ)言,匯編語(yǔ)言指令和機(jī)器語(yǔ)言指令具有一一對(duì)應(yīng)關(guān)系,不同類(lèi)型的計(jì)算機(jī),其匯編語(yǔ)言也不盡相同,編程時(shí)仍需要熟悉機(jī)器的內(nèi)部結(jié)構(gòu),比較煩瑣。但相對(duì)機(jī)器語(yǔ)言而言,其編程效率有較大提高。在實(shí)際應(yīng)用中,如果對(duì)程序運(yùn)行時(shí)間比較嚴(yán)格,與硬件操作比較緊密,程序設(shè)計(jì)人員還是常用匯編語(yǔ)言編程來(lái)解決實(shí)際問(wèn)題的。

3.高級(jí)語(yǔ)言

機(jī)器語(yǔ)言和匯編語(yǔ)言都是面向機(jī)器的編程語(yǔ)言,同屬低級(jí)語(yǔ)言的范疇。主要缺點(diǎn)是編程效率低、需要熟悉機(jī)器硬件。為了克服低級(jí)語(yǔ)言的這一缺點(diǎn),提高程序設(shè)計(jì)人員的編程效率,出現(xiàn)了面向算法過(guò)程的程序設(shè)計(jì)語(yǔ)言,稱(chēng)為高級(jí)語(yǔ)言。例如,F(xiàn)ortran語(yǔ)言、Pascal語(yǔ)言、C語(yǔ)言等。

高級(jí)語(yǔ)言比較接近自然語(yǔ)言的形式,功能強(qiáng)大,一條語(yǔ)句相當(dāng)于多條匯編語(yǔ)言指令或機(jī)器語(yǔ)言指令。編程時(shí),不需要熟悉機(jī)器的內(nèi)部結(jié)構(gòu),編程人員可以把精力集中在研究問(wèn)題的求解方法上,大大降低了編程的難度,提高了編程的效率和質(zhì)量,而且設(shè)計(jì)的程序也更容易閱讀和理解。因此,在實(shí)際應(yīng)用中被廣泛用來(lái)解決實(shí)際問(wèn)題。

當(dāng)然,計(jì)算機(jī)也不能直接執(zhí)行高級(jí)語(yǔ)言源程序,必須經(jīng)過(guò)編譯和連接過(guò)程,將其翻譯成機(jī)器語(yǔ)言程序才能由計(jì)算機(jī)執(zhí)行。

4.面向任務(wù)的程序設(shè)計(jì)語(yǔ)言

高級(jí)語(yǔ)言是面向過(guò)程的編程語(yǔ)言,用高級(jí)語(yǔ)言編程求解一個(gè)復(fù)雜問(wèn)題,必須首先分析解題過(guò)程,描述問(wèn)題的求解算法,然后才能用高級(jí)語(yǔ)言編程實(shí)現(xiàn)。面向任務(wù)的程序設(shè)計(jì)語(yǔ)言是非過(guò)程化語(yǔ)言,無(wú)須知道問(wèn)題如何求解,只需描述求解什么問(wèn)題,便可編程實(shí)現(xiàn)。

數(shù)據(jù)庫(kù)語(yǔ)言便是一種面向任務(wù)的程序設(shè)計(jì)語(yǔ)言。例如,SQL Server是一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),它提供了數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言(SQL),采用SQL提供的select語(yǔ)句,便可方便、快速地查詢(xún)出數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息。例如,查詢(xún)語(yǔ)句select * from student where sex='男',其功能就是查詢(xún)學(xué)生信息表(student)中所有男性學(xué)生的全部信息。

由于面向任務(wù)的程序設(shè)計(jì)語(yǔ)言不僅大大降低了編程的復(fù)雜度,而且提高了應(yīng)用程序的開(kāi)發(fā)速度和質(zhì)量,使得編程工作不再是計(jì)算機(jī)專(zhuān)業(yè)人員的專(zhuān)利,許多非計(jì)算機(jī)專(zhuān)業(yè)人員也能很方便地使用面向任務(wù)的程序設(shè)計(jì)語(yǔ)言開(kāi)發(fā)自己的應(yīng)用程序。這類(lèi)語(yǔ)言被廣泛應(yīng)用在管理信息系統(tǒng)應(yīng)用軟件的開(kāi)發(fā)方面。

5.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言

面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言于20世紀(jì)90年代開(kāi)始流行,目前已成為程序設(shè)計(jì)的主流語(yǔ)言。C++就是一種非常優(yōu)秀的面向?qū)ο蟮某绦蛘Z(yǔ)言,它是由C語(yǔ)言發(fā)展而來(lái)的。

面向?qū)ο蠓椒▽W(xué)是一種分析方法、設(shè)計(jì)方法和思維方法的綜合。它的出發(fā)點(diǎn)和所追求的基本目標(biāo)就是使人們分析、設(shè)計(jì)和實(shí)現(xiàn)一個(gè)系統(tǒng)的方法盡可能接近人們認(rèn)識(shí)一個(gè)系統(tǒng)的方法。

面向?qū)ο蟮木幊蹋绦虮豢闯上嗷f(xié)作的對(duì)象集合,每個(gè)對(duì)象都是某個(gè)類(lèi)的實(shí)例,所有的類(lèi)構(gòu)成一個(gè)通過(guò)繼承關(guān)系相聯(lián)系的層次結(jié)構(gòu)。面向?qū)ο蟪绦蛟O(shè)計(jì)就是針對(duì)客觀事物(對(duì)象)設(shè)計(jì)程序,與面向過(guò)程的編程方法相比,編程工作更加直觀、清晰,編程效率更高,更適合開(kāi)發(fā)大型復(fù)雜的軟件。

面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言通常具有類(lèi)的定義功能、對(duì)象的生成功能、消息傳遞機(jī)制和類(lèi)的繼承機(jī)制。目前,Java就是一種流行的、被廣泛應(yīng)用的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。

綜上所述,可以知道,每一種語(yǔ)言都有其優(yōu)點(diǎn)和不足,對(duì)于不同的問(wèn)題,需要根據(jù)實(shí)際情況來(lái)選擇程序設(shè)計(jì)語(yǔ)言,以便更加高效、更加優(yōu)質(zhì)地解決相關(guān)的問(wèn)題。

主站蜘蛛池模板: 长兴县| 东方市| 宁陕县| 乌拉特中旗| 高雄县| 英吉沙县| 通江县| 花垣县| 当阳市| 新宁县| 当阳市| 南陵县| 拜泉县| 凤城市| 紫金县| 无为县| 科尔| 海口市| 灵璧县| 米脂县| 安仁县| 张家港市| 石景山区| 阜南县| 南江县| 英超| 宿州市| 长葛市| 泗洪县| 东乡县| 昌宁县| 皋兰县| 平泉县| 梨树县| 桑植县| 泰安市| 云龙县| 巴彦淖尔市| 宽城| 比如县| 龙里县|