九款程式語言以及締造它們的偉大女性
從大型機步入主流市場至今,女性這半邊天已經為我們設計並開發出了大量出色、而且目前仍給軟體開發領域帶來深遠影響的程式語言。
九款程式語言以及締造它們的偉大女性
從第一印象來講,軟體開發工作似乎一直是個男性主導下的世界。但儘管如此,女性在過去幾十年中,同樣給程式設計技術帶來重要且至今仍具有關鍵意義的貢獻成果。作為其中的一大核心區劃,程式語言的開發工作中亦不乏女性從業者們的身影。無數女性技術先驅者們早在大型機與機器碼稱雄的時代就開始設計並開發用於向計算機裝置下達指令的語言,並在隨後的彙編以及更高階別的現代語言時代下繼續作出諸多貢獻。在今天的文章中,我們將一同瞭解九款出於女性技術人員之手的程式語言、它們多年來所產生的重大影響以及其背後締造者們的故事。
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已經被程式設計業界廣泛視為這款重要語言及工具的主要開發者之一。
相關文章
- 對女性友好的程式語言
- 偉大的女程式設計師們程式設計師
- 我們身邊偉大的女程式設計師們程式設計師
- 看!那全球最偉大的人工智慧女性科學家們!人工智慧
- 下一個偉大的JVM語言是什麼?JVM
- 開放出版:為什麼我們需要一門新語言?許式偉《Go語言程式設計》序Go程式設計
- 十大流行程式語言和它們的創造者行程
- 圖:程式語言的建立者們
- Ohm:用 JavaScript 創造你的程式語言JavaScript
- 許式偉《Go語言程式設計》章節摘錄:Go語言簡史Go程式設計
- 2022 年程式語言趨勢:Swift、Kotlin 熱度持續增長,收入最高的 5 種程式語言竟是它們SwiftKotlin
- 對程式、執行緒和協程的理解以及它們的區別執行緒
- 斯巴達的勇士們,你們的程式語言是什麼?
- python和C語言哪個難?它們的區別是什麼?PythonC語言
- 80%的學校還在給新生上C語言,它們OUT了嗎?C語言
- 什麼是程式語言?程式語言都有哪些?以及主要用途
- 各年齡段開發者最愛的程式語言,就是它了!
- 10大流行程式語言和它們的創造者行程
- 10大怪異的程式語言
- Go語言命令列程式和他們的引數Go命令列
- 巨頭們的程式語言之爭:我的語言就是比你好
- Go是Google的語言,而不是我們的語言Go
- 看看牛人們是怎麼評價程式語言的
- 撼動IT界的10大程式語言!
- WebAssembly 基礎以及結合其他程式語言Web
- 狗年最應該學什麼程式語言?就是它了!
- 深度學習在視覺上的侷限性以及我們如何對付它們深度學習視覺
- 如何高效的向新手程式設計師們介紹程式語言?程式設計師
- 趣談:當粉絲們看到不同的程式語言時?
- 偉大程式設計師的十大特質程式設計師
- 如何選擇大資料的程式語言大資料
- 永不磨滅的九大尖端程式語言
- 資料處理的 9 大程式語言
- 程式開發語言的七大奇蹟
- go語言程式設計前景怎麼樣?國內Go語言佈道師許式偉這樣說Go程式設計
- 哋它亢程式語言3.11版本深度解析:程式設計界的新革命程式設計
- 如何成為偉大的程式設計師?程式設計師
- 256種程式語言大薈萃