世界上第一個編譯儀
⑴ 請問,編譯軟體最早是由誰發明出來的
Grave of Grace
後記
Grace Hopper是個非常amazing的人 (常被稱為Amazing Grace),崇拜她的人相當多。雖然她的事跡很多,但是還有很多有類似事跡的人並沒有像她這樣受到眾人的崇拜。由其中一點我們可以看出來:從1947年開始 (二戰結束後第二年),她獲得了第一個榮譽博士學位 (賓州大學),從那以後,她先後被40多所大學授予榮譽博士學位,其中包括芝加哥大學、華盛頓大學、馬里蘭大學等知名學府。各種婦女社會團體和學術組織都曾授予Grace各種稱號和獎勵。1991年,布希總統在白宮授予她的「美國國家技術獎」 (National Medal of Technology) 是其中的最高獎項,她也是至今惟一獲此殊榮的美國女性。她的名言有很多,她自己最喜歡的,也是她最喜歡對所謂的「年輕人」說的 (在她年老時,她所謂的年輕人就是「年齡不到我的一半的人就叫做年輕人」),這句話是:
「A ship in port is safe, but that is not what ships are built for.」
語錄
下面Grace的語錄中有幾句比較有意思的話。
From then on, when anything went wrong with a computer, we said it had bugs in it.
The most dangerous phrase in the language is, 「We』ve always done it this way.」
Humans are allergic to change. They love to say, 「We』ve always done it this way.」 I try to fight that. That』s why I have a clock on my wall that runs counter-clockwise.
Leadership is a two-way street, loyalty up and loyalty down. Respect for one』s superiors; care for one』s crew.
One accurate measurement is worth a thousand expert opinions.
Someday, on the corporate balance sheet, there will be an entry which reads, 「Information」; For in most cases, the information is more valuable than the hardware which processes it.
We』re flooding people with information. We need to feed it through a processor. A human must turn information into intelligence or knowledge. We』ve tended to forget that no computer will ever ask a new question.
To me programming is more than an important practical art. It is also a gigantic undertaking in the foundations of knowledge.
They told me computers could only do arithmetic.
In pioneer days they used oxen for heavy pulling, and when one ox couldn』t budge a log, they didn』t try to grow a larger ox. We shouldn』t be trying for bigger computers, but for more systems of computers.
Life was simple before World War II. After that, we had systems.
We went overboard on management and forgot about leadership. It might help if we ran the MBAs out of Washington.
At any given moment, there is always a line representing what your boss will believe. If you step over it, you will not get your budget. Go as close to that line as you can.
I seem to do a lot of retiring.
I handed my passport to the immigration officer, and he looked at it and looked at me and said, 「What are you?」
參考
維基網路:
http://en.wikipedia.org/wiki/Grace_Hopper
國立中央大學數學系:
http://li.math.ncu.e.tw/bcc16/pool/3.06.shtml
耶魯大學計算機系:
http://cs-www.cs.yale.e/homes/tap/Files/hopper-story.html
計算機先驅:
http://202.207.0.245:9001/jisuanjifazhanshi/xianqu/18.htm
This entry was posted in網路3Cand taggedcompiler,debug,Grace Murray Hopper,傳記,發明,編譯器,起源. Bookmark thepermalink.Post a commentor leave a trackback:Trackback URL.
⑵ 計算機是什麼時候發明的
回顧計算機發展史上的英雄:從帕斯卡到摩爾(1)
計算機發展其實經歷了很漫長的時間,也可以分為古代史,代代史。而現在我們所接觸的剛大多數是從現代史開始的。電腦的史前史應該從計算工具發端,至少可以追溯到我們祖先用石頭或手指幫助計數的遠古時代。
古代史
遠古時期的結繩紀事,算籌,直至現在還要的算盤,到後面所發明的各種和樣的計算機工具。這些都是計算機古代史的成就。而帕斯卡所發明的加法器則第一次確立了計算機器的概念。在電腦史前史里,帕斯卡被公認為製造出機械計算機的第一人。自16歲開始, 帕斯卡就在構思一種計算機。1639年,帕斯卡的父親受命出任諾曼底省監察官,負責徵收稅款。他看著年邁的父親費力地計算稅率稅款,未來的科學家想到了要為父親製做一台可以幫助計算的機器。為了這個夢想,帕斯卡日以繼夜地埋頭苦幹,先後做了三個不同的模型,耗費了整整三年的光陰。他不僅需要自己設計圖紙,還必須自己動手製造。從機器的外殼,直到齒輪和杠桿,每一個零件都由這位少年親手完成。為了使機器運轉得更加靈敏,帕斯卡選擇了各種材料做試驗,有硬木,有烏木,也有黃銅和鋼鐵。終於, 第三個模型在1642年, 帕斯卡19歲那年獲得了成功,他稱這架小小的機器為「加法器」。帕斯卡加法器是一種系列齒輪組成的裝置,外殼用黃銅材料製作,是一個長20英寸、寬4英寸、高3英寸的長方盒子,面板上有一列顯示數字的小窗口,旋緊發條後才能轉動, 用專用的鐵筆來撥動轉輪以輸入數字。 這種機器開始只能夠做6位加法和減法。然而,即使只做加法,也有個「逢十進一」的進位問題。聰明的帕斯卡採用了一種小爪子式的棘輪裝置。當定位齒輪朝9轉動時,棘爪便逐漸升高;一旦齒輪轉到0,棘爪就「咔嚓」一聲跌落下來,推動十位數的齒輪前進一檔。
父親的上司、法國財政大臣來到他家,觀看帕斯卡表演「新式的計算機器」, 並且鼓勵他投入生產,大力推廣這種「人類有史以來第一台計算機」。不久,帕斯卡「加法器」在法國引起了轟動,機器展出時,人們成群結隊前往盧森堡宮參觀。就連大數學家笛卡爾聽說後, 也乘回國探親的機會,親自上門觀看。帕斯卡後來總共製造了50台同樣的機器, 有的機器計算范圍擴大到8 位,其中有兩台,至今還保存在巴黎國立工藝博物館里。
但在這之前所發明的機器都有一個不足――缺乏程序控制的功能。富含戲劇的是,工業社會首次大規模應用程序控制的機器不是計算機,而是紡織行業中的提花編織機,然而,它對計算機程序設計的思想產生過巨大的影響力。傑卡德提花機奏響了機器自動化的序曲,它的發明還引出了計算機史上一位驚世駭俗偉大人物,他就是英國劍橋大學科學家巴貝奇(C.Babbage)。巴貝奇對傑卡德提花機,特別是對穿孔卡片控制機器運轉的天才設計十分神往,他甚至收藏著一幅用24000張卡片編織而成的傑卡德本人的肖像, 並夢想著用類似的方法設計一台計算機。
回顧計算機發展史上的英雄:從帕斯卡到摩爾(2)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
18世紀末,法國數學界調集大批數學家,組成了人工手算的流水線,經過長期艱苦奮斗,終於完成了17卷《數學用表》的編制,但是,手工計算出的數據出現了大量錯誤。這件事情強烈刺激了巴貝奇,20歲那年,他著手開始計算機的研製工作。巴貝奇在他的自傳《一個哲學家的生命歷程》里,寫到了發生在1812年的一件事:「有一天晚上,我坐在劍橋大學分析學會辦公室里,神志恍惚地低頭看著面前打開的一張對數表。一位會員走進屋來,瞧見我的樣子,忙喊道:『喂!你夢見什麼啦?』我指著對數表回答說:『我正在考慮這些表也許能用機器來計算!』」
巴貝奇的第一個目標是製作一台「差分機」。所謂「差分」的含義,是把函數表的復雜算式轉化為差分運算,用簡單的加法代替平方運算,快速編制不同函數的數學用表。
巴貝奇耗費了整整10年時間,於1822年完成了第一台差分機,可以處理3個不同的5位數, 計算精度達到6位小數,當即就演算出好幾種函數表。由於當時工業技術水平極低,第一台差分機從設計繪圖到機械零件加工,都由巴貝奇親自動手實施。成功的喜悅激勵著巴貝奇,他上書英國皇家學會,要求政府資助他建造第二台運算精度達20位的大型差分機。 英國政府同意為這台機器提供1.7萬英鎊的資助。巴貝奇自己也投資1.3萬英鎊巨款,彌補研製經費的不足。
第二台差分機約有25000個零件, 零件誤差要求不超過每英寸千分之一,用蒸汽機驅動。巴貝奇把機器交給了英國最著名的機械工程師約瑟夫•克萊門特所屬工廠製造,但工程進度十分緩慢。第二個10年過去後,全部零件只完成了一半。參加試驗的同事們紛紛離去,巴貝奇獨自苦苦支撐第三個10年,最後只得把圖紙和部分零件送進博物館保存。
巴貝奇一共繪制了21張大型差分機設計圖紙。1991年,為了紀念巴貝奇200周年誕辰,英國肯聖頓(Kensington)科學博物館根據這些圖紙重新建造了一台差分機。復制過程中,只發現圖紙存在著幾處小的錯誤。復制者特地採用18世紀中期的技術設備來製作,不僅成功地造出了機器,而且可以正常運轉。他們猜想,當年巴貝奇沒能完成大型差分機研製,或許不完全是技術方面的問題。
而計算機被用於大規模數據處理剛是由美國人口普查局的統計學家霍列瑞斯(H.Hollerith)博士,他用穿孔卡完成了第一次大規模數據處理。
數字計算機首先來源於理論突破,是邏輯代數為開關電路設計奠定了的數學基礎。
邏輯代數又稱布爾代數,正是以它的創立者——英國數學家布爾(G.Boole)而命名。1815年生於倫敦的布爾家境貧寒,父親是位鞋匠,無力供他讀書。他的學問主要來自於自學。年僅12歲,布爾就掌握了拉丁文和希臘語,後來又自學了義大利語和法語。16歲開始任教以維持生活,從20歲起布爾對數學產生了濃厚興趣,廣泛涉獵著名數學家牛頓、拉普拉斯、拉格朗日等人的數學名著,並寫下大量筆記。這些筆記中的思想,1847年被用於他的第一部著作《邏輯的數學分析》之中。
1854年,已經擔任柯克大學教授的布爾再次出版《思維規律的研究——邏輯與概率的數學理論基礎》。以這兩部著作,布爾建立了一門新的數學學科。
在布爾代數里,布爾構思出一個關於0和1的代數系統,用基礎的邏輯符號系統描述物體和概念。這種代數不僅廣泛用於概率和統計等領域,更重要的是,它為今後數字計算機開關電路設計提供了最重要數學方法。
布爾一生發表了50多篇科學論文、兩部教科書和兩卷回顧計算機發展史上的英雄:從帕斯卡到摩爾(3)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
1916年出生在美國密執安州的申龍,從小熱愛機械和電器,表現出很強的動手能力。1936年畢業於密執安大學工程與數學系,工程與數學就成為他一生的興趣所在。
在麻省理工大學攻讀碩士期間,他選修了布爾代數,並且幸運地得到微分分析儀研製者布希博士的親自指導。導師布希曾對他預言說,微分分析儀的模擬電路必定可以用符號邏輯替代。從布爾的理論和布希的實踐里,申龍逐漸悟出了一個道理——前者正是後者最有效的數學工具。
1938年,年僅22歲的申龍在碩士論文的基礎上,寫就了一篇著名的論文《繼電器和開關電路的分析》,被認為是通訊歷史上最傑出的理論之一。由於布爾代數只有0和1兩個值,恰好與二進制數對應,申龍把它運用於以脈沖方式處理信息的繼電器開關,從理論到技術徹底改變了數字電路的設計方向。因此,這篇論文在現代數字計算機史上也具有劃時代的意義。
1840年取得了博士學位,申龍在AT&T貝爾實驗室里度過了碩果累累的15年。他用實驗證實,完全可以採用繼電器元件製造出能夠實現布爾代數運算功能的計算機。1948年,申龍又發表了另一篇至今還在閃爍光芒的論文——《通信的數學基礎》 , 從而給自己贏來「資訊理論之父」的桂冠。1956年,他參與發起了達特默斯人工智慧會議,成為這一新學科的開山鼻祖之一。他不僅率先把人工智慧運用於電腦下棋方面,而且發明了一個能自動穿越迷宮的電子老鼠,以此證明計算機可以通過學習提高智能。
最後一台「史前」計算機叫 MarkⅠ,在計算機發展史上占據重要地位的電磁式計算機叫 MarkⅠ,它是電腦「史前史」里最後一台著名的計算機。
在先驅者行列中,MarkⅠ發明人、美國哈佛大學艾肯(H.Aiken)博士是大器晚成者。由於家庭貧困,他不得不以半工半讀的方式艱難地讀完職業高中,大學也是邊工作邊學習,才完成學業。畢業後,艾肯謀到了一份總工程師的工作。但36歲那年,他毅然辭去收入豐厚的職務,重新走進哈佛大學讀博士。由於博士論文涉及到空間電荷的傳導理論,需要求解非常復雜的非線性微分方程,艾肯很想發明一種機器代替人工求解的方法,幫助他解決數學難題。
三年後,艾肯是在圖書館里發現了巴貝奇和阿達的論文,以當時的科技水平,也許已經能夠完成巴貝奇未競的事業,造出通用計算機。為此,他寫了一篇《自動計算機的設想》的建議書,提出要用機電方式,而不是用純機械方法來構造新的「分析機」。
為了獲得研製經費, 已在海軍軍械局任職的艾肯中尉,找到IBM公司沃森求助。沃森慷慨地提供了100萬美元, 並且派來4名工程師協助。IBM公司也因此告別了製表機行業,正式跨進了計算機領域。
有IBM作堅強後盾, 計算機研製在哈佛大學里進行, 艾肯為它取名MarkⅠ, 又叫做「自動序列受控計算機」。1944年,經過四年的努力,MarkⅠ在哈佛大學正式啟動。它的外殼用鋼和玻璃製成,長約15米,高約2.4米,自重達31.5噸。它裝備了3000多個繼電器,共有15萬個元件和長達800公里的電線,用穿孔紙帶輸入。這台機器每秒能進行3次運算,23位數加23位數的加法,僅需要0.3秒;而進行同樣位數的乘法,則需要6秒多時間。
艾肯繼續主持MarkⅡ、MarkⅢ等計算機的研製,但它們已經屬於電子計算機的范疇。
1951年誕生的MarkⅢ,是第一台配備磁鼓存儲器的計算機,雖然艾肯堅持程序和數據必須分別存儲在不同的磁鼓裡。MarkⅢ也是第一台被雜志公開發表的計算機,右圖為《時代》周刊刊載的MarkⅢ外貌特徵油畫,該畫現保存在哈佛大學。
有趣的是, 為Mark系列計算機編寫程序的, 也是一位女數學家,名叫格雷斯•霍波(G. Hopper) 。數學博士出身的霍波,1944年加入到哈佛大學計算機研究行列,她說:「我成了世界上第一台大型計算機MarkⅠ的第三名程序員。」MarkⅠ完工後,由於艾肯忙於機型改進設計,運行工作主要由霍波負責。
數學邏輯著作。為了表彰他的成功,都柏林大學和牛津大學先後授予這位自學的成才的數學家榮譽學位,他還被推選為英國皇家學會會員。
1938年,美國數學家申龍(C. Shannon),第一次在布爾代數和繼電器開關電路之間架起了橋梁。
回顧計算機發展史上的英雄:從帕斯卡到摩爾(4)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
1946年,霍波博士在發生故障MarkⅡ計算機里找到了一隻飛蛾,這只小蟲被夾扁在繼電器的觸點里,影響了機器運作。於是,霍波把它小心地保存在工作筆記里,並恢諧地把程序故障統稱為「臭蟲」(bug),這一奇怪的稱呼,後來成為計算機領域的專業術語。
艾肯與霍波等人研製出了電磁式計算機,他們曾聯名發表文章說,MarkⅠ計算機能自動實現人們預先選定的系列運算,甚至可以求解微分方程。他們終於實現了巴貝奇分析機的夙願,但是,這種機器從它投入運行的那一刻開始就已經過時,因為人類社會已經跨進了電子時代。
近代史
電子管的發明使計算機進入了電子計算機。從弗萊明發明第一隻電子管到公認的第一台電腦ENIAC問世,歷經了近50年。事實上,這一時期早就有人試制過真正的電子計算機。
1973年10月19日, 美國一家地方法院經過135次開庭,當眾宣布一項判決書:「莫契利和埃克特沒有發明第一台計算機,只是利用了阿坦那索夫發明中的構思。」理由是阿坦那索夫早在 1941年,就把他對電子計算機的初步設想告訴過ENIAC的發明人。
阿坦那索夫(J. Atanasoft)是衣阿華大學數學物理教授,保加利亞裔的美國博士。與艾肯博士相似,為指導研究生作畢業論文,他也遇到求解微分方程的難題,並設想把計算尺改造成大型的計算裝置。在1935年到1937年間,阿坦那索夫冷靜地分析了他接觸過的機械式、電磁式計算機,反復比較了各種方案。1939年隆冬的一個晚上,阿坦那索夫心情沮喪,計算機設計遇到了難關,始終無法解決,他只好驅車駛上高速公路兜風。開著汽車一連跑了幾百英里,阿坦那索夫把車停靠伊里諾斯州路旁小店前,要了兩杯飲料,獨自坐了下來。
阿坦那索夫後來回憶說:「我想或許喝了兩杯飲料,思維變得活躍起來,使我長期困惑不解的難題,一下子迎刃而解了。」邏輯電路、二進制碼、記憶元件……,計算機的結構一一構思成熟。更重要的是,他打算採用電子管作為開關元件。
由於他對電子技術不太熟悉, 於是從電子工程系物色到一位應屆畢業生貝瑞 (C.Berry),在物理樓地下室里建立了「車間」。阿坦那索夫和貝瑞計劃製造的電子計算機,將可以解出有30個未知數的方程, 可他們只申請到600美元的經費,僅能夠造一個部件。直到 1939年10月,他們才裝配出一台試驗樣機。
在試驗樣機基礎上, 他們下一步打算研製的機器叫「ABC」,即「阿坦那索夫—貝瑞—計算機」三單詞的英文字頭,用300多個電子管組裝。1941年年底,ABC主要部件已經定型,只有穿孔卡設備有待最後完成。由於美國正式參加反法西斯戰爭,貝瑞離開學校前往一家軍事工程公司工作, 這台機器原定的目標沒有實現。
ABC計算機存放在衣阿華大學物理樓的儲存室里,1946年被人拆散,唯一隻留下了存儲器部件,逐漸被人遺忘。衣阿花大學沒有為ABC申請專利, 給電子計算機的發明權問題帶來了曠日持久的法律糾紛。美國地方法院的裁定也不無道理,因為ENIAC的發明者莫契利確實到衣阿華大學參觀過ABC電子計算機,從阿坦那索夫天才的思想里受益匪淺。
回顧計算機發展史上的英雄:從帕斯卡到摩爾(5)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
電腦創世記
舉世公認的第一台電子計算機ENIAC, 誕生在戰火紛飛的二次世界大戰,它的「出生地」是美國馬里蘭州阿貝丁陸軍試炮場。 鮮為人知的是,阿貝丁試炮場研製電子計算機的最初設想,出自於「控制論之父」維 納(L.Wiener)教授的一封信。早在一次世界大戰期間,維納就曾來過阿貝丁試炮場。當時彈道實驗室負責人、著名數學家韋伯倫(O.Veblen)請他為高射炮編制射程表。在這里, 他不僅萌生了控制論的思想,而且第一次看到了高速計算機的必要性。
多年來,維納與模擬計算機發明人布希一直在麻省理工學院共事,結下深厚的友誼。 1940年,在給布希的信中,維納寫道,現代計算機應該是數字式,由電子元件構成,採用二進制,並在內部儲存數據。維納提出的這些原則,為電子計算機指引了正確的方向。
1943年,二次世界大戰關鍵時期,戰爭需要像一隻有力的巨手,給電腦的誕生鋪平了道路。由於阿貝丁試炮場再次承擔美國陸軍新式火炮的試驗任務,陸軍軍械部派青年軍官戈德斯坦(H. Glodstine)中尉,從賓夕法尼亞大學莫爾電氣工程學院召集來一批研究人員,幫助計算彈道表。 戈德斯坦本人就是數學家, 戰前在密歇根大學任數學助理教授。他從陸軍抽調了100 多名姑娘作輔助性人工計算,不僅效率低還經常出錯。莫爾學院的兩位青年學者——36歲 副教授莫契利(J. Mauchiy)和24歲的工程師埃克特(P.Eckert),向戈德斯坦提交了一 份研製電子計算機的設計方案——「高速電子管計算裝置的使用」,他們建議用電子管為 主要元件,製造一台前所未有的計算機,把彈道計算的效率提高成百上千倍。
4月9日,陸軍軍械部召集會議審議這份報告。會議即將結束時,身為軍械部科學顧問 的韋伯倫教授一言九鼎,他猛然站起身,「砰」地一聲推開身後的椅子,對阿貝丁試炮場 負責人大聲說:「西蒙,給戈德斯坦這筆經費!」說完這句話,立即轉身向大門外走去, 戲劇性地決定了第一台電子計算機的命運。 軍方與莫爾學院簽訂的協議是提供14萬美元的研製經費,但後來合同被修訂了12次, 經費一直追加到了48萬,大約相當於現在1000多萬美元。
莫爾學院研製小組是一個朝氣蓬勃的跨學科攻關小組,在科技史上留下了敢冒風險、 敢於取勝的美名。小組成員包括物理學家、數學家和工程師30餘名。其中,戈德斯坦在科 研組織方面表現出傑出的才幹,負責協調項目進展。發揮主要作用的是莫契利和埃克特, 及一位名叫勃克斯(A. Burks)的工程師。莫契利是總設計師,主持機器的總體設計; 埃克特是總工程師,負責解決復雜而困難的工程技術問題;勃克斯則作為邏輯學家,為計算機設計乘法器等大型邏輯元件。
然而, 為支援戰爭趕制的機器沒能在戰爭期間完成,直到1946年2月14日,恰逢當年「情人節」,世界上第一台電子計算機才研製成功。 這台機器的名字叫「ENIAC」(埃歷阿克),即「電子數值 積分和計算機」 的英文縮寫。它採用穿孔卡輸入輸出數據,每分鍾可以輸入125張卡片, 輸出100張卡片。
在ENIAC內部,總共安裝了17468隻電子管,7200個二極體,70000多電阻器,10000多 只電容器和6000隻繼電器,電路的焊接點多達50萬個;在機器表面,則布滿電表、電線和 指示燈。 機器被安裝在一排2.75米高的金屬櫃里,佔地面積為170平方米左右,總重量達 到30噸。這台機器還不夠完善,比如,它的耗電量超過174千瓦;電子管平均每隔7分鍾就 要被燒壞一隻,埃克特必須不停更換。
盡管如此, ENIAC的運算速度達到每秒鍾5000次加法,可以在3/1000秒時間內做完兩個10位數乘法, 其運算速度超出Mark Ⅰ至少1000倍。一條炮彈的軌跡,20秒鍾就能被它算完,比炮彈本身的飛行速度還要快。 ENIAC標志著電子計算機的創世,人類社會從此大步邁進了電腦時代的門檻。
回顧計算機發展史上的英雄:從帕斯卡到摩爾(6)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
電腦語言的歷程
電腦語言也叫程序語言(Program Lauguage),是人與電腦交流和溝通的工具。
早期電腦都直接採用機器語言,即用「0」和「1」為指令代碼來編寫程序,難寫難讀,編程效率極低。為了方便編程,隨即出現了匯編語言,雖然提高了效率,但仍然不夠直觀簡便。從1954年起,電腦界逐步開發了一批「高級語言」,採用英文詞彙、符號和數字,遵照一定的規則來編寫程序。高級語言誕生後,軟體業得到突飛猛進的發展。
1953年12月, IBM公司程序師約翰•巴科斯(J. Backus) 寫了一份備忘錄,建議為IBM704設計一種全新的程序設計語言。巴科斯曾在「選擇順序控制計算機」(SSEC)上工作過3年, 深深體會到編寫程序的困難性。他說:「每個人都看到程序設計有多昂貴,租借機器要花去好幾百萬,而程序設計的費用卻只會多不會少。」
巴科斯的目標是設計一種用於科學計算的「公式翻譯語言」(FORmula TRANslator)。他帶領一個13人小組,包括有經驗的程序員和剛從學校畢業的青年人,在IBM704電腦上設計出編譯器軟體, 於1954年完成了第一個電腦高級語言——FORTRAN語言。1957年,西屋電氣公司幸運地成為FORTRAN的第一個商業用戶, 巴科斯給了他們一套存儲著語言編譯器的穿孔卡片。 以後,不同版本的FORTRAN紛紛面世,1966年,美國統一了它的標准,稱為FORTRAN 66語言。 40多年過去,FORTRAN仍然是科學計算選用的語言之一,巴科斯因此摘取了1977年度「圖林獎」。
FORTRAN廣泛運用的時候, 還沒有一種可以用於商業計算的語言。美國國防部注意到這種情況, 1959年5月,五角大樓委託格雷斯•霍波博士領導一個委員會,開始設計面向商業的通用語言(Common Business Oriented Langauge) ,即COBOL語言。COBOL最重要的特徵是語法與英文很接近, 可以讓不懂電腦的人也能看懂程序;編譯器只需做少許修改,就能運行於任何類型的電腦。委員會一個成員害怕這種語言的命運不會太長久, 特地為它製作了一個小小的墓碑。然而,COBOL語言卻倖存下來。1963年,美國國家標准局將它進行了標准化。用COBOL寫作的軟體,要比其他語言多得多。
1958年,一個國際商業和學術計算機科學家組成的委員會在瑞士蘇黎世開會,探討如何改進FORTRAN,並且設計一種標准化的電腦語言,巴科斯也參加了這個委員會。1960年,該委員會在1958年設計基礎上,定義了一種新的語言版本——國際代數語言ALGOL 60,首次引進了局部變數和遞歸的概念。 ALGOL語言沒有被廣泛運用,但它演變為其他程序語言的概念基礎。
60年代中期, 美國達特默斯學院約翰•凱梅尼 (J. Kemeny) 和托馬斯•卡茨(T.Kurtz)認為,象FORTRAN那樣的語言都是為專業人員設計,而他們希望能為無經驗的人提供一種簡單的語言,特別希望那些非計算機專業的學生也能通過這種語言學會使用電腦。於是, 他們在簡化FORTRAN的基礎上, 研製出一種 「初學者通用符號指令代碼」(Beginners All purpose Symbolic Intruction Code),簡稱BASIC。由於BASIC語言易學易用, 它很快就成為最流行的電腦語言之一,幾乎所有小型電腦和個人電腦都在使用它。經過不斷改進後,它一直沿用至今,出現了象QBASIC、VB等新一代BASIC版本。
1967年,麻省理工學院人工智慧實驗室希摩爾•帕伯特(S.Papert),為孩子設計出一種叫LOGO的電腦語言。帕伯特曾與著名瑞士心理學家皮亞傑一起學習,他發明的LOGO最初是個繪圖程序,能控制一個「海龜」圖標,在屏幕上描繪爬行路徑的軌跡,從而完成各種圖形的繪制。帕伯特希望孩子不要機械地記憶事實,強調創造性的探索。他說:「人們總喜歡講學習,但是,你可以看到,學校的多數課程是記憶一些數據和科學事實,卻很少著眼於真正意義上的學習與思考。 」 他用LOGO語言啟發孩子們學會學習,在馬薩諸塞州列剋星敦,一些孩子用LOGO語言設計出了真正的程序,使LOGO成為一種熱門的電腦教學語言。
1971年,瑞士聯邦技術學院尼克勞斯•沃爾斯(N. Wirth)教授發明了另一種簡單明晰的電腦語言,這就是以帕斯卡的名字命名的PASCAL語言。PASCAL語言語法嚴謹,層次分明,程序易寫,具有很強的可讀性,是第一個結構化的編程語言。它一出世就受到廣泛歡迎,迅速地從歐洲傳到美國。沃爾斯一生還寫作了大量有關程序設計、演算法和數據結構的著作,因此,他獲得了1984年度「圖林獎」。
回顧計算機發展史上的英雄:從帕斯卡到摩爾(7)
作者:jmu.e.cn 2005年08月16日 15:20 來源:jmu.e.cn
1983年度的 「圖林獎」 則授予了AT&T貝爾實驗室的兩位科學家鄧尼斯•里奇 (D.Ritchie)和他的協作者肯•湯姆森(K. Thompson),以表彰他們共同發明著名的電腦語言C。C語言現在是當今軟體工程師最寵愛的語言之一。
里奇最初的貢獻是開發了UNIX操作系統軟體。他說,這里有一個小故事:他們答應為貝爾實驗室開發一個字處理軟體, 要求購買一台小型電腦PDP-11/20,從而爭取到10萬美元經費。可是當機器購回來後,他倆卻把它用來編寫UNIX系統軟體。UNIX很快有了大量追隨者,特別是在工程師和科學家中間引起巨大反響,推動了工作站電腦和網路的成長。1970年, 作為UNIX的一項「副產品」,里奇和湯姆森合作完成了C語言的開發,這是因為研製C語言的初衷是為了用它編寫UNIX。這種語言結合了匯編語言和高級語言的優點,大受程序設計師的親睞。
1983年, 貝爾實驗室另一研究人員比加尼•斯楚士舒普 (B.Stroustrup),把C語言擴展成一種面向對象的程序設計語言C++。如今,數以百萬計的程序員用它來編寫各種數據處理、實時控制、系統模擬和網路通訊等軟體。斯楚士舒普說:「過去所有的編程語言對網路編程實在太慢,所以我開發C++,以便快速實現自己的想法,也容易寫出更好的軟體。」1995年,《BYTE》雜志將他列入「計算機工業20個最有影響力的人」的行列。
晶體管革命
1997年,《時代》周刊記者在評選年度風雲人物的文章里寫道:「新澤西州,50年前的這個星期,1947年12月23日一個細雨朦朦的星期二午後,當貝爾實驗室兩位科學家用一些金箔、一些半導體材料和一個彎曲的別針來展示他們的新發現時,數字化革命誕生了。
同事們懷著好奇和羨慕,看著他倆演示這個被命名為晶體管的能使電流放大並能控制電流開關的東西。」
兩位科學家是布拉頓(W. Brattain)和巴丁(J.Bardeen)。在晶體管發明過程中起到最關鍵作用的還有另外一位科學家,他的名字叫肖克利(W.Shockley)。
畢業於麻省理工學院的博士生肖克利,1936年來到AT&T貝爾實驗室工作,與布拉頓合作研究項目。工作之餘,他們常在一起討論技術,希望能用研製一種取代電子管的新器件。
二戰結束後,巴丁也加入了肖克利研究小組,把目光集中在具有半導體特性的晶體。肖克利提出了研究框架,巴丁熟知固體物理學理論,布拉頓最擅長實驗操作, 三位科學家珠聯璧合。1947年聖誕節前夕,布拉頓和巴丁已經用實驗證明,只要兩根金屬絲在半導體上的接觸點距離小於0.4毫米, 就可能引起放大效果。布拉頓以精湛的實驗技藝,在三角形金箔上劃了一道細痕
⑶ 計算機輔助技術的發展歷程
CAD/CAM/CAE技術的發展與計算機圖形學的發展密切相關,並伴隨著計算機及其外圍設備的發展而發展。計算機圖形學中有關圖形處理的理論和方法構成了CAD/CAM/CAE技術的重要基礎。綜觀CAD/CAM/CAE技術的發展歷程,主要經歷了以下主要發展階段。
20世紀50年代,計算機主要用於科學計算,使用機器語言編程,圖形設備僅具有輸出功能。美國麻省理工學院(MIT)在其研製的旋風I號計算機上採用了陰極射線管(CRT)作為圖形終端,並能被動顯示圖形。其後出現了光筆,開始了互動式計算機圖形學的研究,也為CAD/CAM技術的出現和發展鋪平了道路。1952年MIT首次試製成功了數控銑床,通過數控程序對零件進行加工,隨後MIT研製開發了自動編程語言(APT),通過描述走刀軌跡的方法來實現計算機輔助編程,標志著CAM技術的開端。1956年首次嘗試將現代有限單元法用於分析飛機結構。50年代末,出現了平板式繪圖儀和滾筒式繪圖儀,開始了計算機繪圖的歷史。此間CAD技術處於醞釀、准備階段。
20世紀60年代,這是互動式計算機圖形學發展的最重要時期。1963年MIT學者I.E.Sutherland發表了題為「人機對話圖形通訊系統」的博士論文,首次提出了計算機圖形學等術語。由他推出的二維SKETCHPAD系統,允許設計者操作光筆和鍵盤,在圖形顯示器上進行圖形的選擇、定位等交互作業,對符號和圖形的存儲採用分層的數據結構。這項研究為互動式計算機圖形學及CAD技術奠定了基礎,也標志著CAD技術的誕生。此後,出現了互動式圖形顯示器、滑鼠器和磁碟等硬體設備及文件系統和高級語言等軟體。並陸續出現了許多商品化的CAD系統和設備。例如,1964年美國通用汽車公司研製了用於汽車設計DAC-1系統,1965年美國洛克希德飛機公司開發了CADAM系統,貝爾電話公司也推出了GRAPHIC-1系統等。此間CAD技術的應用以二維繪圖為主。在製造領域中,1962年研製成功了世界上第一台機器人,實現物料搬運自動化,1965年產生了計算機數控機床CNC系統,1966年以後出現了採用通用計算機直接控制多台數控機床DNC系統以及英國莫林公司研製的由計算機集中控制的自動化製造系統。20世紀60年代末,挪威開始了CAPP技術的研究,並於1969年正式推出第一個CAPP系統AutoPros。
20世紀70年代,計算機圖形學理論及計算機繪圖技術日趨成熟,並得到了廣泛應用。這期間,硬體的性能價格比不斷提高;圖形輸入板、大容量的磁碟存儲器等相應出現;資料庫管理系統等軟體得以應用;以小型、超小型計算機為主機的CAD/CAM系統進入市場並形成主流,這些系統的特點是硬體和軟體配套齊全、價格便宜、使用方便,形成所謂的交鑰匙系統(Turnkey System)。同時,三維幾何建模軟體也相繼發展起來,出現了一些面向中小企業的CAD/CAM商品化系統,法國達索公司率先開發出以表面模型為特點的三維曲面建模系統CATIA。20世紀70年代中期開始創立CAPP系統的研究與開發。1976年由CAM-I公司開發了CAPP系統——CAM-I Automated Process Planning。在製造方面,美國辛辛那提公司研製出了一條柔性製造系統(FMS),將CAD/CAM技術推向了新的階段。這一時期各種計算機輔助技術的功能模塊已基本形成,但數據結構尚不統一,集成性差,應用主要集中在二維繪圖、三維線框建模及有限元分析方面。
20世紀80年代,CAD/CAM技術及其應用系統得到迅速發展。這期間,出現了微型計算機和32位字長工作站,同時,計算機硬體成本大輻下降,計算機外圍設備(彩色高解析度圖形顯示器、大型數字化儀、自動繪圖機、彩色列印機等)已逐漸形成系列產品,網路技術也得到應用;CAD與CAM相結合,形成了CAD/CAM集成技術,導致了新理論、新演算法的大量涌現。在軟體方面,不僅實現了工程和產品的設計計算和繪圖,而且還實現了工程造型、自由曲面設計、機構分析與模擬等工程應用,特別是實體建模、特徵建模、參數化設計等理論的發展和應用,推動CAD技術由表面模型到實體建模,再到參數化建模發展,並出現了許多成熟的CAD軟體。在此期間,為滿足數據交換要求,相繼推出了有關標准(如CGI、GKS、IGES及STEP等)。20世紀80年代後期,人們認識到計算機集成製造(CIM)的重要性,開始強調信息集成,出現了CIMS,將CAD/CAM技術推向了更高的層次。
20世紀90年代以來,CAD/CAM/CAE技術更加強調信息集成和資源共享,出現了產品數據管理技術,CAD建模技術日益完善,出現了許多成熟的CAD/CAE/CAM集成化的商業軟體,如採用變數化技術的I-DEAS、應用復合建模技術的UG等。隨著世界市場的多變與激烈競爭,隨著各種先進設計理論和先進製造模式的發展,隨著高檔微機、操作系統和編程軟體的發展,隨著網路技術的迅速發展,CAD/CAM/CAE技術正在經歷著前所未有的發展機遇與挑戰,正在向集成化、網路化、智能化和標准化方向發展。 一個完善的CAD/CAM/CAE系統應具有如下功能:快速數字計算及圖形處理功能、幾何建模功能、處理數控加工信息的功能、大量數據和知識的存儲及快速檢索與操作功能、人機交互通信功能、輸入和輸出信息及圖形功能、工程分析功能等。為實現這些功能,CAD/CAM/CAE系統的運行環境由硬體、軟體和人三大部分所構成。
硬體主要包括計算機及其外圍設備等具有有形物質的設備,廣義上講硬體還包括用於數控加工的機械設備和機床等。硬體是CAD/CAM/CAE系統運行的基礎,硬體的每一次技術突破都帶來CAD/CAM/CAE技術革命性的變化。軟體是CAD/CAM/CAE系統的核心,包括系統軟體、各種支撐軟體和應用軟體等。硬體提供了CAD/CAM/CAE系統潛在的能力,而系統功能的實現是由系統中的軟體運行來完成。隨著CAD/CAM/CAE系統功能的不斷完善和提高,軟體成本在整個系統中所佔的比重越來越大,目前一些高端軟體的價格已經遠遠高於系統硬體的價格。
任何功能強大的計算機硬體和軟體均只是輔助設計工具,而如何充分發揮系統的功能,則主要是取決於用戶的素質,CAD/CAM/CAE系統的運行離不開人的創造性思維活動,不言而喻,人在系統中起著關鍵的作用。在21世紀初,CAD/CAM/CAE系統基本都採用人機交互的工作方式,這種方式要求人與計算機密切合作,發揮各自所長:計算機在信息的存儲與檢索、分析與計算、圖形與文字處理等方面具有特有的功能;人則在創造性思維、綜合分析、經驗判斷等方面佔有主導地位。 CAD/CAM系統的硬體主要由計算機主機、外存儲器、輸入設備、輸出設備、網路設備和自動化生產裝備等組成。有專門的輸入及輸出設備來處理圖形的交互輸入與輸出問題,是CAD/CAM/CAE系統與一般計算機系統的明顯區別。
(1)計算機主機
主機是CAD/CAM/CAE系統的硬體核心,主要由中央處理器(CPU)及內存儲器(也稱內存)組成。CPU包括控制器和運算器,控制器按照從內存中取出的指令指揮和協調整個計算機的工作,運算器負責執行程序指令所要求的數值計算和邏輯運算。CPU的性能決定著計算機的數據處理能力、運算精度和速度。內存儲器是CPU可以直接訪問的存儲單元,用來存放常駐的控製程序、用戶指令、數據及運算結果。衡量主機性能的指標主要有兩項:CPU性能和內存容量。按照主機性能等級的不同,可將計算機分為大中型機、小型機、工作站和微型機等不同檔次。
(2)外存儲器
外存儲器簡稱外存,用來存放暫時不用或等待調用的程序、數據等信息。當使用這些信息時,由操作系統根據命令調入內存。外存儲器的特點是容量大,經常達到數百MB、數十GB或更多,但存取速度慢。常見的有磁帶、磁碟(軟盤、硬碟)和光碟等。隨著存儲技術的發展,移動硬碟、U盤等移動存儲設備成為外存儲器的重要組成部分。
(3)輸入設備
輸入設備是指通過人機交互作用將各種外部數據轉換成計算機能識別的電子脈沖信號的裝置,主要分為鍵盤輸入類(如:鍵盤)、指點輸入類(如:滑鼠)、圖形輸入類(如:數字化儀)、圖像輸入類(如:掃描儀、數碼相機)、語音輸入類等。
(4)輸出設備
將計算機處理後的數據轉換成用戶所需的形式,實現這一功能的裝置稱為輸出設備。輸出設備能將計算機運行的中間或最終結果、過程,通過文字、圖形、影像、語音等形式表現出來,實現與外界的直接交流與溝通。常用的輸出設備包括顯示輸出(如:圖形顯示器)、列印輸出(如:列印機)、繪圖輸出(如:自動繪圖儀)及影像輸出、語音輸出等。
(5)網路互聯設備
包括網路適配器(也稱網卡)、中繼器、集線器、網橋、路由器、網關及數據機等裝置,通過傳輸介質聯接到網路上以實現資源共享。網路的連接方式即拓撲結構可分為星狀結構、環狀結構、樹狀結構、網狀結構、等結構。先進的CAD/CAM系統都是以網路的形式出現的。 為了充分發揮計算機硬體的作用,CAD/CAM/CAE系統必須配備功能齊全的軟體,軟體配置的檔次和水平是決定系統功能、工作效率及使用方便程度的關鍵因素。計算機軟體是指控制CAD/CAM/CAE系統運行、並使計算機發揮最大功效的計算機程序、數據以及各種相關文檔。程序是對數據進行處理並指揮計算機硬體工作的指令集合,是軟體的主要內容。文檔是指關於程序處理結果、資料庫、使用說明書等,文檔是程序設計的依據,其設計和編制水平在很大程度上決定了軟體的質量,只有具備了合格、齊全的文檔,軟體才能商品化。
根據執行任務和處理對象的不同,CAD/CAM/CAE系統的軟體可分系統軟體、支撐軟體和應用軟體三個不同層次。系統軟體與計算機硬體直接關聯,起著擴充計算機的功能和合理調度與運用計算機硬體資源的作用。支撐軟體運行在系統軟體之上,是各種應用軟體的工具和基礎,包括實現CAD/CAM/CAE各種功能的通用性應用基礎軟體。應用軟體是在系統軟體及支撐軟體的支持下,實現某個應用領域內的特定任務的專用軟體。
(1)系統軟體
系統軟體是用戶與計算機硬體連接的紐帶,是使用、控制、管理計算機的運行程序的集合。系統軟體通常由計算機製造商或軟體公司開發。系統軟體有兩個顯著的特點:一是通用性,不同應用領域的用戶都需要使用系統軟體;二是基礎性,即支撐軟體和應用軟體都需要在系統軟體的支持下運行。系統軟體首先是為用戶使用計算機提供一個清晰、簡潔、易於使用的友好界面;其次是盡可能使計算機系統中的各種資源得到充分而合理的應用。系統軟體主要包括三大部分:操作系統、編程語言系統和網路通信及其管理軟體。
操作系統是系統軟體的核心,是CAD/CAM/CAE系統的靈魂,它控制和指揮計算機的軟體資源和硬體資源。其主要功能是硬體資源管理、任務隊列管理、硬體驅動程序、定時分時系統、基本數學計算、日常事務管理、錯誤診斷與糾正、用戶界面管理和作業管理等。操作系統依賴於計算機系統的硬體,用戶通過操作系統使用計算機,任何程序需經過操作系統分配必要的資源後才能執行。21世紀流行的操作系統有Windows、UNIX、Linux。
編程語言系統主要完成源程序編輯、庫函數及管理、語法檢查、代碼編譯、程序連接與執行。按照程序設計方法的不同,可分為結構化編程語言和面向對象的編程語言;按照編程時對計算機硬體依賴程度的不同,可分為低級語言和高級語言。21世紀廣泛使用面向對象的編程語言,如Visual C++、Visual Basic、Java等。
網路通信及其管理軟體主要包括網路協議、網路資源管理、網路任務管理、網路安全管理、通信瀏覽工具等內容。國際標準的網路協議方案為「開放系統互連參考模型」(OSI),它分為七層:應用層、表示層、會話層、傳輸層、網路層、數據鏈路層和物理層。CAD/CAM/CAE系統中流行的主要網路協議包括TCP/IP協議、MAP協議、TOP協議等。
(2)支撐軟體
支撐軟體是CAD/CAM軟體系統的重要組成部分,一般由商業化的軟體公司開發。支撐軟體是滿足共性需要的CAD/CAM/CAE通用性軟體,屬知識密集型產品,這類軟體不針對具體的應用對象,而是為某一應用領域的用戶提供工具或開發環境。支撐軟體一般具有較好的數據交換性能、軟體集成性能和二次開發性能。根據支撐軟體的功能可分為功能單一型和功能集成型軟體。功能單一型支撐軟體只提供CAD/CAM/CAE系統中某些典型過程的功能,如互動式繪圖軟體、三維幾何建模軟體、工程計算與分析軟體、數控編程軟體、資料庫管理系統等。功能集成型支撐軟體提供了設計、分析、造型、數控編程以及加工控制等綜合功能模塊。
1)互動式繪圖軟體
這類軟體主要以交互方法完成二維工程圖樣的生成和繪制,具有圖形的編輯、變換、存儲、顯示控制、尺寸標注等功能;具有尺寸驅動參數化繪圖功能;有較完備的機械標准件參數化圖庫等。這類軟體繪圖功能很強、操作方便、價格便宜。在微機上採用的典型產品是AutoCAD以及國內自主開發的CAXA電子圖板、PICAD、高華CAD等。
2)三維幾何建模軟體
這類軟體主要解決零部件的結構設計問題,為用戶提供完整准確地描述和顯示三維幾何形狀的方法和工具,具有消隱、著色、濃淡處理、實體參數計算、質量特性計算、參數化特徵造型及裝配和干涉檢驗等功能,具有簡單曲面造型功能,價格適中,易於學習掌握。這類軟體在國內的應用主要以MDT、SolidWorks和SolidEdge為主。
3)工程計算與分析軟體
這類軟體的功能主要包括基本物理量計算、基本力學參數計算、產品裝配、公差分析、有限元分析、優化演算法、機構運動學分析、動力學分析及模擬與模擬等,有限元分析是核心工具。ADAMS。
4)數控編程軟體
這類軟體一般具有刀具定義、工藝參數的設定、刀具軌跡的自動生成、後置處理及切削加工模擬等功能。應用較多的有MasterCAM、SurfCAM及CAXA製造工程師等。
5)資料庫管理系統
工程資料庫是CAD/CAM/CAE集成系統的重要組成部分,工程資料庫管理系統能夠有效地存儲、管理和使用工程數據,支持各子系統間的數據傳遞與共享。工程資料庫管理系統的開發可在通用資料庫管理系統基礎上,根據工程特點進行修改或補充。21世紀比較流行的資料庫管理系統有ORACLE、SYBASE、FOXPRO、FOXBASE等。
(3)功能集成型軟體
1)Pro/Engineer
2)UG
3)I-DEAS
4)CATIA