dram.me

编程语言的演进

题目有点大,实际上是想说说Perl 5和Perl 6在语言设计实现以及发展演进上截然不同的两种思路。

“Perl 6 is anything that passes the official test suite”,这是Perl 6设计文档中的一句话。简单地说,Perl 5是由实现定义语言,而Perl 6则是由测试用例定义语言。正是这样出发点的不同,导致了不同的结果。

举一个简单的例子,如果出现实现和文档不一致时,Perl 5往往会更改文档,以对应实现。(Perl 6是否是以测试用例为准,而非实现或者文档,待找例证。)