計算機程序設(shè)計語言的前世今生_第1頁
計算機程序設(shè)計語言的前世今生_第2頁
計算機程序設(shè)計語言的前世今生_第3頁
計算機程序設(shè)計語言的前世今生_第4頁
計算機程序設(shè)計語言的前世今生_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

XFTEAM-先鋒小組組長:李曉峰隊員:馬通、王加儒、劉凱倫、柯云鵬總編輯:柯云鵬制作人:柯云鵬資料收集:李曉峰、馬通、劉凱倫、王加儒探討內(nèi)容:程序設(shè)計語言發(fā)展史主講:柯云朋1程序設(shè)計語言的前世今生導語:1946年2月14日注定是一個不同尋常的日子,在這一天,世界上第一臺電腦ENIAC(埃尼阿克)在美國賓夕法尼亞大學誕生了。他是如此的簡陋,如此的笨重,如此的龐大令人心神恐懼。可是,就是這臺大家伙,讓人類步入了計算機文明的時代。而伴隨著它的新生,另一樣孕育已久的事物也開始快速成長,它就是計算機語言,也就是我們所說的程序設(shè)計語言、編程語言。而今距離第一臺計算機的誕生已經(jīng)過去了快70年了,計算機不斷在變化,變得越來越小,功能也越變越強大。而隨它孕育而生的計算機語言也同樣不甘示弱,甚至更多于前者。發(fā)明計算機的人類精英們誰也不曾想到,在這短短70年中所誕生的編程語言竟然多達2500種。各種語言相互借鑒,關(guān)系錯綜復雜,共同繪制出屬于一個時代的人類奇跡,一個時代的文明密碼。2一、低級語言時代—(1946-1953)Ⅰ、天書——機器語言最早的計算機語言(一代語言)1.概念:

機器語言是一種與計算機硬件密切相關(guān)的語言,每臺計算機都有自己的指令系統(tǒng),硬件設(shè)計一旦完成,它的指令系統(tǒng)也就確定了,即確定了它的機器語言系統(tǒng)。機器語言都是由0和1的序列所組成,包含指令、數(shù)據(jù)、地址等。

誒尼阿克所使用的穿孔卡片穿孔紙帶早期穿孔機2.使用方法:光電閱讀機將記錄在穿孔卡片上的數(shù)據(jù)讀入計算機,計算的結(jié)果則利用打孔機在卡片上打出一些小孔,并按一定規(guī)律排列,用以表示輸出的結(jié)果。而這樣的一些小孔就組成了計算機和專家明白而大部分人都不明白的天書—機器語言。(如圖所示)33.機器語言的優(yōu)點與缺點⑴優(yōu)點:質(zhì)量高執(zhí)行速度快、效率非常高,占存儲空間小。

⑵缺點:

