Electronic Joint Business

Solution for E-Business

DSL

用 Python LARK 开发 DSL 语言

第一次接触 Logo 语言时,你会觉得它像魔法。只需一小段简单命令,就可以在屏幕上画出漂亮又复杂的图形。本文将向你展示如何用 70 行代码来解析并解释一种类 Logo 语言,你可以以此为基础来设计并实现你自己的语言。在这里,我们会用到解析类库 Lark 以及 Python 的 turtle 模块。 1

什么是 DSL?
在编写软件项目时, 有时候你所选择的语言不太适合表达你的信息 — 包括数据、配置、命令列表等。可能缺少某种抽象、语言可能会过于冗长, 或者代码由于缺少适当的验证而容易出错。这时候,创建自己的语言就能以简洁的方式描述信息。这种语言被称为“领域特定语言” 或 DSL。

DSL 往往短小简洁。既有优点, 也有缺点。

DSL 优点:

  • 表达自由 (在其应用范围内)
  • 代码简洁, 更易于阅读、编写和调试
  • 按设计进行验证
  • 动态 — 可在运行时执行动态代码 (evaluated)
  • 可重用 — DSL 可以在不同的语言和平台之间共享,比如正则表达式

DSL 缺点:

>>> 阅读全文

 

, ,