黨劼
[摘要]隨著21世紀(jì)信息技術(shù)的發(fā)展,信息化時代已然來臨,而其中計(jì)算機(jī)的程序語言與軟件開發(fā)也有了巨大的進(jìn)步本文將主要圍繞計(jì)算機(jī)程序語言的歷程和軟件危機(jī)與SDT的發(fā)展,及程序語言設(shè)計(jì)在軟件開發(fā)中的應(yīng)用這三大方面表展開討論,對計(jì)算機(jī)程序語言與軟件開發(fā)進(jìn)行了一個系統(tǒng)的分析?
[關(guān)鍵詞]程序語言;軟件開發(fā);數(shù)據(jù);計(jì)算機(jī)
[中圖分類號]G623.58 [文獻(xiàn)標(biāo)識碼]A [文章編號]1672-5158(2013)06-0059-01
一、計(jì)算機(jī)程序語言的歷程
眾所周知,計(jì)算機(jī)所接受的僅僅為一串?dāng)?shù)字代碼,它通過接受人們所編制的語言程序,去命令自己如何執(zhí)行工作。在計(jì)算機(jī)專業(yè)術(shù)語中,將這一串?dāng)?shù)字代碼稱之為指令代碼,而計(jì)算機(jī)也正是通過執(zhí)行這些指令代碼,來完成計(jì)算機(jī)和人類的人機(jī)互動。機(jī)器語言是指可以由計(jì)算接直接接受并處理的語言,而指令代碼則是操作碼和地址碼結(jié)合而成,由于各計(jì)算機(jī)不同的電路系統(tǒng)決定了他們語言之間的差異,因此,同樣一個問題被放人不同的機(jī)器中執(zhí)行,就得使用不同的機(jī)器語言來發(fā)布命令,并編寫不同的程序。通過機(jī)器語言去編寫程序,不僅浪費(fèi)了許多的時間,更降低了工作效率。隨之匯編語言的出現(xiàn),相對于之前的機(jī)器語言來說,匯編語言在程序編寫和程序修改方面則顯得更簡單,但是匯編語言的程序格式與機(jī)器語言大致相同,不同計(jì)算機(jī)的指令系統(tǒng)又不相同,導(dǎo)致不同計(jì)算機(jī)中使用的匯編程序也不相同,因此,匯編語言的程序還是只能應(yīng)用在單一種類的計(jì)算機(jī)中。而除此之外還有一種宏編語言,它的組成高于匯編語言,但低于高級程序語言。
為了提高編制程序的適用性,五十年代初,已經(jīng)研制出了一種高級程序設(shè)計(jì)語言,它與計(jì)算機(jī)本身的指令系統(tǒng)無關(guān),它摒棄了傳統(tǒng)的指令代碼構(gòu)成方式,而是由各種詞語和數(shù)學(xué)公式,通過一定的語法規(guī)則而聯(lián)系起來的。由程序語言組成的命令不再叫做指令,而是被稱之為語言。之前由機(jī)器語言編寫的多條指令,可以簡化為一條語言,且程序語言可以適用于任何計(jì)算機(jī),前提是該計(jì)算機(jī)中配有翻譯程序。
二、計(jì)算機(jī)的軟件危機(jī)與SDT的發(fā)展
軟件技術(shù)經(jīng)歷的兩個時期的發(fā)展歷程,即是線性程序設(shè)計(jì)階段和模塊化設(shè)計(jì)程序階段。線性程序設(shè)計(jì)在整個設(shè)計(jì)過程中都是由一個人完成的,這種工作模式導(dǎo)致它不能較好地去處理復(fù)雜程度較高的問題。因此在線性程序的基礎(chǔ)上研制出了模塊結(jié)構(gòu)設(shè)計(jì),模塊程序設(shè)計(jì)主要包括瀑布型和噴泉型,通過call.do等語言來控制模塊間的關(guān)系,這種設(shè)計(jì)方式可以對復(fù)雜的問題進(jìn)行處理。隨著經(jīng)濟(jì)的快速發(fā)展,各行各業(yè)對軟件的需求量日益上升,供應(yīng)量逐漸無法滿足需求量。國外在研發(fā)一系列大型高級軟件時也碰到了許多問題,拋開那些成功的案例,即使有些軟件系統(tǒng)完成了,但是也沒有在計(jì)劃時間內(nèi)結(jié)束,導(dǎo)致成本大大超出預(yù)算。正是這種糟糕的形勢導(dǎo)致了軟件危機(jī)的到來。其中,軟件危機(jī)主要體現(xiàn)在以下三個方面:首先是軟件的需求量已經(jīng)大大超出了軟件生產(chǎn)量;其次是軟件開發(fā)的成本費(fèi)用日益上升;最后是軟件在質(zhì)量與可靠性方面的要求也越來越高。
為了解決上述問題,在1968年北大西洋公約組織在會議上提出了軟件工程這一說法,將工程的概念引用到了軟件開發(fā)的過程中。通過工程的基礎(chǔ)只是與運(yùn)作方法對軟件進(jìn)行開發(fā)設(shè)計(jì),并投入量產(chǎn)管理。在軟件工程中,軟件開發(fā)屬于軟件生命周期中的某個階段,對于每個階段的設(shè)計(jì)開發(fā)均要提出完整有效的文檔資料,并對這些資料進(jìn)行評審、檢驗(yàn)、管理。1974年召開的第一次軟件工程會議標(biāo)志著軟件開發(fā)設(shè)計(jì)的工作方式從個體手工勞動模式,成功地轉(zhuǎn)化為了集體的勞動工程模式,為軟件危機(jī)的解決帶來了希望,特別是在軟件開發(fā)工具、管理模式等方面取得了新的進(jìn)展。在這段時期中,軟件業(yè)仍然將程序語言作為軟件生產(chǎn)率提升的主要工具,因此軟件業(yè)在高級語言上面投入了更多的精力與資金,用來研發(fā)功能更廣泛、效率更高的高級語言程序。
三、程序語言設(shè)計(jì)在軟件開發(fā)中的應(yīng)用
(一)程序語言設(shè)計(jì)在軟件開發(fā)中的體現(xiàn)
九十年代最杰出的程序時間方法是面相對象的程序設(shè)計(jì)方法。這種新型的設(shè)計(jì)方式,在軟件工程及智能方面都得到了有效的運(yùn)用。更多的程序設(shè)計(jì)語言都被注入了OOP編程技術(shù)當(dāng)中,已經(jīng)成為了九十年代的主流趨勢。大多數(shù)人都認(rèn)為,面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,意味著軟件業(yè)進(jìn)入了一個新的革新。OOP是人們通過模仿現(xiàn)實(shí)生活建立的模式,而研發(fā)出來的程序設(shè)計(jì)方式,這種研發(fā)思想源于人們對自然世界的認(rèn)識,人們在處理現(xiàn)實(shí)世界的復(fù)雜關(guān)系時,逐步培養(yǎng)了一定的分析能力與抽象感知能力,并在這些能力培養(yǎng)的基礎(chǔ)上對程序設(shè)計(jì)進(jìn)行應(yīng)用,從而形成了面向?qū)ο蟮某绦蛟O(shè)計(jì)概念。相對而言,非面向?qū)ο蟮恼Z言編制方式所編織出來的程序,結(jié)構(gòu)性與擴(kuò)充性均較差一些。面向?qū)ο蟮木幹瞥绦?,不僅能較好地解決以上問題,還能對傳統(tǒng)軟件設(shè)計(jì)中較復(fù)雜的問題進(jìn)行簡單的處理,避免之前的缺陷設(shè)計(jì)方式。
(二)傳統(tǒng)程序設(shè)計(jì)中存在的缺陷
傳統(tǒng)的程序設(shè)計(jì)技術(shù)是針對數(shù)據(jù)而研發(fā)出的設(shè)計(jì)方法,在這種設(shè)計(jì)方式中,過程和數(shù)據(jù)是獨(dú)立存在的個體,數(shù)據(jù)是問題中的客體,用來闡述問題中存在的信息;過程是用來對這些信息進(jìn)行處理的,因此編程員在編制程序的時候,必須事先對所有待處理的數(shù)據(jù)格式有個了解,對于不同的數(shù)據(jù)格式,需要編制出不同的程序。除此之外,傳統(tǒng)的程序設(shè)計(jì)方式所編織出來的程序,只有很小一部分可以重復(fù)使用。另外,若在大型高級軟件系統(tǒng)的開發(fā)過程中,設(shè)計(jì)人員隨意改變了其中某個數(shù)據(jù)結(jié)構(gòu),而沒有及時告知所有的開發(fā)者,那么其所存在的風(fēng)險(xiǎn)將是不可預(yù)知的。
(三)OOP的優(yōu)勢分析
以往傳統(tǒng)的程序設(shè)計(jì)技術(shù)在運(yùn)用中對程序與數(shù)據(jù)之間的內(nèi)在關(guān)系不夠重視,通過計(jì)算機(jī)所解決的問題都是一些現(xiàn)實(shí)中所存在的問題,這些問題的產(chǎn)生原因追溯到根本,無非就是各種事物之間相互聯(lián)系所造成的。其中每組具體的對象均可用以下兩種特質(zhì)來進(jìn)行描述:用來描述事物靜態(tài)過程所需應(yīng)用的數(shù)據(jù)結(jié)構(gòu),及對于以上數(shù)據(jù)進(jìn)行有效執(zhí)行(動態(tài)過程)。由此可見,只有將數(shù)據(jù)與過程有效地結(jié)合在一起,才能真實(shí)地反應(yīng)實(shí)際存在的問題。數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)執(zhí)行實(shí)際上是互相制約互相影響的,從這個角度思考的話,可以看出面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)與以往傳統(tǒng)的數(shù)據(jù)過程設(shè)計(jì)技術(shù)之間存在著本質(zhì)的區(qū)別。面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù)是對問題進(jìn)行一定的劃分,通過人們所形成的自然思維去建立不同領(lǐng)域的問題模塊,將程序中所碰到的問題模擬為真實(shí)世界中所存在的問題,進(jìn)而得到更加直接與更加自然的設(shè)計(jì)結(jié)果,這種軟件開發(fā)系統(tǒng)的主體為對象,這里的對象能真實(shí)地將實(shí)際存在的問題進(jìn)行折射。
四、結(jié)束語
隨著經(jīng)濟(jì)的日益發(fā)展,計(jì)算機(jī)軟件技術(shù)行業(yè)的發(fā)展勢頭也越來越強(qiáng)烈。原有的人工智能、數(shù)據(jù)庫、程序設(shè)計(jì)語言之間存在的相互關(guān)系,導(dǎo)致他們的研究之間必然存在一定的交融之處。例如,對于知識的描述事發(fā)能夠通過類體系、數(shù)據(jù)庫語言及程序語言等方式進(jìn)行一體化等。而面向?qū)ο蠹夹g(shù)的產(chǎn)生,很可能會將三者的聚集并體現(xiàn)在面向?qū)ο笊?。無論一個語言中蘊(yùn)涵了多少面向?qū)ο蟮幕疽蛩兀_發(fā)軟件的能力必然比以往的傳統(tǒng)方式要更強(qiáng),這一點(diǎn)早已得到了各業(yè)內(nèi)人士的集體認(rèn)同。因此對象與信息的程序設(shè)計(jì)方式將數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方式取代,是軟件業(yè)發(fā)展的必然趨勢。
參考文獻(xiàn)
[1]梁嵩,王建新,蠱羽,在線程序語言評測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]計(jì)算技術(shù)與自動化,2010(2)
[2]蘇錦鈿,余珊珊,程序語言中的共歸納數(shù)據(jù)類型及其應(yīng)用[J],計(jì)算機(jī)科學(xué),2011(11)
[3]白潔,李春平,面向軟件開發(fā)信息庫的數(shù)據(jù)挖掘[J]計(jì)算機(jī)應(yīng)用研究,2008(1)
[4]包空軍,尚展壘計(jì)算機(jī)基礎(chǔ)教育與創(chuàng)新能力培養(yǎng)[J]計(jì)算機(jī)教育,2007(2)