原因:由于計算機只識別0、1代碼,而直接用0、1代碼匯編命令、操作的機器語言,在向計算機發(fā)送命令時,計算機可以直接讀取操作員的命令而無需進行任何的轉(zhuǎn)化,因此執(zhí)行速度快、效率非常高。①語言難以理解,過于抽象,相關(guān)指令系統(tǒng)難于記憶。②對編程人員要求非常高(要求對計算機的內(nèi)部硬件結(jié)構(gòu)要非常清楚)③編程過程中一但出錯,難以修改和維護。④對操作人員的投資成本非常巨大,1954年前后,對程序員的投資接近計算機本身的價值⑤使用成本巨大,在用機器語言對計算機進行編程的當時,計算機的使用時間的1/4~1/2是花在程序的排錯上。由于當時人與計算機的交互是使用卡片閱讀機或者紙帶機,程序員寫好程序后把程序交給穿孔員,穿孔員再將每一條指令在卡片或紙帶上穿孔,然后通過光電設(shè)備讀取上面的指令。由于一個好用的應(yīng)用程序需要反復調(diào)試,因此,編程和排錯占了一臺計算機運行投資的3/4,而這是一個相當巨大的資金損耗。⑥通用性差。由于每臺計算機的指令系統(tǒng)往往各不相同,所以,在一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須另編程序,造成了重復工作。4Ⅱ、硬件驅(qū)動的編寫者—匯編語言(二代語言)導語:二十世紀五十年代末期,伴隨著二戰(zhàn)的全面結(jié)束,遭受重創(chuàng)的西歐喪失了世界中心的地位,世界秩序開始重建。最終,版隨之布雷頓森林會議的結(jié)束,美國,這個年輕的國家最終勝出,成為世界新的經(jīng)濟中心。伴隨著以美元為主的國際貨幣體系的成立以及經(jīng)濟的劇烈膨脹,和美蘇爭霸世界格局的形成,機器語言無法再跟上時代的步伐,來面對越來越多、越來越頻繁的大數(shù)據(jù)計算。為滿足當時的需求,美國迫切需要一中相比機器語言更方便、更快捷更易上手、更加高效的程序設(shè)計語言,用以解決越來越頻繁的大數(shù)據(jù)計算,用以維護世界經(jīng)濟霸主地位和實現(xiàn)科技霸主的夢想。于是莫奇萊來了,??颂貋砹耍T.諾依曼也來了。這些杰出的大腦匯聚在一起,相互碰撞、相互借鑒,匯聚出智慧的火花,最終匯編語言誕生了!莫奇萊(左)??颂兀ㄓ遥┤宋锖喗椋孩倌嫒R與??颂兀喝祟惖谝慌_計算機ENIAC的發(fā)明者。②馮.諾依曼:開創(chuàng)了現(xiàn)代電子計算機的模型,世界公認的“計算機之父”這三位人類杰出的大腦匯聚在一起,共同締造了ENIAC,前者賜予ENIAC軀體與血液,后者賜予其計算機的靈魂—計算機架構(gòu)模型。馮.諾依曼5我們在前面講過,由于二進制代碼過于抽象難于記憶,于是莫奇萊等人自然而然地想到用一些助記符來代替這些難于記憶的二進制碼,比如用ADD代表加法指令、SUB代替減法指令、MOV代表數(shù)據(jù)傳送指令、JUMP代表地址跳轉(zhuǎn)指令等。但計算機是無法識別這些代碼的,于是莫奇萊等人又發(fā)明了將這些指令助記符翻譯成機器語言的匯編系統(tǒng)。匯編系統(tǒng)負責將這些助記符翻譯成機器碼,并將編譯好的不同片段放到適當?shù)奈恢?,形成可?zhí)行的目標碼,這就是第二代編程語言匯編語言。匯編語言的圖文演示:程序員挑選出一部分的指令助記符,將其與特定意義的二進制機器語言一一對應(yīng),最終將其匯總,形成匯編語言

匯編系統(tǒng)負責將這些助記符翻譯成機器碼,并將編譯好的不同片段放到適當?shù)奈恢茫纬煽蓤?zhí)行的目標碼隨后程序員針對這些指令助記符,編寫將這些指令助記符翻譯成機器語言的匯編系統(tǒng),通過匯編系統(tǒng)翻譯的匯編語言最終形成計算機所能讀懂的目標機器碼并輸入計算機,獲得所需結(jié)果。6匯編語言的特性:匯編語言的實質(zhì):同機器語言類似,本質(zhì)上還是一對一地將程序轉(zhuǎn)化為機器碼。匯編語言的優(yōu)點:同機器語言一樣,質(zhì)量高執(zhí)行速度快、效率非常高,并且相比于機器語言,表述更直觀易懂,編寫難度大大降低,編程效率大大提高。匯編語言的缺點:②將指示命令符轉(zhuǎn)換為機器碼的匯編系統(tǒng)編寫難度巨大,會花費程序員大量的時間和精力。①兼容性差,由于每一臺計算機的指令集都不相同,所以,在一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須另編程序,造成了重復工作。知識拓展:既便是編程技術(shù)發(fā)展到今天,編程語言仍有其存在的意義,比如說電腦中的硬件驅(qū)動程序(如聲卡,顯卡等)。硬件驅(qū)動的底層程序,雖然可以用C語言來實現(xiàn),但有時程序員還是使用匯編,原因是匯編語言編出的程序精簡、高效,且與高級語言的庫函數(shù)無關(guān),因此便于向不同的硬件環(huán)境移植。7總結(jié):從1946年到1953年,無論是機器語言還是之后的匯編語言,本質(zhì)上都是一對一地將程序轉(zhuǎn)化為機器碼,也就不可避免的在編輯目標程序過程中付出大量的人力物力財力。并且由于每臺計算機的指令系統(tǒng)往往各不相同,同樣的程序,要想在另一臺計算機上運行,必須重新編碼,而這也就造成了資源及時間的極大浪費。在這個時代,程序設(shè)計意味著巨額時間精力與財力,而我們將這一時期統(tǒng)稱為程序設(shè)計語言歷史中的低級語言時代,也就是最初級的時代。二、高級語言時代(1954-1995)-暨面向過程的高級語言Ⅰ、FORTRAN

