《领域特定语言》一2.4 广义的语言处理

    xiaoxiao2022-06-20  174

    2.4 广义的语言处理

    本书是关于领域专用语言的,但它也涉及语言处理技术。之所以二者重合,是因为在普通的开发团队里,用到语言处理技术的情况,90%都是为了DSL。但是,这些技术也可以用于其他方面,若不讨论这些情况,将是我的失职。我曾遇到过这方面一个很好的例子,那是在一次拜访ThoughtWorks项目团队时。他们有一个任务,要与某第三方系统通信,发送的消息以COBOL copybook定义。COBOL copybook是一种用来描述记录的数据结构格式。因为系统中有很多地方要用到,所以我的同事Brian Egge决定编写一个解析器,支持COBOL copybook语法的子集,为要连接这些记 录生成Java类。一旦解析器写好,他就可以很高兴地连接所需的copybook。其他代码无须了解COBOL数据结构,一旦有变化,只要简单地重新生成即可。很难将COBOL copybook称为一种DSL,但是,可以用与处理外部DSL同样的技术解决这个问题。因此,虽然我是在DSL的上下文中讨论这些技术,但不妨碍你把它们用在其他地方。一旦掌握了关于语言处理的概念,就可以在许多地方用到它们。


    最新回复(0)