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

下載本文檔

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

文檔簡介

1、1 XFXFTEAM-TEAM-先鋒小組先鋒小組 組長:組長:李曉峰李曉峰 隊員:隊員:馬通、王加儒、劉凱倫、柯云鵬馬通、王加儒、劉凱倫、柯云鵬 總編輯總編輯:柯云鵬:柯云鵬 制作人:制作人:柯云鵬柯云鵬 資料收集資料收集:李曉峰、馬通、劉凱倫、王李曉峰、馬通、劉凱倫、王 加儒加儒 探討內(nèi)容:探討內(nèi)容:程序設(shè)計語言發(fā)展史程序設(shè)計語言發(fā)展史 主講:主講:柯云朋柯云朋 2 程序設(shè)計語言的前世今生 導(dǎo)語:1946年2月14日注定是一個不同尋常的日子,在這一天,世界上第一臺 電腦ENIAC(埃尼阿克)在美國賓夕法尼亞大學(xué)誕生了。他是如此的簡陋,如 此的笨重,如此的龐大令人心神恐懼。可是,就是這臺大家伙

2、,讓人類步入 了計算機文明的時代。而伴隨著它的新生,另一樣孕育已久的事物也開始快 速成長,它就是計算機語言,也就是我們所說的程序設(shè)計語言、編程語言。 而今距離第一臺計算機的誕生已經(jīng)過去了快70年了,計算機不斷在變化,變 得越來越小,功能也越變越強大。而隨它孕育而生的計算機語言也同樣不甘 示弱,甚至更多于前者。發(fā)明計算機的人類精英們誰也不曾想到,在這短短 70年中所誕生的編程語言竟然多達2500種。各種語言相互借鑒,關(guān)系錯綜復(fù) 雜,共同繪制出屬于一個時代的人類奇跡,一個時代的文明密碼。 3 一、低級語言時代(1946-1953) 、天書、天書機器語言機器語言最早的計算機語言(一代語言) 最早的計

3、算機語言(一代語言) 1. 1.概念:概念: 機器語言是一種與計算機硬件密切相關(guān)的語言,每臺計算機都有自己的機器語言是一種與計算機硬件密切相關(guān)的語言,每臺計算機都有自己的 指令系統(tǒng),硬件設(shè)計一旦完成,它的指令系統(tǒng)也就確定了,即確定了它的機器語言系指令系統(tǒng),硬件設(shè)計一旦完成,它的指令系統(tǒng)也就確定了,即確定了它的機器語言系 統(tǒng)。統(tǒng)。 機器語言都是由機器語言都是由0 0和和1 1的序列所組成,包含指令、數(shù)據(jù)、地址等。的序列所組成,包含指令、數(shù)據(jù)、地址等。 誒尼阿克所使用的穿孔卡片誒尼阿克所使用的穿孔卡片穿孔紙帶穿孔紙帶早期穿孔機早期穿孔機 2. 2.使用方法:光電閱讀機將記錄在穿孔卡片上的數(shù)據(jù)讀入計

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

5、:由于計算機只識別0 0、1 1代碼,而直接用代碼,而直接用0 0、1 1代碼匯編命令、操作的機器語言,代碼匯編命令、操作的機器語言, 在向計算機發(fā)送命令時,計算機可以直接讀取操作員的命令而無需進行任何的轉(zhuǎn)化,在向計算機發(fā)送命令時,計算機可以直接讀取操作員的命令而無需進行任何的轉(zhuǎn)化, 因此執(zhí)行速度快、效率非常高。因此執(zhí)行速度快、效率非常高。 語言難以理解,過于抽象,相關(guān)指令系統(tǒng)難于記憶。語言難以理解,過于抽象,相關(guān)指令系統(tǒng)難于記憶。 對編程人員要求非常高(要求對計算機的內(nèi)部硬件結(jié)構(gòu)要非常清楚)對編程人員要求非常高(要求對計算機的內(nèi)部硬件結(jié)構(gòu)要非常清楚) 編程過程中一但出錯,難以修改和維護。編程

6、過程中一但出錯,難以修改和維護。 對操作人員的投資成本非常巨大,對操作人員的投資成本非常巨大, 1954 1954 年前后,對程序員的投資接年前后,對程序員的投資接 近計算機本身的價值近計算機本身的價值 使用成本巨大,使用成本巨大,在用機器語言對計算機進行編程的當(dāng)時,計算機的使用時在用機器語言對計算機進行編程的當(dāng)時,計算機的使用時 間的間的1/41/4 1/2 1/2 是花在程序的排錯上。由于當(dāng)時人與計算機的交互是使用卡片是花在程序的排錯上。由于當(dāng)時人與計算機的交互是使用卡片 閱讀機或者紙帶機,程序員寫好程序后把程序交給穿孔員,穿孔員再將每一閱讀機或者紙帶機,程序員寫好程序后把程序交給穿孔員,

7、穿孔員再將每一 條指令在卡片或紙帶上穿孔,然后通過光電設(shè)備讀取上面的指令。由于一個條指令在卡片或紙帶上穿孔,然后通過光電設(shè)備讀取上面的指令。由于一個 好用的應(yīng)用程序需要反復(fù)調(diào)試,因此,編程和排錯占了一臺計算機運行投資好用的應(yīng)用程序需要反復(fù)調(diào)試,因此,編程和排錯占了一臺計算機運行投資 的的 3/4 3/4,而這是一個相當(dāng)巨大的資金損耗。,而這是一個相當(dāng)巨大的資金損耗。 通用性差。由于每臺計算機的指令系統(tǒng)往往各不相同,所以,在通用性差。由于每臺計算機的指令系統(tǒng)往往各不相同,所以,在 一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須另編一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須另編