語言—面向過程的高級語言的先驅(qū)者,編程語言的第一次革命1.產(chǎn)生背景:計算機被發(fā)明之初由于造價昂貴,它主要被用于科學計算和軍事,比如炮彈和導彈彈道的計算、氣象預報中大量的數(shù)值計算等。但從1946年第一臺計算機誕生到1953年,計算機一直都缺少兩件非常重要的功能,一個叫浮點計算,一個叫數(shù)組下標尋址,這兩個功能的缺失直接導致了高級語言的興起,于是FORTRAN語言來了。什么是浮點運算和數(shù)組下標尋址????8

1.浮點計算:所謂浮點運算,用通俗的話說就是如0.98×12.6這樣的實數(shù)乘法,或者0.98+12.6這樣的實數(shù)加法的運算。用行話說,就是用計算機進行大范圍高精度數(shù)的算術(shù)運算。而與之相對應(yīng)的是整數(shù)運算,而它們的區(qū)別就在于前者有小數(shù)點,而后者沒有。

小編解惑:2.數(shù)組下標尋址:所謂數(shù)組下標尋址,指的是一種數(shù)組索引操作。舉一個常見的例子,比如說我需要在電腦C盤中找尋一個以{A}的子文件文件,但又不知道這個文件在哪里,通常,按我們現(xiàn)在的做法,我們會在我地電腦搜索欄中輸入{A}這個搜索目錄,進行泛搜索,系統(tǒng)會自動將所有以A字母開頭的文件羅列出來,然后我們便可輕松地在其中找出這個{A3}文件。但在當時,這樣簡單的操作是無法實現(xiàn)的,原因在于:①因為浮點預算有一個額外的小數(shù)點的引入,在任何時候都要注意小數(shù)點的對齊。落實到硬件上,就是在硬件上設(shè)計一個浮點運算,而這需要復雜的電路和大量的電子元器件。但在早期電子管計算機中,是很少能做到這么大的集成度的。因此,不支持浮點也是自然的設(shè)計取舍。在計算機上放一個浮點模塊這個想法,需要等電子工業(yè)繼續(xù)發(fā)展,使得電子管體積小一點,功耗低一點后,才能進入實踐。(注*:早期的計算機內(nèi)部電路是用的是電子管和晶體管,發(fā)熱量大,壽命短,易死機,且成本高昂)②當時的計算機內(nèi)存很小,只有一千到兩K的存儲空間,為了使更多的存儲單元運算關(guān)鍵的大數(shù)據(jù),所以當時所有的機器,都只支持直接尋址,即直接在計算機中輸入{A3},以便減輕計算機運轉(zhuǎn)負荷。

9由于當時的技術(shù)及科技的相對落后,人們無法于硬件上設(shè)計一個浮點運算,再加上當時計算機存儲量的低下,人們自然而然的想到能否設(shè)計一種系統(tǒng),讓計算機在這個虛擬世界中,通過特定的邏輯運算和相關(guān)命令,來用當前的硬件配置去執(zhí)行浮點運算及數(shù)組下標尋址。毫無疑問,這種想法是可行的。但當時的機器語言和匯編語言由于無法有效地編輯邏輯語言和與之相關(guān)的預算法則,制約了這種想法的實現(xiàn)。而FORTRAN語言的誕生,恰解燃眉之急。2.FORTRAN語言的發(fā)明者:約翰·貝克斯約翰貝克斯的圖片1924年12月3日生于美國賓夕法尼亞州費城,1957年4月他所領(lǐng)導13人小組推出全世界第一套高階電腦語言FORTRAN,并首次用在IBM

