Electronic Joint Business

Solution for E-Business

用 Python LARK 开发 DSL 语言

第一次接触 Logo 语言时,你会觉得它像魔法。只需一小段简单命令,就可以在屏幕上画出漂亮又复杂的图形。本文将向你展示如何用 70 行代码来解析并解释一种类 Logo 语言,你可以以此为基础来设计并实现你自己的语言。在这里,我们会用到解析类库 Lark 以及 Python 的 turtle 模块。 1 什么是 DSL? 在编写软件项目时, 有时候你所选择的语言不太适合表达你的信息 — 包括数据、配置、命令列表等。可能缺少某种抽象、语言可能会过于冗长, 或者代码由于缺少适当的验证而容易出错。这时候,创建自己的语言就能以简洁的方式描述信息。这种语言被称为“领域特定语言” 或 DSL。 DSL 往往短小简洁。既有优点, 也有缺点。 DSL 优点: 表达自由 (在其应用范围内) 代码简洁, 更易于阅读、编写和调试 按设计进行验证 动态 — 可在运行时执行动态代码 (evaluated) 可重用 — DSL 可以在不同的语言和平台之间共享,比如正则表达式 DSL 缺点: 需要学习一种新语言(懒惰的借口) 无法直接访问 Python (或其他宿主语言)的功能 和 IDE 脱节 设计并构造一种 DSL 难度不小 更多关于 DSL […]

, ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.