編程是誰發(fā)明的
編程是編寫程序的中文簡(jiǎn)稱,以下是學(xué)習(xí)啦小編為你整理的關(guān)于編程是誰發(fā)明的,希望能幫到你。
一、編程是誰發(fā)明的
多年前,美國(guó)軍方要給一種計(jì)算機(jī)語言取個(gè)名字,大家提了許多動(dòng)聽的名字都覺的不太中意,后來有人提議,將這種計(jì)算機(jī)語言命名為:Ada。沒有人提出異議。為什么大家都同意用這個(gè)名字呢?這還得從100多年前說起。
Ada是一名充滿幻想的女孩
1815年12月10日,英國(guó)。一個(gè)女孩降生了,她的母親,一個(gè)有著杰出數(shù)學(xué)天賦的女人,人稱“平行四邊形公主”;父親,一個(gè)狂熱的充滿幻想的詩(shī)人--拜倫。可是女孩從生下來就從沒見過父親。這位狂熱的、浪漫的詩(shī)人結(jié)婚不久便離開了英國(guó),再也沒有回來。母親給她起了個(gè)動(dòng)聽的名字:阿達(dá)(Ada)。那位詩(shī)人盡管離開了英國(guó),當(dāng)聽說自己有了一個(gè)女兒時(shí)非常的高興,可也非常的懊悔,但他始終沒有回去看女兒一眼,只能用詩(shī)來表達(dá)自己對(duì)女兒的思念和歉疚,他的一首詩(shī)的名字就叫《阿達(dá)》。
狂熱的詩(shī)人36歲死于希臘,臨死前唯一牽掛的就是阿達(dá)。
而此時(shí)的阿達(dá),跟隨著母親生活,阿達(dá)不僅繼承了母親的數(shù)學(xué)天賦,也秉承了父親的性格,小小年紀(jì)也充滿幻想,幻想成為一個(gè)大科學(xué)家、大詩(shī)人。母親怕她走父親的老路,竭力想改變她對(duì)詩(shī)歌的熱愛,但無能為力,阿達(dá)曾對(duì)母親說:“沒有詩(shī),要數(shù)學(xué)干什么?”
當(dāng)時(shí)的英國(guó),科學(xué)風(fēng)氣盛行,包括許多婦女都在雜志上發(fā)表文章探討數(shù)學(xué)等問題。阿達(dá)17歲那年,母親請(qǐng)了著名的數(shù)學(xué)家摩根做她的老師,摩根就是現(xiàn)代計(jì)算機(jī)數(shù)學(xué)基礎(chǔ)布爾代數(shù)的創(chuàng)始人之一。在他的影響下,阿達(dá)的數(shù)學(xué)天賦得到了充分的展現(xiàn)。同時(shí)阿達(dá)還被介紹到當(dāng)時(shí)著名的翻譯家——為劍橋大學(xué)工作的瑪麗·索菲利那里學(xué)習(xí)。瑪麗由衷地喜歡這個(gè)聰明而又刻苦,且充滿幻想的女孩,也非常地支持并鼓勵(lì)她在數(shù)學(xué)方面發(fā)展。此時(shí)的阿達(dá)對(duì)機(jī)械、建筑也充滿興趣,暢游在科技王國(guó),就像少女在花園中徜徉,樂此不疲,流連忘返。她還同當(dāng)時(shí)的一些著名科學(xué)家保持密切的聯(lián)系,如法拉第等。
結(jié)識(shí)巴貝奇
1834年11月,阿達(dá)在一次宴會(huì)上遇到了一位對(duì)其一生產(chǎn)生重要影響的人——查爾斯·巴貝奇。此時(shí)的巴貝奇正到處游說他的計(jì)算機(jī)設(shè)想。當(dāng)時(shí)的人們很少有人理會(huì)他,以為他是在“癡人說夢(mèng)”。同樣,他也將自己的設(shè)想全盤托出,講給阿達(dá)聽。此時(shí)的阿達(dá)只有18歲,但她聽完他的設(shè)想并看了他的文稿后,徹底地領(lǐng)會(huì)了他的設(shè)想,并深深地為之陶醉。憑著她深厚的科學(xué)功底和豐富的想像力,她認(rèn)為這是一個(gè)偉大的設(shè)想,世界將因之而改變。
面對(duì)今天的現(xiàn)實(shí),我們不能不為阿達(dá)的洞察力所折服,她的這一預(yù)言可是在一個(gè)半世紀(jì)以前提出的啊!
參與研制計(jì)算機(jī)
共同的追求,使兩人成了忘年交,阿達(dá)的母親曾試圖阻止阿達(dá)與巴貝奇的交往,認(rèn)為巴貝奇不過是個(gè)江湖騙子,不會(huì)給阿達(dá)好影響。這點(diǎn)阻力對(duì)于秉承父親性格的阿達(dá),算不了什么,她完全投入到了計(jì)算機(jī)的研制中去了,負(fù)責(zé)為巴貝奇設(shè)想中的計(jì)算機(jī)編寫軟件。
1841年,巴貝奇在意大利都靈向人們?cè)敿?xì)地介紹他的設(shè)想,希望能引起大家的重視,但無人喝彩。他用法語出版的論文也不受人歡迎,但阿達(dá)執(zhí)意要將其翻譯成英文。翻譯結(jié)束后阿達(dá)將文稿給巴貝奇看,巴貝奇發(fā)現(xiàn):阿達(dá)不僅在論文中加入她特有的想像,而且補(bǔ)充了許多阿達(dá)獨(dú)到的見解。阿達(dá)特別強(qiáng)調(diào)存儲(chǔ)程序和數(shù)據(jù)的重要性,而這與今天的計(jì)算機(jī)技術(shù)不謀而合,并且擬訂了一份設(shè)計(jì)圖,這份設(shè)計(jì)圖被公認(rèn)為世界上第一個(gè)計(jì)算機(jī)程序。阿達(dá)在文中對(duì)計(jì)算機(jī)應(yīng)用前景的展望,連巴貝奇自己都從來沒有想到過。如:阿達(dá)認(rèn)為,計(jì)算機(jī)應(yīng)該發(fā)展成一個(gè)可用符號(hào)來表示任何事物的裝置,這不正是今天的編程語言嗎?她還預(yù)見到計(jì)算機(jī)可以用在紡織機(jī)械上,用卡片存儲(chǔ)復(fù)雜的花樣、可以用來繪圖、演奏音樂。這些預(yù)言表明阿達(dá)是現(xiàn)代人工智能技術(shù)的拓荒者。
阿達(dá)對(duì)論文的修改,使巴貝奇深感驚奇和鼓舞,他對(duì)別人稱贊說:“阿達(dá)是個(gè)充滿想像力和洞察力的女孩”,“她是個(gè)數(shù)字女神”。她將詩(shī)歌的激情融入了論文之中。
經(jīng)過阿達(dá)翻譯后的文稿其內(nèi)容增加到原來的三倍,論文實(shí)際上成了兩人合作的產(chǎn)物,但謙遜的阿達(dá)在署名的時(shí)候,只將自己的名字簡(jiǎn)單地署為:A.A.L。
在后來的一系列論文中,阿達(dá)在計(jì)算機(jī)軟件領(lǐng)域做出了許多開創(chuàng)性的貢獻(xiàn):如變量、遞歸、程序算法的提出等。
短暫的一生
阿達(dá)后來與威廉伯爵結(jié)婚,婚后生有三個(gè)孩子,但為了研制計(jì)算機(jī),她將孩子們都放到母親那里扶養(yǎng),這對(duì)于一個(gè)女性,在當(dāng)時(shí)是不被人理解的,好在丈夫非常支持她的研究工作,這使她深感欣慰。此時(shí)的巴貝奇已是一貧如洗,阿達(dá)也付出了許多。長(zhǎng)期的研究耗費(fèi)了大量的心血,身體狀況也一天不如一天,疾病時(shí)時(shí)糾纏著她,但為了那個(gè)美麗的幻想成真,她夜以繼日地工作。她的座右銘是:工作是我的報(bào)酬。
1852年,阿達(dá)因癌癥去世,同她的父親一樣,年僅36歲,沒有等到計(jì)算機(jī)的誕生。如果她再多活一年,就會(huì)看到在瑞典,由喬治和愛德華根據(jù)巴貝奇的方案制造出的一臺(tái)差分機(jī),這不能不說是人類的一個(gè)遺憾:第一位軟件工程師,卻沒有看到自己的設(shè)想結(jié)出的果實(shí)。
盡管限于當(dāng)時(shí)的制造條件,巴貝奇最終也沒有造成理想中的計(jì)算機(jī),但他們超前100多年的拓荒,對(duì)后來計(jì)算機(jī)技術(shù)的誕生和發(fā)展同樣產(chǎn)生了深遠(yuǎn)的影響。當(dāng)我們津津樂道ENIAC——第一臺(tái)數(shù)字電子計(jì)算機(jī)的時(shí)候,也不應(yīng)該忘記人類這一智慧的火花,在這之前的100多年,已經(jīng)由巴貝奇和阿達(dá)點(diǎn)燃了。
阿達(dá)、巴貝奇兩人對(duì)計(jì)算機(jī)事業(yè)的貢獻(xiàn)就好像火對(duì)于人類。
他們是鉆燧取火的人,是盜得火種的普羅米修斯。
讓我們記住巴貝奇,也記住這位杰出的女性———阿達(dá)(Ada)。
用她的名字給一種計(jì)算機(jī)語言命名,只能寄托我們對(duì)她的紀(jì)念和欽佩,卻遠(yuǎn)遠(yuǎn)不能表達(dá)出她為計(jì)算機(jī)技術(shù)作出的重要貢獻(xiàn)。
二、執(zhí)行原理
計(jì)算機(jī)對(duì)除機(jī)器語言以外的源程序不能直接識(shí)別、理解和執(zhí)行,都必須通過某種方式轉(zhuǎn)換為計(jì)算機(jī)能夠直接執(zhí)行的。
這種將高級(jí)程序設(shè)計(jì)語言編寫的源程序轉(zhuǎn)換到機(jī)器目標(biāo)程序的方式有兩種:解釋方式和編譯方式。
解釋方式下,計(jì)算機(jī)對(duì)高級(jí)語言書寫的源程序一邊解釋一邊執(zhí)行,不能形成目標(biāo)文件和執(zhí)行文件。
編譯方式下,首先通過一個(gè)對(duì)應(yīng)于所用程序設(shè)計(jì)語言的編譯程序?qū)υ闯绦蜻M(jìn)行處理,經(jīng)過對(duì)源程序的詞法分析、語法分析、語意分析、代碼生成和代碼優(yōu)化等階段將所處理的源程序轉(zhuǎn)換為用二進(jìn)制代碼表示的目標(biāo)程序,然后通過連接程序處理將程序中所用的函數(shù)調(diào)用、系統(tǒng)功能調(diào)用等嵌入到目標(biāo)程序中,構(gòu)成一個(gè)可以連續(xù)執(zhí)行的二進(jìn)制執(zhí)行文件。調(diào)用這個(gè)執(zhí)行文件就可以實(shí)現(xiàn)程序員在對(duì)應(yīng)源程序文件中所指定的相應(yīng)功能。
看過關(guān)于編程是誰發(fā)明的