704計算機上面,1958年推出FORTRANⅡ,幾年后又推出FORTRANⅢ,1962年推出FORTRANⅣ,被稱為FORTRAN語言之父。他所開發(fā)的Speedcoding的程序,適用于浮點數(shù)運算,沿用至今。10①讓程序員可以方便的寫數(shù)學公式②用FORTRAN語言編寫的系統(tǒng)最后能夠解析/生成足夠的快的程序③讓其能以充分低的代價把含有豐富數(shù)學表達式的程序翻譯成高效的目標程序。3.約翰·貝克斯開發(fā)FORTRAN高級語言的宗旨是什么?上述所陳述的幾點對于FORTRAN的存在有著至關(guān)重要的意義,因為他設(shè)計之初就是為了解決計算機浮點運算和數(shù)組下標尋址這兩項難點。在生活中,2.2+2.2=4.4這樣一個再簡單不過的數(shù)學運算,要想讓計算機讀懂并對它進行正確的運算,在FORTRAN語言出現(xiàn)前是一件很困難的事,其原因在于計算機只識別0,1機器代碼。想要讓計算機識別小數(shù)點,需要程序員對其進行大量計算然后轉(zhuǎn)碼,再將轉(zhuǎn)碼輸入計算機才能得到最終的數(shù)值,這無疑會消耗程序員大量的時間。同時由于系統(tǒng)有低級語言編成,系統(tǒng)無法像FORTRAN及后來的高級語言一樣直接識別數(shù)學法則與邏輯的運算,而這也就造成了系統(tǒng)對輸入的程序/代碼的解析/生成效率低下。而FORTRAN語言恰好很好的解決了這幾個問題。FORTRAN語言編程流程圖程序員對問題進行分析,并對此使用合理地數(shù)學公式,然后將其輸入FORTRAN語言編輯器FORTRAN語言編輯器對輸入的代碼、數(shù)學公式進行識別、排列,然后轉(zhuǎn)化為機器碼,輸入計算機計算機識別輸入機器碼并運算,最終得出結(jié)果114.FORTRAN語言出現(xiàn)的意義人類歷史上第一個面向過程的高級程序設(shè)計語言,第一個第三代程序設(shè)計語言,并引發(fā)了程序設(shè)計語言的第一次革命,在其之后的60年里,越來越多的高級語言參照FORTRAN語言如雨后春筍般出現(xiàn),它們或借鑒于FORTRAN或借鑒于他的后秀,但不管怎樣,都能在它們身上看到FORTRAN的一些思想。影響周期長。FORTRAN語言是最早出現(xiàn)的高級語言之一,它的生命周期很長,從20世紀50年代一直延續(xù)至今,在數(shù)值計算領(lǐng)域至今仍在使用,特別是在大型數(shù)組的矩陣計算中非常有特色,在計算機語言的發(fā)展中仍然占有重要地位。促使語言標準化工作被提上了日程,解決了計算機與計算機之間語言的兼容問題。也在一定程度上加快了全球化的步伐。圖中所展示的是IBM704計算機,發(fā)布于1957年,也是首個使用FORTRSAN語言的計算機。當時一經(jīng)發(fā)布,便引起巨大轟動,首批IBM704在很短的時間內(nèi)變賣脫銷,以至于IBM總部不得不加把加點趕工,才勉強滿足市場需求。在當時,這臺計算機銷量超200臺,年銷售額過十億美元。而在當時,100萬美元相當于現(xiàn)在的1.5億美元。12導讀:FORTRAN語言的產(chǎn)生,讓程序設(shè)計語言步入了高級語言時代,使得計算機的使用效率大大提高,但FORTRAN語言也有著它的局限性,那就是它不適合來處理日常經(jīng)濟生活中大量的數(shù)據(jù),尤其是銀行和商業(yè)領(lǐng)域的數(shù)據(jù)。由于早期計算機的價格異常昂貴,在設(shè)計之初主要的是用于科學計算,比如彈道導彈彈道軌跡的計算、航天飛行器的軌跡模擬等。但隨著時間的推進,科學技術(shù)的不斷發(fā)展,計算機速度越來越快,價格也逐步降低,人美自然而然就想到用計算機來處理日常經(jīng)濟生活中大量的數(shù)據(jù),尤其是銀行和商業(yè)領(lǐng)域的數(shù)據(jù)。這些數(shù)據(jù)計算起來并不是特別復雜,但有其內(nèi)在的規(guī)律,比如輸入輸出的量非常巨大,而且所處理的對象主要以記錄和文件的形式,顯然使用FORTRAN這種為密集型浮點預算而生的程序處理并不一定適合。于是在1959年,由美國的一些計算機用戶組織設(shè)計了專門用于商務(wù)處理的計算機語言,用以專門處理銀行和商業(yè)領(lǐng)域的大數(shù)據(jù),他就是COBOL語言。Ⅱ、COBOL語言——第一個廣泛使用的高級編程語言1.發(fā)展歷程:1959年5月,五角大樓委托格雷斯·霍波(G.Hopper)博士領(lǐng)導一個委員會并由RearAdmiralGraceHopper公司主持開發(fā),并于1961年由美國數(shù)據(jù)系統(tǒng)語言協(xié)會公布。經(jīng)不斷修改、豐富完善和標準化,已發(fā)展為多種版本。2.概念:面向商業(yè)的通用語言,又稱為企業(yè)管理語言、數(shù)據(jù)處理語言等。是一種專門面向數(shù)據(jù)處理的、面向文件的、面向過程(POL)的高級編程語言,可使商業(yè)數(shù)據(jù)處理過程精確表達。3.語言特征:①面向數(shù)據(jù)處理的、面向文件的、面向過程(POL)的高級編程語言,適合于具有循環(huán)處理周期的環(huán)境(例如打印工資支票)以及數(shù)據(jù)操縱量相當大的環(huán)境。13②功能很強,語言極為冗長,語法與英文很接近,即使不懂電腦的人也能看懂程序。③語法與英文很接近,即使不懂電腦的人也能看懂程序。3.重要性:擁有龐大的用戶群和代碼,目前用COBOL書寫的程序已超過了1000億行。另外世界上目前所使用的商業(yè)應(yīng)用軟件之中的百分之七十是由COBOL代碼編寫,并以每年大約五十億行代碼的速度在增長。比如在一些大型機、ATM機上使用的仍是COBOL語言。銀行、金融和會計行業(yè)占其中最大百分比。格雷斯·霍波,改變歷史的偉大女程序設(shè)計員,計算機軟件之母。格雷斯·霍波,一個被很多人遺忘的名字,在20世紀這樣一個大師與天才輩出的時代,作為一名女性,注定了被馮諾依曼,??颂?,愛因斯坦,奧本海默等人的光環(huán)所掩蓋。但當我們拂去掩蓋在她身上的歷史灰塵,你才會發(fā)現(xiàn)她有多么耀眼,哪怕是21世紀的今天,計算機都依然遵守著她所制訂的秩序,比如年、月、日各兩位的日期存儲格式,還比如計算機界通用的術(shù)語“臭蟲”(Bug和家喻戶曉的“千年蟲”(Y2K),便都是她的杰作。14前言:在前面,我們了解了機器語言、匯編語言和之后出現(xiàn)的兩種高級語言—FORTRAN和GOBOL;。通過對程序設(shè)計語言發(fā)展過程的剖析,我們能夠體會到一門好的程序語言對計算機的重要性,雖然當時的學術(shù)界越來越重視計算機語言的研發(fā),但還沒對其真正的重視起來,直到ALGOL高級語言的出現(xiàn),人們對程序設(shè)計語言的重視才達到一個符合它本身該達到的地位——成為一門獨立的科學學科!我們可以毫不夸張的說,ALGOL高級語言的出現(xiàn)是程序設(shè)計語言發(fā)展歷史中的一項里程碑,無論是其自身的架構(gòu)還是對于整個程序設(shè)計語言,他都當之無愧?。。、蟆LGOL—第一個結(jié)構(gòu)程序化語言-又稱國際代數(shù)語言產(chǎn)生背景:高級語言編寫程序的編寫效率雖然比匯編語言高,但隨著計算機硬件技術(shù)的日益發(fā)展,人們對大型、復雜的軟件需求量劇增,而同時因缺乏科學規(guī)范、系統(tǒng)規(guī)劃與測試,程序含有過多錯誤而無法使用,甚至帶來巨大損失。20世紀60年代中后期“軟件危機”的爆發(fā),使人們認識到大型程序的編制不同于小程序。“軟件危機”的解決一方面需要對程序設(shè)計方法、程序的正確性和軟件的可靠性等問題進行深入研究,另一方面需要對軟件的編制、測試、維護和管理方法進行深入研究。結(jié)構(gòu)化程序設(shè)計是一種程序設(shè)計的原則和方法。它討論了如何避免使用GOTO語句;如何將大規(guī)模、復雜的流程圖轉(zhuǎn)換成一種標準的形式,使得它們能夠用幾種標準的控制結(jié)構(gòu)(順序、分支和循環(huán))通過重復和嵌套來表示。在這樣的大背景下ALGOL誕生了。1.發(fā)展歷程:在1958年,ACM小組(美國計算機協(xié)會)和以當時聯(lián)邦德國的應(yīng)用數(shù)學和力學協(xié)會(GAMM)在蘇黎世召開會議,并把他們關(guān)于算法表示法的建議綜合為一,制作為一種編程語言,被命名為IAL(國際代數(shù)語言,InternationalAlgebraicLanguage),后來改稱Algol58,成為ALGOL家族的第一個成員。就這樣ALGOL誕生了。152.概念:一種表

溫馨提示

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

評論

0/150

提交評論