面向语言的程序设计
维基百科,自由的百科全书
面向语言的程序设计(Language-Oriented Programming,LOP),指一种程序设计范型,通过元编程而非通用编程语言解决问题。程序员首先为问题编写一种或多种领域特定语言,然后再在这些语言中解决问题。这个概念具体描述于Martin Ward题为面向语言编程(英文)的论文和Sergey Dmitriev题为面向语言编程:下一代语言范式(英文)的文章。
这个概念的具体实现包括:
- Meta Programming System by JetBrains.
- XMF by Ceteva.
- openArchitectureWare.
- Whole Platform.
- Microsoft Software Factories.
- Intentional Software.
- LayerD.
- The XL programming language
《Building Better Applications: a Theory of Efficient Software Development》通过例子描述了这个概念。它使用用户词汇来获得需求,然后创造一门与用户描述尽可能一致的实现语言,这样从需求到实现的映射会非常直接。判断“一致性”的方法是这门语言的“重复度”,即当需求有一次独立变动时需要做多少次修改操作。它并不假定什么是实现新语言的最好语言,相反,开发者可以通过对信息流的分析做不同选择。请见元语言抽象。
相关内容 [编辑]
参考文献 [编辑]
- Dunlavey. Building Better Applications: a Theory of Efficient Software Development. International Thomson Publishing. 1994. ISBN 0-442-01740-5.
外部链接 [编辑]
- Language Oriented Programming Martin Ward's original paper that coined the term.
- Language Oriented Programming: The Next Programming Paradigm Sergey Dmitriev's paper that further explored the topic.
- Language Workbenches: The Killer-App for Domain Specific Languages? Martin Fowler's article describing both the concept and tools that support it.
- Papers by Martin Ward
- Sergey Dmitriev's personal homepage
- The Meta-Programming System
- http://www.intentsoft.com/
- Ceteva's XMF 'Language Oriented Programming' language
- uCalc Language Builder
- http://msdn.microsoft.com/architecture/overview/softwarefactories/
- http://osl.iu.edu/~tveldhui/papers/dagstuhl1998/
- http://research.microsoft.com/research/pubs/view.aspx?tr_id=4
- http://oozy.blogspot.com/
- http://lambda-the-ultimate.org/node/377
- http://www.paulgraham.com/onlisp.html
- Language Oriented Programming (LOP)
- LayerD framework
- Interviews with Sergey Dmitriev, Charles Simonyi, Krzystof Czarnecki and Andy Evans