10001011011那是電腦的語言。

你的電腦所做的每件事,包括打電話、搜尋資料庫、玩遊戲⋯⋯,歸結到底,不外乎零與一。歸結到底是半導體晶片上微小的電晶體裏是否存在着電流。零或一隻不過代表斷電或通電。

微軟 Windows 作業系統佔用硬盤20個10億位單元空間,等於1700億個0與1。如果將它們列印在 A4 大的紙上,堆疊起來會有四千公尺高。現在你必須透過這些紙張來工作,如果以手動的方式設定每個電晶體。姑且不論這會有多麼繁瑣,如果撥動每個開關需要一秒鐘,那麼安裝 Windows,將花費五千年的時間。

早期電腦真的必須使用相當類似的方法寫程式。就拿後來稱作「哈佛一號」(Harvard Mark 1)的自動循序控制計算機來說,它長十五公尺,高二點五公尺,佈滿輪子、轉軸、齒輪和開關,內含五百三十英里長的電線。從成卷的打孔紙帶接收到指令後便颼颼運轉,像一臺自動演奏的鋼琴。如果你想讓它解決一個新的方程式,你得先想清楚哪些開關應該開或關,哪些電線應該接到哪裏。然後,你必須打開所有這些開關,插上所有電線,並且在紙帶上打出所有的孔。替它寫程式是讓數學天才絞盡腦汁的挑戰,也是一件乏味、重覆、容易出錯的手工勞作。

操作員在給哈佛一號編碼

哈佛一號問世四十年後, 比較小巧而且對使用者相對友善的機器, 例如 Commodore 64,進入了校園。如果你和我年紀相仿,你可能還記得小時候打出下列字行的興奮:

10 print‘ hello world’;

20 goto 10

接着你瞧,粗短、低解析度的“hello world”兩字便填滿了螢幕。你使用直覺、可辨識的人類語言給電腦下達命令,而電腦也能瞭解,這似乎是件小小的奇蹟。如果你問爲何自從哈佛一號之後,電腦會有如此大的進展,其中一個原因肯定是越來越小巧的零組件。但倘若程序設計師無法用近似人類的語言,撰寫像Windows 這樣的軟件,將它轉譯成最終執行工作的1與0,我們也無法想像電腦現在所能辦到的事。

commodore 64

讓這件事開始成真的東西,稱作「編譯器」。而編譯器的故事,得從一名叫葛麗絲·穆雷·霍普的女子說起。

時下有許多人討論如何讓更多女性進入科技產業。葛麗絲出生於1906年,當時沒有太多人關心就業市場的性別平等問題。幸好葛瑞絲那身爲壽險主管的父親很在意,他看不出女兒有什麼理由得比兒子少受教育。因此,葛瑞絲就讀好學校,證明她具備數學頭腦。由於她的父親是退役海軍少將,她從小就夢想加入海軍,當時女人不準當兵,所以她只好勉強接受成爲教授。到了1941年,珍珠港遭襲事件將美國捲入第二次世界大戰。男性人才被國家徵調,海軍纔開始接受女性人才,葛瑞絲立刻報名。

如果你納悶海軍要數學家何用,想想飛彈的瞄準就知道了。你該從什麼角度和方向發射飛彈?答案取決於許多條件:目標距離、溫度和溼度,以及速度和風向。這些計算並不複雜,但以人腦運算是耗時的,或許有更快的方式。當葛麗絲中尉於1944年從海軍後備軍官學校畢業時,美國海軍對哈佛教授霍華德·艾肯(Howard Aiken)近日發明的一個笨拙玩意兒感興趣。那玩意兒正是「哈佛一號」,海軍於是派葛麗絲協助艾肯去弄清楚它能做些什麼。

艾肯對於有女性加入團隊原本興趣缺缺,但葛麗絲很快令他刮目相看,她被要求撰寫操作手冊,其實光是要想出該寫些什麼,就涉及了大量的錯誤嘗試。一號機經常在開始運作不久後戛然而止,而且不會發出對使用者友善的錯誤訊息。某次因爲一隻蛾飛進機器裏,讓我們從此有了「除錯」(除蟲)(debugging)這個現代用語。這蟲是比喻的說法,更可能發生的是扳錯開關、紙帶打錯孔,而偵錯的工作單調乏味、曠日廢時。

葛麗絲和同僚開始在筆記本上寫滿經過測試、可重複使用的編碼。到了1951年,電腦已經進步到可以在自身記憶體系統中貯存這些稱作「副程序」的區塊。葛麗絲後來替一家名爲雷明頓蘭德(Remington Rand)的公司工作,她設法說服僱主讓程序設計師用熟悉的語句呼叫副程序—「像從薪俸中抽取所得稅那樣描述任務」,按葛麗絲的話說,而非「設法用八進制編碼或各種符號撰寫過程」。

葛麗絲·穆雷·霍普

葛麗絲後來宣稱,「先前沒有人想到要這麼做,因爲他們不像我這麼懶。」這當然是開玩笑的自謙之詞,事實上,葛麗絲以努力工作而聞名。但這個聲明道出一個核心事實:葛麗絲稱之爲「編譯器」的想法,涉及了某種權衡。編譯器讓寫程序變得快速,但完成後的程序卻跑得比較慢,這正是雷明頓蘭德對它不感興趣的原因。每位顧客對於閃亮的新計算機有自己預設的需求,雷明頓蘭德有理由認爲,公司裏的專家應該儘可能有效率地寫程序。

此後,層次越來越多的抽象概念,逐漸將具有人類性格的程式設計師與實體晶片的本質區隔開來,彼此朝着葛麗絲認爲合理的方向邁出深化的一步,也就是解放程式設計師的腦力,使之聚焦于思考概念和演算法,而非開關和電線。

葛麗絲對於同僚一開始爲何抗拒編譯器自有看法,那並非因爲他們在乎讓程式執行得更快。不,是因爲他們樂於享受身爲唯一人選的威望,只有他們能代表那些只能購買電腦的凡人,跟天神般的電腦進行溝通;葛麗絲稱他們爲「大祭司」。葛麗絲認爲每個人都應該要能寫程式,如今人人皆會,電腦也因此更加有了用處。

在葛麗絲·穆雷·霍普傳奇的一生中,她贏得了無數榮譽和獎勵,她先後被40多所大學授予榮譽博士學位。

1971年爲了紀念現代數字計算機誕生25週年,美國計算機學會特別設立了"GraceHopper"獎,頒發給當年最優秀30歲以下的青年計算機工作者;1980年Hopper獲得國際IEEE組織頒發的首屆計算機先驅獎;1991年,布什總統在白宮授予Hopper"全美技術獎",這也是至今美國女性唯一獲此殊榮的人;1994年Hopper被追授爲"美國女名人",進入"全國女名人堂"。

相關文章