• 关于

    我是生活在上海的一名程序员,这里是我的主页空间,用来记录我的生活历程、学习笔记和点滴思考。  

  • 栏目

  • 日历

    September 2010
    M T W T F S S
    « Mar    
     12345
    6789101112
    13141516171819
    20212223242526
    27282930  

Haskell史傳:帶類的惰性語言(七)

2.5 細化設計

最初慌忙的面對面會議之后,是十五年詳細的語言設計和開發,這些活動完全通過電子郵件來協作。下面是Haskell如何發展的簡要時間線索:

  • 1987年9月:在俄勒岡Portlan的FPCA上的最初會議。

  • 1987年12月:倫敦大學學院的分組會議。

  • 1988年1月:在Yale大學的多日會議。

  • 1988年4月:在Glasgow大學的多日會議。

  • 1988年7月:在Glasgow的首次IFIP WG2.8會議。

  • 1989年5月:在康奈提格州Mystic的第二次IFIP WG2.8會議。

  • 1990年4月1日:1.0版的《Haskell報告》出版(125頁),由Hudak和Wadler編輯。同一時間,Haskell郵件列表開啟,向所有人開放。

    關閉的fplangc郵件列表繼續用于委員會討論,但持續增加的爭議都發生在公開的Haskell郵件列表上。因同時擁有公開和私下的郵件列表帶來了種種“我們與他們”的暗示,這使委員會成員變得愈加不安,終至1991年4月停止了fplangc郵件列表的使用。所有進一步關于Haskell的討論都公開進行,但決定依然由委員會給出。

  • 1991年8月:1.1版的《Haskell報告》出版(153頁),由Hudak、Peyton Jones和Wadler主編。這次大體上是個“精簡”版,但它首次包括了let表達式和運算符的章節。

  • 1992年3月:1.2版本的Haskell報告出版(164頁),由Hudak、Peyton Jones和Wadler編輯,與Haskell報告1.1相比僅有小的變化。兩個月后,在1992年5月,這份報告出現在SIGPLAN評論(SIGPLAN Notices)之中,另有Hudak和Fasel撰寫的《對Haskell的友善介紹》(Gentle introduction to Haskell)也附加出現。我們非常感激SIGPLAN的主席Stu Feldman,以及評論的編輯Dick Wexelblatt,因為他們欣然同意在SIGPLAN評論上發表這樣長的一篇文章。這使得Haskell既引人注目又可置信賴。

  • 1994年:當John Peterson注冊了haskell.org的域名并在Yale架設了服務器和站點,Haskell獲得了Intenet的入場券。(直到今日Hudak的小組仍然維護haskell.org的服務器)

  • 1996年5月:1.3版的《Haskell報告》出爐,由Hammond和Peterson編輯。從技術變化的層面來講,Haskell 1.3是從1.0以來進展最大的Haskell的發布版。特別是:

    • 增加了庫(Library)報告,這反映了如下事實—程序很難可移植,除非它們依賴於標準庫(standard libraries)。
    • Monadic I/O首次露面,包括了“do”語法(第7節),并且附錄中的I/O語義被刪掉了。(drop是刪除?核實之)
    • 類型類被泛化到更高的種類(higher kinds)—稱為“構造子類”(constructor classes)(參見第6節)。
    • 通過幾種方式擴展了代數數據類型:新類型(newtypes)、嚴格化注記(strictness annotations)以及命名字段(named fields)。
  • 1997年4月:1.4版的《Haskell報告》發表(139頁+73頁),由Peterson和Hammond編輯。這個版本是1.3版報告的精簡版;唯一重要的變化是列表內涵(list comprehensions)被泛化到任意的monads,這一決定兩年后又被回退回來。

  • 1999年2月:《Haskell 98報告:語言與庫》發表(150頁 + 89頁),由Peyton Jones和Hughes編輯。如我們在3.7節描述的,這是一個重要的時刻,因為這表示了對穩定性的承諾。列表內涵被回退到僅僅列表之上。

  • 1999年—2002年:Haskell委員會本身中止了存在,Peyton Jones承擔了唯一的編輯職位,打算來收集和修正排版上的錯誤。決策已不再限於一個小的委員會,現在任何閱讀Haskell郵件列表的人都可以參與。

    然而,由于Haskell使用得愈來愈廣泛(部分因為Haskell98標準的存在),許多小的語言設計中的缺陷浮現出來,并且很多報告中的模糊不清之處也被發現。Peyton Jones的角色就演變成了語言瑣事的仁慈大君(Benign Dictator of Linguistic Minutiae)。

  • 2002年12月:《修訂的Haskell 98報告:語言與庫》出版(260頁),由Peyton Jones編輯。劍橋大學出版社慷慨的把該報告作為一本書來出版,同時允許全文仍能在網上獲得,并且可以被任何人自由使用。他們應允在這樣不常見的條款下出版一本書,所表現的靈活性極大的有益於Haskell社群,并和緩了關于自由與知識產權的棘手爭議。

    值得注意的是,盡管至Haskell 98出爐時Haskell已經存在了至少8年,但從Haskell 98的首次出版到“试航”(shake down,“检验船或飞行器性能并使机组人员熟悉其运行”)規范還是花了四年時間。語言設計是一個漫長的過程!

圖二用圖形方式給出了Haskell的時間線索。圖中的許多實現、庫和工具將在論文的后面討論。

圖略

Printed from: http://www.mingli-yuan.info/archives/79 .
© Mingli Yuan 2010.

Leave a Comment