九款程式語言以及締造它們的偉大女性

51cto發表於2015-05-15

  從大型機步入主流市場至今,女性這半邊天已經為我們設計並開發出了大量出色、而且目前仍給軟體開發領域帶來深遠影響的程式語言。

九款程式語言以及締造它們的偉大女性

  從第一印象來講,軟體開發工作似乎一直是個男性主導下的世界。但儘管如此,女性在過去幾十年中,同樣給程式設計技術帶來重要且至今仍具有關鍵意義的貢獻成果。作為其中的一大核心區劃,程式語言的開發工作中亦不乏女性從業者們的身影。無數女性技術先驅者們早在大型機與機器碼稱雄的時代就開始設計並開發用於向計算機裝置下達指令的語言,並在隨後的彙編以及更高階別的現代語言時代下繼續作出諸多貢獻。在今天的文章中,我們將一同瞭解九款出於女性技術人員之手的程式語言、它們多年來所產生的重大影響以及其背後締造者們的故事。

  ARC組合語言

  締造者: Kathleen Booth

  年份: 1950年

  背景故事:在早期計算機程式設計流程當中,我們必須以機器碼方式直接編寫程式,也就是說必須編寫計算機能夠解讀並據此採取行動的一系列1與0組合。組合語言的出現讓程式設計師們得以通過助記符的形式來編寫機器指令,而且由機器碼向彙編碼轉化的趨勢也讓計算機程式設計變得更容易也更可靠。出現時間最早的組合語言之一出自Kathleen Botth之手,她當時在英國的伯克貝克學院任教。該語言專門針對ARC(即自動繼電器計算機)所開發,而後者的設計與構建工作同樣有Booth的參與。

  Address

  締造者: Kateryna Yushchenko

  年份: 1955年

  背景故事:歐洲地區誕生的第一款可程式設計計算機名為MESM,其由蘇聯於1950年所打造。負責其運作管理工作的科學家之一正是位於基輔的烏克蘭科學院尤先科SSR數學研究所的Kateryna Yushchenko,她同時也是第一位被蘇聯授予物理與數學科學規劃博士頭銜的女性。由於在MESM上使用機器碼進行程式設計的難度很高,因此Yushcenko和她的同事們認為有必要打造一套更為高階的程式語言來簡化這方面的工作。1955年,Yushchenko創造出了Address程式語言,這是第一種支援間接定址機制的語言、而且出現時間早於西方已開發國家的諸多知名高階語言——例如COBOL。Address在隨後的二十多年中一直被蘇聯所廣泛使用。

  COBOL

  締造者: Grace Hopper及其他來自資料系統語言記錄會議的成員

  年份: 1959年

  背景故事:COBOL,全稱為面向商業的通用語言,最初的誕生契機源自美國政府以及各大企業對於能夠埃不同計算機裝置之上、能夠為非技術人員使用的資料處理程式語言的需求。該委員會負責著這一新型程式語言的開發,而Grace Hopper正是美國海軍方面的關鍵性技術顧問之一。早在邁入這一行業頭一個十年,Hopper就曾經在面對UNIVAC系統時建立出了第一款編譯器——也就是A-O——以及一系列其它早期高階程式語言,例如ARITH-MATIC以及B-0、或者叫作FLOW-MATIC。誕生於1955年的FLOW-MATIC是一款採用英文關鍵詞的商務應用程式開發語言。隨後於1959年出現的COBOL最終繼承了FLOW-MATIC中的大部分設計思路,並於次年推出了第一套正式版本——正是因為這一點,Hopper被業界尊為COBOL之母。

  FORMAC

  締造者: Jean Sammet

  年份: 1962年

  背景故事: FORTRAN語言於上世紀五十年代由IBM公司開發而成,其主要面向數學計算以及科學計算任務。而在1961年,IBM公司僱用了數學家Jean Sammet。她此前曾經在在Sperry Gyroscope以及Sylvania負責科學程式設計類工作,並與Grace Hopper一同參與了COBOL語言的開發。1962年,Sammet在IBM公司開發出了程式語言FORMAC(即FORmula MAnipulation Compiler,公式操作編譯器)。而作為其擴充套件成果之一,FORTRAN能夠執行各類代數運算。FORMAC而後成為第一款被廣泛用於進行符號型數學計算的程式語言。

  Logo

  締造者: Cynthia Solomon協同Daniel G. Bobrow、Wally Feurzeig以及Seymour Papert

  年份: 1967年

  背景故事: 在上世紀六十年代末期,來自馬薩諸塞州坎布里奇Bolt、Beranek以及Newman的研究小組成員們意識到有必要開發一套專門面向兒童的、大量採用單詞與語句而非數字及符號的程式語言——這一設計思路與當時的各類主流程式語言有著明顯的區別。其中一位研究人員正是Cynthia Solomon,她的電腦科學之旅始於在人工智慧先驅機構麻省理工學院Marvin Minsky自學Lisp語言的經歷。Solomon參與了這款名為Logo的全新語言的開發工作,並於上世紀六十年代末制定了向七年級學生教授其使用方法的指導細則。Logo語言最知名的象徵性應用就是我們耳熟能詳的小海龜機器人,使用者可以對其發出指令以繪製各類幾何圖形。Solomon最終加入到麻省理工學院的人工智慧實驗室,隨後還負責了蘋果商標的創造工作。Logo影響了此後出現的多種教育性程式語言,例如SmallTalk以及Scratch。

  CLU

  締造者: Barbara Liskov

  年份: 1974年

  背景故事: 物件導向型程式語言的一大革命性發展標誌正是上世紀七十年代中期CLU語言的誕生。CLU的設計與開發由麻省理工學院的Barbara Liskov負責領導,而她也是美國曆史上第一位獲得電腦科學博士學位的女性。通過CLU語言,Liskov提出了諸多概念(或者說將其引入流行),其中包括抽象資料型別、迭代器以及並行作業等等。CLU本身並不屬於面嚮物件語言,因為它某些關鍵性的物件導向特性,例如繼承。CLU雖然從來沒能得到廣泛應用,但它卻給其後的眾多著名語言帶來了巨大的影響,例如Java、Python以及C++,它們都或多或少地採納了來自CLU的先驅性概念。

  Smalltalk

  締造者: Adele Goldberg協同Alan Kay、Dan Ingalls、Ted Kaehler、Diana Merry、Scott Wallace、Peter Deutsch以及其他Xerox PARC成員

  年份: 1980年

  背景故事: 正如二十年前COBOL的誕生讓程式設計真正走入尋常百姓家,SmallTalk的一大設計目標正是構建一種適用於任何一位使用者——而不僅僅是電腦科學家——並允許他們藉此開發應用程式的語言。SmallTalk由Xerox公司的帕洛阿爾託研究中心(簡稱PARC)在Alan Kay的指導下建立而成,她的設計靈感則來源於Simula、世界上第一款物件導向程式。1973年,Adele Goldberg加入到Kay在PARC的開發團隊,並在SmallTalk及其各類先驅性概念——例如模式-檢視-控制器(圖形化使用者介面背後的關鍵性概念)、所見即所得編輯器以及整合化開發環境——的構建過程中扮演著重要角色。1979年,Goldberg在一臺PARC Alto計算機上向Steve Jobs及其手下程式設計師展示了SmallTalk演示素材及其GUI設計,而這直接啟發了蘋果旗下Macintosh桌面系統的誕生。SmallTalk最初於1980年首次以SmallTalk-80的名頭公開亮相,並對隨後出現的多種知名程式語言產生了深遠影響,包括Java、Objective-C以及Python。

  BBC BASIC

  締造者: Sophie Wilson

  年份: 1981年

  背景故事: BBC BASIC也許是在史以來惟一一種專門為電視節目所開發出的程式語言。1981年,BBC公司希望推動一套名為“計算機素養專案”的電視節目,用於指導普通百姓學會程式設計。不過BBC公司的技術顧問們認為現有的BASIC版本還不足以完成這一目標。為了解決這個問題,BBC方面專而向Acorn Computers公司尋求幫助,希望由後者打造一款名為BBC Micro的新型計算機,外加一款專門面向電視節目的新型BASIC版本。Sophie Wilson是一位電腦科學家,而且在大學階段就曾經開發出了Acorn的第一款計算機,即8位Acorn Microcomputer。Wilson以不足16KB的小巧體積為BBC編寫出了BASIC的新版本,其中包含有命名規程、函式以及IF-THEN-ELSE結構等功能特性。計算機素養專案與BBC Micro以及Wilson的BBC BASIC給觀眾帶來了巨大的衝擊,正是這些讓英國的觀眾們第一次接觸到計算機以及程式設計的廣闊世界。而且這些成果隨後還被移植到多種其它平臺之上。

  Coq

  締造者: Christine Paulin-Mohring協同Thierry Coquand、Gérard Huet、Bruno Barras、Jean-Christophe Filliâtre、Hugo Herbelin、Chet Murthy、Yves Bertot以及Pierre Castéran

  年份: 1991年

  背景故事: 1984年,法國電腦科學家Gérard Huet以及Thierry Coquand開始著手開發一套互動型系統,專門針對數學定理進行相關證明過程。其初始版本為Coquand打造的Calculus of Constructions(即構造演算),簡稱為CoC。1991年,Christine Paulin-Mohrin以Calculus of Inductive Constructions為基礎建立出了一套新的實現方案,並將該語言重新命名為Coq——這正是為了向Coquand致敬。除了數學定理之外,頗具知名度的Coq Proof Assistant System(即Coq證明輔助系統)也被用於進行軟體驗證。Paulin-Mohring已經被程式設計業界廣泛視為這款重要語言及工具的主要開發者之一。

相關文章