WEB开发网
开发学院软件开发Python 可爱的 Python: 使用 SimpleParse 模块进行解析 阅读

可爱的 Python: 使用 SimpleParse 模块进行解析

 2008-11-13 13:16:18 来源:WEB开发网   
核心提示: 把这种格式扩展到其它输出格式很简单,结束语SimpleParse 为含义模糊的 mxTextTools C 模块的基本功能和速度提供了一种简明的并且十分易读的 EBNF 样式的封装器,可爱的 Python: 使用 SimpleParse 模块进行解析(8),此外,即使只是顺便学会的,正则表

把这种格式扩展到其它输出格式很简单。

结束语

SimpleParse 为含义模糊的 mxTextTools C 模块的基本功能和速度提供了一种简明的并且十分易读的 EBNF 样式的封装器。此外,即使只是顺便学会的,许多程序员也已经相当熟悉 EBNF 语法了。关于什么更容易理解,我不能提供 证明 ― 这一点因各人的直觉而异 ― 但是我可以根据源代码长度给出量化评估。先前手工开发的 mxTypographify 模块的大小如下:

wc mxTypographify.py

199   776  7041 mxTypographify.py

这 199 行中,相当数量的行是注释。这些行中有 18 行是标记函数所包含的正则表达式版本,包含该标记函数是用于计时比较。但是该程序的功能基本上和上面列出的 typographify.py 的功能相同。相比之下,我们的 SimpleParse 程序,包括其支持文件在内,大小如下:

wc typo*.def typo*.py

19   79   645 typographify.def
20   79   721 typographify.py
6   25   205 typo_html.py
45   183  1571 total

换句话说,行数大约只有前者的四分之一。这个版本的注释较少,但是那主要是因为 EBNF 语法的自我描述能力很强。我不希望太过强调代码行数 ― 显然,您可以通过最小化或最大化代码长度做手脚。但是通常对程序员的工作进行研究,少数实际经验结论之一是:“千行代码/人月”相当接近于常数,和语言以及库关系不大。当然,依次地,正则表达式版本是 SimpleParse 版本长度的三分之一 ― 但是我认为其表达式的密度使得它极难维护并且更难编写。总而言之,我认为 SimpleParse 是所考虑的方法中最好的。

上一页  3 4 5 6 7 8 

Tags:可爱 Python 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接