2008-12-14 101 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"。本书试图系统地探索基于数学基础的编程语言概念。