fbpx
维基百科

面向语言的程序设计

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

概念 编辑

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

开发 编辑

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

相关内容 编辑

参考文献 编辑

  1. ^ Ward, Martin. Language Oriented Programming (PDF). Software - Concepts and Tools. 1994, 15 (4): 147–161 [15 May 2019]. doi:10.1007/978-1-4302-2390-0_12. (原始内容 (PDF)于2020-11-09). 
  2. ^ 2.0 2.1 Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam. A Programmable Programming Language. Communications of the ACM. March 2018, 61 (3): 62–71 [15 May 2019]. doi:10.1145/3127323. (原始内容于2020-11-29). 
  3. ^ Dunlavey. Building Better Applications: a Theory of Efficient Software Development. International Thomson Publishing. 1994. ISBN 0-442-01740-5. 
  4. ^ Fowler, Martin. Language Workbenches: The Killer-App for Domain Specific Languages?. 12 June 2005 [14 April 2015]. (原始内容于2021-05-02). 

外部链接 编辑

  • 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(页面存档备份,存于互联网档案馆
  • uCalc Language Builder (页面存档备份,存于互联网档案馆
  • http://msdn.microsoft.com/architecture/overview/softwarefactories/ (页面存档备份,存于互联网档案馆
  • 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 (页面存档备份,存于互联网档案馆
  • Interviews with , , and

面向语言的程序设计, language, oriented, programming, 指一种程序设计范型, 将有相同状态的块建造成对象, 模块和构件, 不再用通用编程语言解决问题, 程序员首先为问题编写一种或多种领域特定语言, 然后再在这些语言中解决问题, 这个概念具体描述于martin, ward的1994年的题为, 面向语言编程, 的论文中, 目录, 概念, 开发, 相关内容, 参考文献, 外部链接概念, 编辑这个概念使用用户词汇来获得需求, 然后创造一门与用户描述尽可能一致的实现语言, 这样从需求到实现的映. 面向语言的程序设计 Language Oriented Programming LOP 1 指一种程序设计范型 将有相同状态的块建造成对象 模块和构件 2 不再用通用编程语言解决问题 程序员首先为问题编写一种或多种领域特定语言 然后再在这些语言中解决问题 这个概念具体描述于Martin Ward的1994年的题为 面向语言编程 的论文中 目录 1 概念 2 开发 3 相关内容 4 参考文献 5 外部链接概念 编辑这个概念使用用户词汇来获得需求 然后创造一门与用户描述尽可能一致的实现语言 这样从需求到实现的映射会非常直接 判断 一致性 的方法是这门语言的 重复度 即当需求有一次独立变动时需要做多少次修改操作 它并不假定什么是实现新语言的最好语言 相反 开发者可以通过对信息流的分析做不同选择 3 开发 编辑Racket被设计用来支持面向语言编程 2 其他的语言工作台 英语 language workbench 工具比如JetBrains MPS 英语 JetBrains MPS Kermeta 英语 Kermeta 和Xtext 英语 Xtext 提供了设计及实现领域特定语言和面向语言编程的工具 4 相关内容 编辑领域特定语言 元编程 面向切面的程序设计 意图编程 方言化 英语 Dialecting 面向文法编程 英语 Grammar oriented programming LISP宏 模型驱动工程 可扩展编程 英语 Extensible programming 同像性参考文献 编辑 Ward Martin Language Oriented Programming PDF Software Concepts and Tools 1994 15 4 147 161 15 May 2019 doi 10 1007 978 1 4302 2390 0 12 原始内容存档 PDF 于2020 11 09 2 0 2 1 Felleisen Matthias Findler Robert Bruce Flatt Matthew Krishnamurthi Shriram Barzilay Eli McCarthy Jay Tobin Hochstadt Sam A Programmable Programming Language Communications of the ACM March 2018 61 3 62 71 15 May 2019 doi 10 1145 3127323 原始内容存档于2020 11 29 Dunlavey Building Better Applications a Theory of Efficient Software Development International Thomson Publishing 1994 ISBN 0 442 01740 5 Fowler Martin Language Workbenches The Killer App for Domain Specific Languages 12 June 2005 14 April 2015 原始内容存档于2021 05 02 外部链接 编辑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 页面存档备份 存于互联网档案馆 https web archive org web 20160115203115 http www intentsoft com uCalc Language Builder 页面存档备份 存于互联网档案馆 http msdn microsoft com architecture overview softwarefactories 页面存档备份 存于互联网档案馆 https web archive org web 20060918132317 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 取自 https zh wikipedia org w index php title 面向语言的程序设计 amp oldid 78599101, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。