"\u003Cdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E7月28日,Python之父Guido更新了自己的第二篇medium博文《Building a PEG Parser》。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E在博文中,Guido说虽然自己还没有完整地理解PEG解析,但是他已经开始着手自己编写一个了。不仅如此,他还在博文中分享了他构建自己的“第一个PEG Parser”的思路和过程。\u003C\u002Fp\u003E\u003Cdiv class=\"tt-column-card\" data-content='{\"new_thumb_url\": \"http:\u002F\u002Fsf6-ttcdn-tos.pstatp.com\u002Fimg\u002Fpgc-image\u002F15631550041466405be4c5b\", \"title\": \"Matplotlib\\\\u89c6\\\\u9891\\\\u6559\\\\u7a0b\", \"distribution_user_id\": 6388007932, \"price\": 8, \"column_id\": \"6713701186265940227\", \"share_price\": 3.2, \"author_description\": \"Python\\\\u90e8\\\\u843d\", \"thumb_url\": \"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F15631550041466405be4c5b\", \"sold\": 12}'\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003EGuido并不想实现一个通用的PEG Parser,因为实际上开源界已经有很多通用的PEG Parser了,比如TatSu,一个用Python编写并生成Python代码的PEG Parser。Guido专注于编写一个Python可以使用的PEG Parser,并且这可能比通用的PEG Parser更复杂。比如标识化这一步,由于Python使用缩进来决定层次关系,所以在标识化这一步中就需要一个堆栈来记录层级关系。另外,处理Python的换行和引号也并不轻松。对于Python代码的标识化,CPython提供了两套可用的工具,一套是C编写的内部使用的,另一套是提供在标准库中的纯Python编写的,并且和内部使用的完全一致的标识化工具。Guido这次直接使用了标准库中的标识化工具。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003EGuido在博文中,对自己的思路进行了详细的阐述,并配以简化的代码来辅助说明,俨然一副编写教程的样子。国内的小伙伴如果有参与某类编程语言的开发及维护的,可以翻看下Guido的博文哦~\u003C\u002Fp\u003E\u003Cp\u003E英文原文地址:https:\u002F\u002Fmedium.com\u002F@gvanrossum_83706\u002Fbuilding-a-peg-parser-d4869b5958fb\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E国内PDF地址:https:\u002F\u002Fqiniumedia.freelycode.com\u002Fvcdn\u002F1\u002F优质文章长图3\u002FBuilding_a_PEG_Parser.pdf\u003C\u002Fp\u003E\u003Ch1 class=\"ql-align-center\"\u003E· 番 · 外 · 篇 ·\u003C\u002Fh1\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F65299a888d7c4e99b0bf74d964b48df5\" img_width=\"73\" img_height=\"73\" alt=\"Python之父已开始着手改写Python解释器,并完成解析器的基础框架\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003EDavid Beazley (Python Cookbook 作者)\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E谢谢你把文章更新到medium。我对PEG解析不太了解,所以这很有趣。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Faeeeb103dff5433989e8e0d8a3ceb940\" img_width=\"73\" img_height=\"73\" alt=\"Python之父已开始着手改写Python解释器,并完成解析器的基础框架\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003EGuido van Rossum\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E\u003Cspan\u003E哦,我\u003C\u002Fspan\u003E知道得也还是太晚了。:-)我想你只需阅读维基百科的文章和关于packrat解析的论文,很快就会明白的。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F65299a888d7c4e99b0bf74d964b48df5\" img_width=\"73\" img_height=\"73\" alt=\"Python之父已开始着手改写Python解释器,并完成解析器的基础框架\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003EDavid Beazley (Python Cookbook 作者)\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E嗯。。。。。25年后,我想我才刚刚开始了解继承之类的事情。所以,我还是慢慢来吧;-)。\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6718909236916519432
相关文章