在复杂系统的生命周期里,不重新编译或者重新部署系统就改变它的行为可能会变得极其重要。你可以通过创建一门专门用于操控系统组建的域语言或者微型语言来实现这一功能。域语言就是能够应用程序程序员或者管理员更改组件之间相互交互操作,甚至是决定在系统运行时将会存在什么组件的语言。如果你确定自己需要一门域语言,那么你就要设计其句法:这就意味着要确定该语言的能力以及它看起来是什么样的。
在决定了语言的句法之后,下一步就是要为这门语言创建一个解释器,而这可能是一项巨大的和艰辛的任务。如果你曾经自己动手创建过剖析器,那么你就知道解释器的复杂性会随着语言复杂性的增加呈指数增长。
你可以使用的一个工具是ANTLR(ANother Tool for Language Recognition),它让你能够用一个文本文件来描述自己的语言。如果你把ANTLR指向这个文件,那么它将生成一个能够处理你新语言的词法分析器(Lexer)和解释器。词法分析器会把字符翻译成为语言符号,而解释器则利用这些符号来完成任务。一旦ANTLR为你的微型语言生成了这些类,你就可以把它们用在自己的应用程序里来操控系统了。
但是即使有了ANTLR的帮助,创建你自己的第一门微型语言也需要大量的工作。好消息是,维护ANTLR的那一群人为你的起步提供了很多资源。你可以自己去ANTLR看看。