官术网_书友最值得收藏!

Origins of Perl 6

Perl 6 is a programming language from the Perl family. Perl itself emerged in 1987 and since then, it is constantly evolving: its current stable version is 5.26, which was released in May 2017. In 2000, Larry Wall, the creator of Perl, proposed to start working on the next version of the language—Perl 6.

There were a few reasons for that. First, a language should continue developing to reflect the new requirements of developers. Second, it may change the perception of Perl in the non-Perl community. The version 5.0 appeared in 1993 and despite that, the language has continued developing. The major version number was still 5 and in the eyes of many people, it meant that Perl was stalled since 1993. The new major version update would refresh the perception.

The idea was to make Perl 6 "the community rewrite of Perl". Larry asked the community to share what bits of Perl they wanted to change. That call for changes resulted in 361 RFC (Request for Comments) documents, which are published at https://perl6.org/archive/rfc/. These documents are only of historical interest as of today.

Later, the various proposals were systematically analyzed, grouped together by similar topics and published as a series of Synopses. The naming and numbering principle behind those documents were to keep the structure of the chapters of the Programming Perl book.

Later, Synopses were once again summarized and explained in a set of documents called Apocalypses and Exegeses. All these papers are available today at http://design.perl6.org, but again, they are not the final specification of the language, only a collection of historical documents.

Another important idea about Perl 6 was about the way compilers are created. In Perl 5, the language rules are indirectly defined by the single available compiler. Some bugs, or not obvious behavior of the compiler, may be considered as part of the language standard. In Perl 6, it was decided to have a clear language specification, and no reference compiler. There can be more than one compiler. The main requirement for them is implementing the specification and passing the set of tests.

主站蜘蛛池模板: 公安县| 宣武区| 大同市| 扎鲁特旗| 泸州市| 洞口县| 克什克腾旗| 富阳市| 黑龙江省| 高雄市| 博客| 开江县| 安泽县| 丹东市| 南京市| 枣阳市| 思南县| 延安市| 庆城县| 宁强县| 惠州市| 日照市| 宁强县| 勐海县| 呈贡县| 重庆市| 大英县| 水城县| 安丘市| 瑞安市| 左贡县| 上犹县| 阿荣旗| 马尔康县| 弋阳县| 苗栗县| 栾川县| 沙坪坝区| 依兰县| 翁源县| 泽库县|