用于将程序与实现隔离的自定义语言

时间:2014-03-03 05:35:00

标签: architecture system dsl

我想创建一个算法驱动的模拟

  1. 我正在尝试一种独特的设计方法,以创建一个更独立,更有序的软件系统。
  2. 我的计划是以任意格式(比如我自己的脚本语言)定义更抽象的程序层,然后创建一个简单的解释器
  3. 将格式转换为用传统高级编程语言编写的小程序可以处理的内容。
  4. 我会在这个和一些中间件之间创建一个小的抽象层,以形成软件的基础。
  5. 这种方法的目标是使程序的更高层完全独立,即使是用于实现它的编程语言。
  6. 虽然这种做法对我来说似乎很合理;正如我所说,我是复杂软件系统的新手,因此可能存在一个巨大的缺陷,或者在实践中有更好的技术。

1 个答案:

答案 0 :(得分:0)

这称为Domain Specific Language(DSL)。 DSL是一种强大的抽象技术。 DSL被广泛使用,并且已经存在了很长时间。

Martin Fowler对Internal and External DSLs进行了区分。内部DSL以其宿主语言编写(因此必须符合该语言的语法)。

外部DSL具有自己的语法,与用于实现它的语言不同。编译器或解释器将外部DSL转换为另一种形式,或直接执行它。你所描述的是外部DSL。