8、 程序,造成了重復(fù)工作。程序,造成了重復(fù)工作。 5 、硬件驅(qū)動的編寫者、硬件驅(qū)動的編寫者匯編語言匯編語言(二代語言)(二代語言) 導(dǎo)語:導(dǎo)語:二十世紀(jì)五十年代末期,伴隨著二戰(zhàn)的全面結(jié)束二十世紀(jì)五十年代末期,伴隨著二戰(zhàn)的全面結(jié)束 ,遭受重創(chuàng)的西歐喪失了世界,遭受重創(chuàng)的西歐喪失了世界 中心的地位,世界秩序開始重建。最終,版隨之布雷頓森林會議的結(jié)束,美國,這個中心的地位,世界秩序開始重建。最終,版隨之布雷頓森林會議的結(jié)束,美國,這個 年輕的國家最終勝出,成為世界新的經(jīng)濟中心。伴隨著以美元為主的國際貨幣體系的年輕的國家最終勝出,成為世界新的經(jīng)濟中心。伴隨著以美元為主的國際貨幣體系的 成立以及經(jīng)濟的劇烈

9、膨脹,和美蘇爭霸世界格局的形成,機器語言無法再跟上時代的成立以及經(jīng)濟的劇烈膨脹,和美蘇爭霸世界格局的形成,機器語言無法再跟上時代的 步伐,來面對越來越多、越來越頻繁的大數(shù)據(jù)計算。為滿足當(dāng)時的需求,美國迫切需步伐,來面對越來越多、越來越頻繁的大數(shù)據(jù)計算。為滿足當(dāng)時的需求,美國迫切需 要一中相比機器語言更方便、更快捷更易上手、更加高效的程序設(shè)計語言,用以解決要一中相比機器語言更方便、更快捷更易上手、更加高效的程序設(shè)計語言,用以解決 越來越頻繁的大數(shù)據(jù)計算,用以維護世界經(jīng)濟霸主地位和實現(xiàn)科技霸主的夢想。于是越來越頻繁的大數(shù)據(jù)計算,用以維護世界經(jīng)濟霸主地位和實現(xiàn)科技霸主的夢想。于是 莫奇萊來了,??颂?/p>

10、來了,馮莫奇萊來了,埃克特來了,馮. .諾依曼也來了。這些杰出的大腦匯聚在一起,相互碰撞、諾依曼也來了。這些杰出的大腦匯聚在一起,相互碰撞、 相互借鑒,匯聚出智慧的火花,最終匯編語言誕生了!相互借鑒,匯聚出智慧的火花,最終匯編語言誕生了! 莫奇萊(左)莫奇萊(左) ??颂兀ㄓ遥┌?颂兀ㄓ遥?人物簡介: 莫奇萊與??颂兀喝祟惖?一臺計算機ENIAC的發(fā)明者。 馮. .諾依曼:開創(chuàng)了現(xiàn)代電現(xiàn)代電 子計算機的模型,世界公認子計算機的模型,世界公認 的的“計算機之父計算機之父” 這三位人類杰出的大腦匯聚這三位人類杰出的大腦匯聚 在一起,共同締造了在一起,共同締造了ENIAC, 前者賜予ENIAC軀體與

11、血液, 后者賜予其計算機的靈魂 計算機架構(gòu)模型。 馮馮. .諾依曼諾依曼 6 我們在前面講過,由于二進制代碼過于抽象難于記憶,于是莫奇萊等人自然而然地想 到用一些助記符來代替這些難于記憶的二進制碼,比如用 ADD 代表加法指令、SUB 代 替減法指令、MOV 代表數(shù)據(jù)傳送指令、JUMP 代表地址跳轉(zhuǎn)指令等。但計算機是無法識 別這些代碼的,于是莫奇萊等人又發(fā)明了將這些指令助記符翻譯成機器語言的匯編系 統(tǒng)。 匯編系統(tǒng)負責(zé)將這些助記符翻譯成機器碼, 并將編譯好的不同片段放到適當(dāng)?shù)?位置, 形成可執(zhí)行的目標(biāo)碼,這就是第二代編程語言第二代編程語言匯編語言匯編語言。 匯編語言的圖文演示匯編語言的圖文演示:

12、 程序員挑選出程序員挑選出 一部分的指令一部分的指令 助記符,將其助記符,將其 與特定意義的與特定意義的 二進制機器語二進制機器語 言一一對應(yīng),言一一對應(yīng), 最終將其匯總,最終將其匯總, 形成匯編語言形成匯編語言 匯編系統(tǒng)負責(zé)匯編系統(tǒng)負責(zé) 將這些助記符將這些助記符 翻譯成機器碼,翻譯成機器碼, 并將編譯好的并將編譯好的 不同片段放到不同片段放到 適當(dāng)?shù)奈恢茫m當(dāng)?shù)奈恢茫?形成可執(zhí)行的形成可執(zhí)行的 目標(biāo)碼目標(biāo)碼 隨后程序員隨后程序員 針對這些指針對這些指 令助記符,令助記符, 編寫將這些編寫將這些 指令助記符指令助記符 翻譯成機器翻譯成機器 語言的匯編語言的匯編 系統(tǒng),系統(tǒng), 通過匯編系統(tǒng)翻譯的

