面向語言的程序設計(Language-Oriented Programming,LOP)[1],指一種程序設計范型,將有相同狀態的塊建造成對象、模塊和構件[2],不再用通用編程語言解決問題,程序員首先為問題編寫一種或多種領域特定語言,然後再在這些語言中解決問題。這個概念具體描述於Martin Ward的1994年的題為《面向語言編程》的論文中。

概念

這個概念使用用戶詞彙來獲得需求,然後創造一門與用戶描述儘可能一致的實現語言,這樣從需求到實現的映射會非常直接。判斷「一致性」的方法是這門語言的「重複度」,即當需求有一次獨立變動時需要做多少次修改操作。它並不假定什麼是實現新語言的最好語言,相反,開發者可以通過對信息流的分析做不同選擇。[3]

開發

Racket被設計用來支持面向語言編程[2]。其他的語言工作檯英語language workbench工具比如JetBrains MPS英語JetBrains MPSKermeta英語KermetaXtext英語Xtext,提供了設計及實現領域特定語言和面向語言編程的工具[4]

相關內容

參考文獻

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.