回覆列表
  • 1 # 你永遠追不上的巨人

      世界上第一個程式是1842年寫的,恰好在第一個能被稱為計算機的真正機器。這段程式碼的作者是Ada Augusta,被封為Lovelace女伯爵,就是大家所知道的Ada Lovelace。作為世界上第一個計算機程式的作者,她被廣泛地認為是有史以來第一位程式設計師。   當把Ada稱為一位程式設計師的時候,很容易忘記世界上第一段程式碼產生的年代就是塞繆爾·莫爾斯首次展示電話、阿姆斯達號上的黑奴在反抗和美國正處於三十年代、奧斯曼帝國和波斯帝國時期、穆斯林國家的奴隸正和埃及爭奪中東地區的年代。計算機這個詞在那時候仍然表示一個人做了100多年的計算工作的意思。那都是很久以前的事情了。 世界上第一段程式碼是為查爾斯·巴貝奇的分析機寫的,這個機器從來沒有真正建成過,雖然有這個可能。Ada Lovelace看到了巴貝奇機器的潛力,產生了可程式設計的計算機的念頭。她為泰勒的科學回憶錄翻譯了一位義大利數學家Luigi Menabrea的名為“分析機的概念圖”的論文,並透過“翻譯者的附註(她自己註釋的)”把這篇論文弄懂了,那個註釋裡主要寫了查爾斯·巴貝奇分析機都能幹些什麼。在附註G的開篇,就提到了世界上第一個計算機程式,舉例說明了Lovelace意識到巴貝奇的設計是多麼的意義深遠,但還保持著她做科學的平靜。 “防止誇大源於分析機的能量的想法是有必要的。” Lovelace在她根本沒有辦法誇大一個包含現代計算機的主要部分的設計的本質。巴貝奇拒絕公佈這臺分析機的很多內容,使得Lovelace的註釋對未來的發展起到了重要影響,最顯著的影響便是促使阿蘭·圖靈產生通用程式儲存計算機的想法。這一點Ada並沒有看到,她36歲去世,前面提到的註釋成了她唯一的出版物。如果她再能多活幾年多工作幾年,計算機會不會又是另一個樣子呢?讓大家回到這個問題上來:如果巴貝奇有足夠的資源建好分析機並能讓Lovelace在上面跑程式的話,世界上第一個計算機程式是幹嘛用的呢?這個程式讓巴貝奇分析機計算了伯努利數字序列。接著她描述了怎麼把大量的巴貝奇分析機的穿孔卡片作為輸入實現這個程式。在她的實現方法中Lovelace設定了伯努利數序列的第一個數字(B0=1,B1=-),然後開始從B2(第一個非正規伯努利數)開始計算整個序列,她把這裡的B2標記為B1。 現代重寫的Javascript版本的Ada的大量穿孔卡片上的堆疊看起來可能是這個樣子。這個重寫的版本不是Ada的程式碼在巴貝奇分析機上的模擬,只是Ada曾經使用過的演算法的另一種實現。 順便提一下,到目前為止從沒有人能從Ada的伯努利數計算程式碼裡發現任何bug。儘管她發明了程式設計,但她顯然並沒有發明bug。 注:Ada Lovelace Day是一個國際性的慶祝婦女在科學,科技,工程和數學領域取得成就的節日。

  • 中秋節和大豐收的關聯?
  • 《知否知否應是綠肥紅瘦》中,林小娘、曼娘和小秦氏這三位,你覺得誰能活得更久?