Language-oriented programming: Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 4 templates: del empty params (5×); hyphenate params (2×);
Line 1:
{{Programming paradigms}}
'''Language-oriented programming''' ('''LOP''')<ref name="lop">{{cite journal |last1=Ward |first1=Martin |title=Language Oriented Programming |journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147-161147–161 |doi=10.1007/978-1-4302-2390-0_12 |url=http://www.gkc.org.uk/martin/papers/middle-out-t.pdf |access-date=15 May 2019}}</ref> is a software-development paradigm where "language" is a software building block with the same status as objects, modules and components,<ref name=Felleisen2018>{{cite journal |last1=Felleisen |first1=Matthias |last2=Findler |first2=Robert Bruce |last3=Flatt |first3=Matthew |last4=Krishnamurthi |first4=Shriram |last5=Barzilay |first5=Eli |last6=McCarthy |first6=Jay |last7=Tobin-Hochstadt |first7=Sam |title=A Programmable Programming Language |journal=Communications of the ACM |date=March 2018 |volume=61 |issue=3 |pages=62-7162–71 |doi=10.1145/3127323 |url=https://cacm.acm.org/magazines/2018/3/225475-a-programmable-programming-language/fulltext |access-date=15 May 2019}}</ref> and rather than solving problems in [[general-purpose programming language]]s, the programmer creates one or more [[___domain-specific language]]s for the problem first, and solves the problem in those languages. Language-oriented programming was first described in detail in Martin Ward's 1994 paper ''Language Oriented Programming'',<ref name="lop" /> published in ''Software - Concepts and Tools'', Vol.15, No.4, pp 147-161147–161, 1994.
 
==Concept==
Line 12:
 
==Development==
The [[Racket (programming language)]] is designed to support language-oriented programming.<ref name=Felleisen2018 /> Other [[language workbench]]<ref name="killerapp">{{cite web |url= http://martinfowler.com/articles/languageWorkbench.html |title=Language Workbenches: The Killer-App for Domain Specific Languages? |last1=Fowler |first1=Martin |date=12 June 2005 |access-date=14 April 2015}}</ref> tools such as [[JetBrains MPS]], [[Kermeta]], or [[Xtext]] provide the tools to design and implement DSLs and language-oriented programming{{cncitation needed|date=December 2019}}
 
==See also==