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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

⑵缺點:

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論