面向语言的程序设计(Language-Oriented Programming,LOP)[1],指一种程序设计范型,将有相同状态的块建造成对象、模块和构件[2],不再用通用编程语言解决问题,程序员首先为问题编写一种或多种领域特定语言,然后再在这些语言中解决问题。这个概念具体描述于Martin Ward的1994年的题为《面向语言编程》的论文中。

概念

这个概念使用用户词汇来获得需求,然后创造一门与用户描述尽可能一致的实现语言,这样从需求到实现的映射会非常直接。判断“一致性”的方法是这门语言的“重复度”,即当需求有一次独立变动时需要做多少次修改操作。它并不假定什么是实现新语言的最好语言,相反,开发者可以通过对信息流的分析做不同选择。[3]

开发

Racket被设计用来支持面向语言编程[2]。其他的语言工作台英语language workbench工具比如JetBrains MPS英语JetBrains MPSKermeta英语KermetaXtext英语Xtext,提供了设计及实现领域特定语言和面向语言编程的工具[4]

相关内容

参考文献

外部链接

Wikiwand - on

Seamless Wikipedia browsing. On steroids.