Javascript:好的部分是一本很棒的书。我常常从语言设计师的角度来阅读以下段落:
undefined
和NaN
不是常量。它们是全局变量,您可以更改它们的值。这应该是不可能的,但事实确实如此。不要这样做。
外卖:
undefined
的值。undefined
不可变。另一个更微妙的例子是“for in
不应该枚举原型属性”。
我想要一本关于特定语言背景下的语言设计问题的书。
如果您尝试设计“完美”的OO语言,您会阅读哪些书籍作为指导?
答案 0 :(得分:8)
网站'lambda the ultimate'非常关注编程语言,他们偶尔会有一些很好的资源,尽管他们往往对学术类的东西更感兴趣。例如,函数式编程很重要。
http://lambda-the-ultimate.org/node/3
答案 1 :(得分:6)
您可以从与Java,Ruby,Objective C等相同的位置获取页面,然后查看Design Priciples Behind Smalltalk。其中大部分是关于对象之间通信的基础材料,而不是特别关于Smalltalk的任何内容。
至于关于语言设计的真正有思想的书籍,我认为The Design and Evolution of C++绝对值得一提。我犹豫,因为你说你想要“完美”的OO语言,而C ++远非完美。不过,你可能还是可以从中学到很多东西。
你提出的观点似乎与Principle of Least Astonishment或Rule of Least Surprise有关,而不是与语言内部设计有关。
答案 2 :(得分:4)
The Design and Evolution of C++很好。
Object-Oriented Software Construction也是。
它们特定于语言(C ++,Eiffel),但有很多与语言无关的课程。
答案 3 :(得分:1)
您可以查看Perl6
如果您阅读Synopsis 6,您会发现添加运算符的名称为:
infix:<+>
infix:«+»
infix:<<+>>
infix:{'+'}
infix:{"+"}
这意味着您可以创建自己的运算符:
sub postfix:<!> ($n) { [*] 1..$n }
答案 4 :(得分:0)
有很多书籍解释了广泛使用的语言中应用的设计原则,但如果你真的想要“理解”设计原则,你应该深入挖掘。我肯定会推荐franklyn turbak "Design concepts in programming languages"。本书试图系统地探索基于它的数学基础的编程语言概念。