13、匯編語言最終形成計算機所能讀懂的目標(biāo)通過匯編系統(tǒng)翻譯的匯編語言最終形成計算機所能讀懂的目標(biāo) 機器碼并輸入計算機,獲得所需結(jié)果。機器碼并輸入計算機,獲得所需結(jié)果。 7 匯編語言的特性:匯編語言的特性: 匯編語言的實質(zhì):匯編語言的實質(zhì): 同機器語言類似,本質(zhì)上還是一對一地將程序轉(zhuǎn)化為機器碼。同機器語言類似,本質(zhì)上還是一對一地將程序轉(zhuǎn)化為機器碼。 匯編語言的優(yōu)點:匯編語言的優(yōu)點:同機器語言一樣,同機器語言一樣,質(zhì)量高執(zhí)行速度快、效率非常高,并且質(zhì)量高執(zhí)行速度快、效率非常高,并且 相比于機器語言,表述更直觀易懂,編寫難度大大降低,相比于機器語言,表述更直觀易懂,編寫難度大大降低, 編程效率大大提高。編

14、程效率大大提高。 匯編語言的缺點:匯編語言的缺點: 將指示命令符轉(zhuǎn)換為機器碼的匯編系統(tǒng)編寫難度巨將指示命令符轉(zhuǎn)換為機器碼的匯編系統(tǒng)編寫難度巨 大,會花費程序員大量的時間和精力。大,會花費程序員大量的時間和精力。 兼容性差,由于每一臺計算機的指令集都不相同,兼容性差,由于每一臺計算機的指令集都不相同,所以,在所以,在 一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須一臺計算機上執(zhí)行的程序,要想在另一臺計算機上執(zhí)行,必須 另編程序,造成了重復(fù)工作。另編程序,造成了重復(fù)工作。 知識拓展:既便是編程技術(shù)發(fā)展到今天,編程語言仍有其存在的意義,比知識拓展:既便是編程技術(shù)發(fā)展到今天,編程語言仍有其存在

15、的意義,比 如說電腦中的硬件驅(qū)動程序(如聲卡,顯卡等)。硬件驅(qū)動的底層程序,如說電腦中的硬件驅(qū)動程序(如聲卡,顯卡等)。硬件驅(qū)動的底層程序, 雖然可以用雖然可以用 C C 語言來實現(xiàn),但有時程序員還是使用匯編,原因是匯編語言語言來實現(xiàn),但有時程序員還是使用匯編,原因是匯編語言 編出的程序精簡、高效,且與高級語言的庫函數(shù)無關(guān),因此便于向不同的編出的程序精簡、高效,且與高級語言的庫函數(shù)無關(guān),因此便于向不同的 硬件環(huán)境移植。硬件環(huán)境移植。 8 總結(jié):總結(jié): 從從1946年到年到1953年,無論是機器語言還是之后的匯編語言,本質(zhì)上都是一對一地將程年,無論是機器語言還是之后的匯編語言,本質(zhì)上都是一對一地

16、將程 序轉(zhuǎn)化為機器碼,也就不可避免的在編輯目標(biāo)程序過程中付出大量的人力物力財力。序轉(zhuǎn)化為機器碼,也就不可避免的在編輯目標(biāo)程序過程中付出大量的人力物力財力。 并且并且由于每臺計算機的指令系統(tǒng)往往各不相同,同樣的程序,要想在另一臺計算機上由于每臺計算機的指令系統(tǒng)往往各不相同,同樣的程序,要想在另一臺計算機上 運行,必須重新編碼,而這也就造成了資源及時間的極大浪費。在這個時代,程序設(shè)運行,必須重新編碼,而這也就造成了資源及時間的極大浪費。在這個時代,程序設(shè) 計意味著巨額時間精力與財力,而我們將這一時期統(tǒng)稱為程序設(shè)計語言歷史中的低級計意味著巨額時間精力與財力,而我們將這一時期統(tǒng)稱為程序設(shè)計語言歷史中的

