2008-12-14 99 views
9

Javascript:好的部分是一本很棒的書。我經常發現自己閱讀文章就像從語言設計者的角度看下面:編程語言設計的好資源?

undefinedNaN不是常數。它們是全局變量,您可以更改它們的值。這不應該是可能的,但它是。不要這樣做。

小貼士:

  1. 在我的Javascript代碼,不要改變的undefined值。
  2. 設計語言時,使其等價於undefined不變。

另一個更微妙的例子是「for in不應枚舉原型屬性」。

我想要一本關於特定語言環境之外的語言設計問題的書。

如果你想設計出「完美的」面向對象的語言,你會讀什麼書指導?

回答

6

您可以從Java,Ruby,Objective C和其他地方獲取頁面,並查看Design Priciples Behind Smalltalk。其中大部分是關於對象間通信的基礎材料,而不是專門針對Smalltalk的任何內容。

上的langauge設計至於真周到的書籍,我想肯定The Design and Evolution of C++值得一提。我猶豫不決,因爲你說你想要「完美」的OO語言,而C++遠非完美。不過,你仍然可以從中學到很多東西。

您提出的觀點看起來好像與語言內部設計相比,它們更多地與Principle of Least AstonishmentRule of Least Surprise有關。

1

你可以檢查出的  Perl6

Perl6 Synopsis

如果你讀Synopsis 6設計文件,你會發現OU牛逼的是,除了運營商被命名爲:

  • infix:<+>
  • infix:«+»
  • infix:<<+>>
  • infix:{'+'}

這意味着你可以創建自己的運營商:

sub postfix:<!> ($n) { [*] 1..$n } 
0

有很多書籍可以解釋在廣泛使用的語言中應用的設計原則,但是如果您真的想「理解」設計原則,您應該深入挖掘。我肯定會推薦franklyn turbak的"Design concepts in programming languages"。本書試圖系統地探索基於數學基礎的編程語言概念。