17、低級 語言時代,也就是最初級的時代。語言時代,也就是最初級的時代。 二、高級語言時代(二、高級語言時代(1954-1995)-暨面向過程的高級語言暨面向過程的高級語言 、FORTRANFORTRAN 語言語言面向過程的高級語言的先驅(qū)者,編程語言的第一次革命面向過程的高級語言的先驅(qū)者,編程語言的第一次革命 1.1.產(chǎn)生背景:計算機被發(fā)明之初由于造價昂貴,它主要被用于科學(xué)計算和軍事,產(chǎn)生背景:計算機被發(fā)明之初由于造價昂貴,它主要被用于科學(xué)計算和軍事, 比如炮彈和導(dǎo)彈彈道的計算、氣象預(yù)報中大量的數(shù)值計算等。但從比如炮彈和導(dǎo)彈彈道的計算、氣象預(yù)報中大量的數(shù)值計算等。但從19461946年第一臺年第一臺

18、 計算機誕生到計算機誕生到19531953年,計算機一直都缺少兩件非常重要的功能,一個叫浮點計算,年,計算機一直都缺少兩件非常重要的功能,一個叫浮點計算, 一個叫數(shù)組下標(biāo)尋址,這兩個功能的缺失直接導(dǎo)致了高級語言的興起,于是一個叫數(shù)組下標(biāo)尋址,這兩個功能的缺失直接導(dǎo)致了高級語言的興起,于是 FORTRANFORTRAN語言來了。語言來了。 什么是浮點運算和什么是浮點運算和 數(shù)組下標(biāo)尋址?數(shù)組下標(biāo)尋址? 9 1.1.浮點計算:所謂浮點運算,用通俗的話說就是如浮點計算:所謂浮點運算,用通俗的話說就是如0.980.9812.612.6這樣的實數(shù)乘法,這樣的實數(shù)乘法, 或者或者0.98+12.60.98

19、+12.6這樣的實數(shù)加法的運算。用行話說,就是用計算機進行大范圍高精度數(shù)的這樣的實數(shù)加法的運算。用行話說,就是用計算機進行大范圍高精度數(shù)的 算術(shù)運算。而與之相對應(yīng)的是整數(shù)運算,而它們的區(qū)別就在于前者有小數(shù)點,而后者沒算術(shù)運算。而與之相對應(yīng)的是整數(shù)運算,而它們的區(qū)別就在于前者有小數(shù)點,而后者沒 有。有。 小編解惑:小編解惑: 2.2.數(shù)組下標(biāo)尋址:所謂數(shù)組下標(biāo)尋址,指的是一種數(shù)組索引操作。舉一個常數(shù)組下標(biāo)尋址:所謂數(shù)組下標(biāo)尋址,指的是一種數(shù)組索引操作。舉一個常 見的例子,比如說我需要在電腦見的例子,比如說我需要在電腦C C盤中找尋一個以盤中找尋一個以AA的子文件文件,但又不的子文件文件,但又不

20、知道這個文件在哪里,通常,按我們現(xiàn)在的做法,我們會在我地電腦搜索欄知道這個文件在哪里,通常,按我們現(xiàn)在的做法,我們會在我地電腦搜索欄 中輸入中輸入AA這個搜索目錄,進行泛搜索,系統(tǒng)會自動將所有以這個搜索目錄,進行泛搜索,系統(tǒng)會自動將所有以A A字母開頭的文字母開頭的文 件羅列出來,然后我們便可輕松地在其中找出這個件羅列出來,然后我們便可輕松地在其中找出這個AA3 3 文件。文件。 但在當(dāng)時,這樣簡單的操作是無法實現(xiàn)的,原因在于:但在當(dāng)時,這樣簡單的操作是無法實現(xiàn)的,原因在于: 因為浮點預(yù)算有一個額外的小數(shù)點的引入,在任何時候都要注意小數(shù)點的對齊。因為浮點預(yù)算有一個額外的小數(shù)點的引入,在任何時候

21、都要注意小數(shù)點的對齊。 落實到硬件上,就是在硬件上設(shè)計一個浮點運算,而這需要復(fù)雜的電路和大量的電落實到硬件上,就是在硬件上設(shè)計一個浮點運算,而這需要復(fù)雜的電路和大量的電 子元器件。但在早期電子管計算機中,是很少能做到這么大的集成度的。因此,不子元器件。但在早期電子管計算機中,是很少能做到這么大的集成度的。因此,不 支持浮點也是自然的設(shè)計取舍。在計算機上放一個浮點模塊這個想法,需要等電子支持浮點也是自然的設(shè)計取舍。在計算機上放一個浮點模塊這個想法,需要等電子 工業(yè)繼續(xù)發(fā)展,使得電子管體積小一點,功耗低一點后,才能進入實踐。(注工業(yè)繼續(xù)發(fā)展,使得電子管體積小一點,功耗低一點后,才能進入實踐。(注*

22、 *:早:早 期的計算機內(nèi)部電路是用的是電子管和晶體管,發(fā)熱量大,壽命短,易死機,且成期的計算機內(nèi)部電路是用的是電子管和晶體管,發(fā)熱量大,壽命短,易死機,且成 本高昂)本高昂) 當(dāng)時的計算機內(nèi)存很小,只有一千到兩當(dāng)時的計算機內(nèi)存很小,只有一千到兩K K的存儲空間,為了使更多的存儲單元運算的存儲空間,為了使更多的存儲單元運算 關(guān)鍵的大數(shù)據(jù),所以當(dāng)時所有的機器,都只支持直接尋址,即直接在計算機中輸入關(guān)鍵的大數(shù)據(jù),所以當(dāng)時所有的機器,都只支持直接尋址,即直接在計算機中輸入 AA3 3,以便減輕計算機運轉(zhuǎn)負荷。以便減輕計算機運轉(zhuǎn)負荷。 10 由于當(dāng)時的技術(shù)及科技的相對落后,人們無法于硬件上設(shè)計一個浮點

23、運算,再加上由于當(dāng)時的技術(shù)及科技的相對落后,人們無法于硬件上設(shè)計一個浮點運算,再加上 當(dāng)時計算機存儲量的低下,人們自然而然的想到能否設(shè)計一種系統(tǒng),讓計算機在這當(dāng)時計算機存儲量的低下,人們自然而然的想到能否設(shè)計一種系統(tǒng),讓計算機在這 個虛擬世界中,通過特定的邏輯運算和相關(guān)命令,來用當(dāng)前的硬件配置去執(zhí)行浮點個虛擬世界中,通過特定的邏輯運算和相關(guān)命令,來用當(dāng)前的硬件配置去執(zhí)行浮點 運算及運算及數(shù)組下標(biāo)尋址。毫無疑問,這種想法是可行的。但當(dāng)時的機器語言和匯編語數(shù)組下標(biāo)尋址。毫無疑問,這種想法是可行的。但當(dāng)時的機器語言和匯編語 言由于無法有效地編輯邏輯語言和與之相關(guān)的預(yù)算法則,制約了這種想法的實現(xiàn)。言由

24、于無法有效地編輯邏輯語言和與之相關(guān)的預(yù)算法則,制約了這種想法的實現(xiàn)。 而而FORTRANFORTRAN 語言的誕生,恰解燃眉之急。語言的誕生,恰解燃眉之急。 2.FORTRAN2.FORTRAN語言的發(fā)明者:約翰語言的發(fā)明者:約翰貝克斯貝克斯 約翰貝克斯的圖片 19241924年年1212月月3 3日生于美國賓夕法尼亞州費城,日生于美國賓夕法尼亞州費城,19571957年年4 4月他所領(lǐng)導(dǎo)月他所領(lǐng)導(dǎo)1313人小組推出全世界人小組推出全世界 第一套高階電腦語言第一套高階電腦語言FORTRANFORTRAN,并首次用在,并首次用在IBM 704IBM 704計算機上面,計算機上面,19581958

25、年推出年推出FORTRAN FORTRAN ,幾年后又推出,幾年后又推出FORTRAN FORTRAN ,19621962年推出年推出FORTRAN FORTRAN ,被稱為,被稱為FORTRANFORTRAN語言之父。他語言之父。他 所開發(fā)的所開發(fā)的SpeedcodingSpeedcoding的程序,適用于浮點數(shù)運算,沿用至今。的程序,適用于浮點數(shù)運算,沿用至今。 11 讓程序員可以方便的寫數(shù)學(xué)公式讓程序員可以方便的寫數(shù)學(xué)公式 用用FORTRANFORTRAN語言編寫的系統(tǒng)最后能夠解析語言編寫的系統(tǒng)最后能夠解析/ /生成足夠的快的程序生成足夠的快的程序 讓其能以充分低的代價把含有豐富數(shù)學(xué)表達

26、式的程序翻譯成高效的目標(biāo)程序。讓其能以充分低的代價把含有豐富數(shù)學(xué)表達式的程序翻譯成高效的目標(biāo)程序。 3.3.約翰約翰貝克斯開發(fā)貝克斯開發(fā)FORTRANFORTRAN高級語言的宗旨是什么?高級語言的宗旨是什么? 上述所陳述的幾點對于上述所陳述的幾點對于FORTRANFORTRAN的存在有著至關(guān)重要的意義,因為他設(shè)計之初就是的存在有著至關(guān)重要的意義,因為他設(shè)計之初就是 為了解決計算機浮點運算和數(shù)組下標(biāo)尋址這兩項難點。在生活中,為了解決計算機浮點運算和數(shù)組下標(biāo)尋址這兩項難點。在生活中,2.2+2.2=4.42.2+2.2=4.4這這 樣一個再簡單不過的數(shù)學(xué)運算,要想讓計算機讀懂并對它進行正確的運算,

27、在樣一個再簡單不過的數(shù)學(xué)運算,要想讓計算機讀懂并對它進行正確的運算,在 FORTRANFORTRAN語言出現(xiàn)前是一件很困難的事,其原因在于計算機只識別語言出現(xiàn)前是一件很困難的事,其原因在于計算機只識別0,10,1機器代碼。機器代碼。 想要讓計算機識別小數(shù)點,需要程序員對其進行大量計算然后轉(zhuǎn)碼,再將轉(zhuǎn)碼輸想要讓計算機識別小數(shù)點,需要程序員對其進行大量計算然后轉(zhuǎn)碼,再將轉(zhuǎn)碼輸 入計算機才能得到最終的數(shù)值,這無疑會消耗程序員大量的時間。同時由于系統(tǒng)入計算機才能得到最終的數(shù)值,這無疑會消耗程序員大量的時間。同時由于系統(tǒng) 有低級語言編成,系統(tǒng)無法像有低級語言編成,系統(tǒng)無法像FORTRANFORTRAN及

28、后來的高級語言一樣直接識別數(shù)學(xué)法則與及后來的高級語言一樣直接識別數(shù)學(xué)法則與 邏輯的運算,而這也就造成了系統(tǒng)對輸入的程序邏輯的運算,而這也就造成了系統(tǒng)對輸入的程序/ /代碼的解析代碼的解析/ /生成效率低下。而生成效率低下。而 FORTRANFORTRAN語言恰好很好的解決了這幾個問題。語言恰好很好的解決了這幾個問題。 FORTRANFORTRAN語語 言編程流言編程流 程圖程圖 程序員對問題程序員對問題 進行分析,并進行分析,并 對此使用合理對此使用合理 地數(shù)學(xué)公式,地數(shù)學(xué)公式, 然后將其輸入然后將其輸入 FORTRANFORTRAN語言語言 編輯器編輯器 FORTRAN語言 編輯器對輸入 的

29、代碼、數(shù)學(xué) 公式進行識別、 排列,然后轉(zhuǎn) 化為機器碼, 輸入計算機 計算機 識別輸 入機器 碼并運 算,最 終得出 結(jié)果 12 4.FORTRAN4.FORTRAN語言出現(xiàn)的意義語言出現(xiàn)的意義 人類歷史上第一個面向過程的高級程序設(shè)計語言,第一個第三代程序設(shè)計人類歷史上第一個面向過程的高級程序設(shè)計語言,第一個第三代程序設(shè)計 語言,并引發(fā)了程序設(shè)計語言的第一次革命,在其之后的語言,并引發(fā)了程序設(shè)計語言的第一次革命,在其之后的6060年里,越來越多年里,越來越多 的高級語言參照的高級語言參照FORTRANFORTRAN語言如雨后春筍般出現(xiàn),它們或借鑒于語言如雨后春筍般出現(xiàn),它們或借鑒于FORTRAN

30、FORTRAN或借或借 鑒于他的后秀,但不管怎樣,都能在它們身上看到鑒于他的后秀,但不管怎樣,都能在它們身上看到FORTRANFORTRAN的一些思想。的一些思想。 影響周期長。影響周期長。FORTRAN FORTRAN 語言是最早出現(xiàn)的高級語言之一,它的生命周期很語言是最早出現(xiàn)的高級語言之一,它的生命周期很 長,從長,從2020世紀(jì)世紀(jì)5050年代一直延續(xù)至今,在數(shù)值計算領(lǐng)域至今仍在使用,特別是年代一直延續(xù)至今,在數(shù)值計算領(lǐng)域至今仍在使用,特別是 在大型數(shù)組的矩陣計算中非常有特色,在計算機語言的發(fā)展中仍然占有重要在大型數(shù)組的矩陣計算中非常有特色,在計算機語言的發(fā)展中仍然占有重要 地位。地位。

31、 促使促使語言標(biāo)準(zhǔn)化工作被提上了日程,解決了計算機與計算機之間語言的兼語言標(biāo)準(zhǔn)化工作被提上了日程,解決了計算機與計算機之間語言的兼 容問題。也在一定程度上加快了全球化的步伐。容問題。也在一定程度上加快了全球化的步伐。 圖中所展示的是圖中所展示的是IBM704IBM704計算機,發(fā)布于計算機,發(fā)布于19571957年,也是首個使用年,也是首個使用FORTRSANFORTRSAN語言的計算機。語言的計算機。 當(dāng)時一經(jīng)發(fā)布,便引起巨大轟動,首批當(dāng)時一經(jīng)發(fā)布,便引起巨大轟動,首批IBM704IBM704在很短的時間內(nèi)變賣脫銷,以至于在很短的時間內(nèi)變賣脫銷,以至于IBMIBM總總 部不得不加把加點趕工,

32、才勉強滿足市場需求。在當(dāng)時,這臺計算機銷量超部不得不加把加點趕工,才勉強滿足市場需求。在當(dāng)時,這臺計算機銷量超200200臺,年臺,年 銷售額過十億美元。而在當(dāng)時,銷售額過十億美元。而在當(dāng)時,100100萬美元相當(dāng)于現(xiàn)在的萬美元相當(dāng)于現(xiàn)在的1.51.5億美元。億美元。 13 導(dǎo)讀:導(dǎo)讀:FORTRANFORTRAN語言的產(chǎn)生,讓程序設(shè)計語言步入了高級語言時代,使得計算機的使用語言的產(chǎn)生,讓程序設(shè)計語言步入了高級語言時代,使得計算機的使用 效率大大提高,但效率大大提高,但FORTRANFORTRAN語言也有著它的局限性,那就是它不適合來處理日常經(jīng)濟生語言也有著它的局限性,那就是它不適合來處理日常

33、經(jīng)濟生 活中大量的數(shù)據(jù),尤其是銀行和商業(yè)領(lǐng)域的數(shù)據(jù)。由于早期計算機的價格異常昂貴,在活中大量的數(shù)據(jù),尤其是銀行和商業(yè)領(lǐng)域的數(shù)據(jù)。由于早期計算機的價格異常昂貴,在 設(shè)計之初主要的是用于科學(xué)計算,比如彈道導(dǎo)彈彈道軌跡的計算、航天飛行器的軌跡模設(shè)計之初主要的是用于科學(xué)計算,比如彈道導(dǎo)彈彈道軌跡的計算、航天飛行器的軌跡模 擬等。但隨著時間的推進,科學(xué)技術(shù)的不斷發(fā)展,計算機速度越來越快,價格也逐步降擬等。但隨著時間的推進,科學(xué)技術(shù)的不斷發(fā)展,計算機速度越來越快,價格也逐步降 低,人美自然而然就想到用計算機來處理日常經(jīng)濟生活中大量的數(shù)據(jù),尤其是銀行和商低,人美自然而然就想到用計算機來處理日常經(jīng)濟生活中大量

34、的數(shù)據(jù),尤其是銀行和商 業(yè)領(lǐng)域的數(shù)據(jù)。這些數(shù)據(jù)計算起來并不是特別復(fù)雜,但有其內(nèi)在的規(guī)律,比如輸入輸出業(yè)領(lǐng)域的數(shù)據(jù)。這些數(shù)據(jù)計算起來并不是特別復(fù)雜,但有其內(nèi)在的規(guī)律,比如輸入輸出 的量非常巨大,而且所處理的對象主要以記錄和文件的形式,顯然使用的量非常巨大,而且所處理的對象主要以記錄和文件的形式,顯然使用FORTRAN FORTRAN 這種為這種為 密集型浮點預(yù)算而生的程序處理并不一定適合。于是在密集型浮點預(yù)算而生的程序處理并不一定適合。于是在1959 1959 年年, ,由美國的一些計算機用由美國的一些計算機用 戶組織設(shè)計了專門用于商務(wù)處理的計算機語言,用以專門處理銀行和商業(yè)領(lǐng)域的大數(shù)據(jù),戶組織

35、設(shè)計了專門用于商務(wù)處理的計算機語言,用以專門處理銀行和商業(yè)領(lǐng)域的大數(shù)據(jù), 他就是他就是COBOLCOBOL語言語言。 、COBOLCOBOL語言語言第一個廣泛使用的高級編程語言第一個廣泛使用的高級編程語言 1.1.發(fā)展歷程:發(fā)展歷程:19591959年年5 5月,五角大樓委托格雷斯月,五角大樓委托格雷斯霍波(霍波(G.HopperG.Hopper)博士領(lǐng)導(dǎo)一個)博士領(lǐng)導(dǎo)一個 委員會并由委員會并由RearAdmiralGraceHopperRearAdmiralGraceHopper公司主持開發(fā),并于公司主持開發(fā),并于19611961年由美國數(shù)據(jù)系統(tǒng)年由美國數(shù)據(jù)系統(tǒng) 語言協(xié)會公布。經(jīng)不斷修改、豐

36、富完善和標(biāo)準(zhǔn)化語言協(xié)會公布。經(jīng)不斷修改、豐富完善和標(biāo)準(zhǔn)化, ,已發(fā)展為多種版本。已發(fā)展為多種版本。 2.2.概念:面向商業(yè)的通用語言,又稱為企業(yè)管理語言、數(shù)據(jù)處理語言等。是一種概念:面向商業(yè)的通用語言,又稱為企業(yè)管理語言、數(shù)據(jù)處理語言等。是一種 專門面向數(shù)據(jù)處理的、面向文件的、面向過程(專門面向數(shù)據(jù)處理的、面向文件的、面向過程(POLPOL)的高級編程語言,可使商業(yè))的高級編程語言,可使商業(yè) 數(shù)據(jù)處理過程精確表達。數(shù)據(jù)處理過程精確表達。 3.3.語言特征:語言特征: 面向數(shù)據(jù)處理的、面向文件的、面向過程面向數(shù)據(jù)處理的、面向文件的、面向過程(POL)(POL)的高級編程語言,適合于具的高級編程語

37、言,適合于具 有循環(huán)處理周期的環(huán)境有循環(huán)處理周期的環(huán)境( (例如打印工資支票例如打印工資支票) )以及數(shù)據(jù)操縱量相當(dāng)大的環(huán)境。以及數(shù)據(jù)操縱量相當(dāng)大的環(huán)境。 14 功能很強,語言極為冗長,語法與英文很接近,即使不懂電腦的人也能功能很強,語言極為冗長,語法與英文很接近,即使不懂電腦的人也能 看懂程序??炊绦?。 語法與英文很接近,即使不懂電腦的人也能看懂程序。語法與英文很接近,即使不懂電腦的人也能看懂程序。 3.3.重要性:重要性: 擁有龐大的用戶群和代碼,目前用擁有龐大的用戶群和代碼,目前用COBOLCOBOL書寫的程序已超過了書寫的程序已超過了10001000億行。另外億行。另外 世界上目前所

38、使用的商業(yè)應(yīng)用軟件之中的百分之七十是由世界上目前所使用的商業(yè)應(yīng)用軟件之中的百分之七十是由COBOLCOBOL代碼編寫,并代碼編寫,并 以每年大約五十億行代碼的速度在增長。比如在一些大型機、以每年大約五十億行代碼的速度在增長。比如在一些大型機、ATM ATM 機上使用的機上使用的 仍是仍是COBOLCOBOL語言。銀行、金融和會計行業(yè)占其中最大百分比。語言。銀行、金融和會計行業(yè)占其中最大百分比。 格雷斯格雷斯 霍波, 霍波, 改變歷史的偉大改變歷史的偉大 女程序設(shè)計員,女程序設(shè)計員, 計算機軟件之母。計算機軟件之母。 格雷斯格雷斯霍波,一個被很多人遺忘的名字,在霍波,一個被很多人遺忘的名字,在2

39、020世紀(jì)這樣一個大師與天才輩出世紀(jì)這樣一個大師與天才輩出 的時代,作為一名女性,注定了被馮諾依曼,??颂兀瑦垡蛩固?,奧本海默等的時代,作為一名女性,注定了被馮諾依曼,埃克特,愛因斯坦,奧本海默等 人的光環(huán)所掩蓋。但當(dāng)我們拂去掩蓋在她身上的歷史灰塵,你才會發(fā)現(xiàn)她有多人的光環(huán)所掩蓋。但當(dāng)我們拂去掩蓋在她身上的歷史灰塵,你才會發(fā)現(xiàn)她有多 么耀眼,哪怕是么耀眼,哪怕是2121世紀(jì)的今天,計算機都依然遵守著她所制訂的秩序,比如年、世紀(jì)的今天,計算機都依然遵守著她所制訂的秩序,比如年、 月、日各兩位的日期存儲格式,還比如計算機界通用的術(shù)語月、日各兩位的日期存儲格式,還比如計算機界通用的術(shù)語“臭蟲臭蟲”(

40、BugBug和家和家 喻戶曉的喻戶曉的“千年蟲千年蟲”(Y2KY2K),便都是她的杰作。),便都是她的杰作。 15 前言:在前面,我們了解了機器語言、匯編語言和之后出現(xiàn)的兩種高級語言前言:在前面,我們了解了機器語言、匯編語言和之后出現(xiàn)的兩種高級語言FORTRANFORTRAN和和 GOBOL;GOBOL;。通過對程序設(shè)計語言發(fā)展過程的剖析,我們能夠體會到一門好的程序語言對計。通過對程序設(shè)計語言發(fā)展過程的剖析,我們能夠體會到一門好的程序語言對計 算機的重要性,雖然當(dāng)時的學(xué)術(shù)界越來越重視計算機語言的研發(fā),但還沒對其真正的重算機的重要性,雖然當(dāng)時的學(xué)術(shù)界越來越重視計算機語言的研發(fā),但還沒對其真正的重

41、 視起來,直到視起來,直到ALGOLALGOL高級語言的出現(xiàn),人們對程序設(shè)計語言的重視才達到一個符合它本身高級語言的出現(xiàn),人們對程序設(shè)計語言的重視才達到一個符合它本身 該達到的地位該達到的地位成為一門獨立的科學(xué)學(xué)科!我們可以毫不夸張的說,成為一門獨立的科學(xué)學(xué)科!我們可以毫不夸張的說,ALGOLALGOL高級語言的高級語言的 出現(xiàn)是程序設(shè)計語言發(fā)展歷史中的一項里程碑,無論是其自身的架構(gòu)還是對于整個程序出現(xiàn)是程序設(shè)計語言發(fā)展歷史中的一項里程碑,無論是其自身的架構(gòu)還是對于整個程序 設(shè)計語言,他都當(dāng)之無愧!設(shè)計語言,他都當(dāng)之無愧! 、ALGOLALGOL第一個結(jié)構(gòu)程序化語言第一個結(jié)構(gòu)程序化語言- -又

42、稱國際代數(shù)語言 又稱國際代數(shù)語言 產(chǎn)生背景:產(chǎn)生背景:高級語言編寫程序的編寫效率雖然比匯編語言高,但隨著計算機硬件技術(shù)的高級語言編寫程序的編寫效率雖然比匯編語言高,但隨著計算機硬件技術(shù)的 日益發(fā)展,人們對大型、復(fù)雜的軟件需求量劇增,而同時因缺乏科學(xué)規(guī)范、系統(tǒng)規(guī)劃與日益發(fā)展,人們對大型、復(fù)雜的軟件需求量劇增,而同時因缺乏科學(xué)規(guī)范、系統(tǒng)規(guī)劃與 測試,程序含有過多錯誤而無法使用,甚至帶來巨大損失。測試,程序含有過多錯誤而無法使用,甚至帶來巨大損失。2020世紀(jì)世紀(jì)6060年代中后期年代中后期“軟件軟件 危機危機”的爆發(fā),使人們認識到大型程序的編制不同于小程序。的爆發(fā),使人們認識到大型程序的編制不同于

43、小程序。“軟件危機軟件危機”的解決一方的解決一方 面需要對程序設(shè)計方法、程序的正確性和軟件的可靠性等問題進行深入研究,另一方面面需要對程序設(shè)計方法、程序的正確性和軟件的可靠性等問題進行深入研究,另一方面 需要對軟件的編制、測試、維護和管理方法進行深入研究。結(jié)構(gòu)化程序設(shè)計是一種程序需要對軟件的編制、測試、維護和管理方法進行深入研究。結(jié)構(gòu)化程序設(shè)計是一種程序 設(shè)計的原則和方法。它討論了如何避免使用設(shè)計的原則和方法。它討論了如何避免使用GOTOGOTO語句;如何將大規(guī)模、復(fù)雜的流程圖轉(zhuǎn)語句;如何將大規(guī)模、復(fù)雜的流程圖轉(zhuǎn) 換成一種標(biāo)準(zhǔn)的形式,使得它們能夠用幾種標(biāo)準(zhǔn)的控制結(jié)構(gòu)(順序、分支和循環(huán))通過換成

44、一種標(biāo)準(zhǔn)的形式,使得它們能夠用幾種標(biāo)準(zhǔn)的控制結(jié)構(gòu)(順序、分支和循環(huán))通過 重復(fù)和嵌套來表示。在這樣的大背景下重復(fù)和嵌套來表示。在這樣的大背景下ALGOLALGOL誕生了。誕生了。 1.1.發(fā)展歷程:在發(fā)展歷程:在19581958年,年,ACMACM小組(美國計算機協(xié)會)和以當(dāng)時聯(lián)邦德國的應(yīng)用數(shù)學(xué)和小組(美國計算機協(xié)會)和以當(dāng)時聯(lián)邦德國的應(yīng)用數(shù)學(xué)和 力學(xué)協(xié)會(力學(xué)協(xié)會(GAMMGAMM)在蘇黎世召開會議,并把他們關(guān)于算法表示法的建議綜合為一,制作)在蘇黎世召開會議,并把他們關(guān)于算法表示法的建議綜合為一,制作 為一種編程語言,被命名為為一種編程語言,被命名為IALIAL(國際代數(shù)語言,(國際代數(shù)語言,International Algebraic International Algebraic LanguageLanguage),后來改稱),后來改稱Algol 58Algol 58,成為,成為ALGOLALGOL家族的第一個成員。就這樣家族的第一個成員。就這樣ALGOLALGOL誕生了。誕生了。 16 2.2.概念:一種表達解題算法的程序設(shè)計語言概念:一種表達解題算法的程序設(shè)計語言, ,是應(yīng)用廣泛、重要的一種語言。它與是應(yīng)用廣泛、重要的一種語言。它與 FORTRANFORTR

溫馨提示

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

最新文檔

評論

0/150

提交評論