<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Language-oriented_programming</id>
	<title>Language-oriented programming - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Language-oriented_programming"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Language-oriented_programming&amp;action=history"/>
	<updated>2026-05-01T14:54:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Language-oriented_programming&amp;diff=6168302&amp;oldid=prev</id>
		<title>imported&gt;Я сошла с ума: Importing Wikidata short description: &quot;Programming paradigm&quot;</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Language-oriented_programming&amp;diff=6168302&amp;oldid=prev"/>
		<updated>2025-11-10T04:09:55Z</updated>

		<summary type="html">&lt;p&gt;Importing Wikidata &lt;a href=&quot;https://en.wikipedia.org/wiki/Short_description&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Short description&quot;&gt;short description&lt;/a&gt;: &amp;quot;Programming paradigm&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 04:09, 10 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Short description|Programming paradigm}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Language-oriented programming&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;LOP&amp;#039;&amp;#039;&amp;#039;)&amp;lt;ref name=&amp;quot;lop&amp;quot;&amp;gt;{{multiref2|{{cite journal &amp;lt;!-- Citation bot no --&amp;gt; |last1=Ward |first1=Martin |title=Language-Oriented Programming |journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147–161  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Language-oriented programming&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;LOP&amp;#039;&amp;#039;&amp;#039;)&amp;lt;ref name=&amp;quot;lop&amp;quot;&amp;gt;{{multiref2|{{cite journal &amp;lt;!-- Citation bot no --&amp;gt; |last1=Ward |first1=Martin |title=Language-Oriented Programming |journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147–161  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|url=https://citeseerx.ist.psu.edu/document?repid=rep1&amp;amp;type=pdf&amp;amp;doi=825a90a7eaebd7082d883b198e1a218295e0ed3b&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|url=https://citeseerx.ist.psu.edu/document?repid=rep1&amp;amp;type=pdf&amp;amp;doi=825a90a7eaebd7082d883b198e1a218295e0ed3b&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;Я сошла с ума</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Language-oriented_programming&amp;diff=1138048&amp;oldid=prev</id>
		<title>imported&gt;OAbot: Open access bot: url-access updated in citation with #oabot.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Language-oriented_programming&amp;diff=1138048&amp;oldid=prev"/>
		<updated>2025-05-27T23:43:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/OABOT&quot; class=&quot;extiw&quot; title=&quot;wikipedia:OABOT&quot;&gt;Open access bot&lt;/a&gt;: url-access updated in citation with #oabot.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Language-oriented programming&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;LOP&amp;#039;&amp;#039;&amp;#039;)&amp;lt;ref name=&amp;quot;lop&amp;quot;&amp;gt;{{multiref2|{{cite journal &amp;lt;!-- Citation bot no --&amp;gt; |last1=Ward |first1=Martin |title=Language-Oriented Programming |journal=Software - Concepts and Tools |date=1994 |volume=15 |issue=4 |pages=147–161 &lt;br /&gt;
|url=https://citeseerx.ist.psu.edu/document?repid=rep1&amp;amp;type=pdf&amp;amp;doi=825a90a7eaebd7082d883b198e1a218295e0ed3b&lt;br /&gt;
|access-date=15 May 2019}}|{{cite book | first= Robert | last= Pickering | title= Beginning F# |chapter=Language-Oriented Programming&lt;br /&gt;
|doi=10.1007/978-1-4302-2390-0_12 |isbn=978-1-4302-2389-4 |pages=327–349 | place= Berkeley | publisher=Apress | date=2010}} }}&amp;lt;/ref&amp;gt; is a software-development paradigm where &amp;quot;language&amp;quot; is a software building block with the same status as objects, modules and components,&amp;lt;ref name=Felleisen2018&amp;gt;{{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–71 |doi=10.1145/3127323 |s2cid=3887010 |url=https://cacm.acm.org/magazines/2018/3/225475-a-programmable-programming-language/fulltext |access-date=15 May 2019|url-access=subscription }}&amp;lt;/ref&amp;gt; and rather than solving problems in [[general-purpose programming language]]s, the programmer creates one or more [[domain-specific language]]s (DSLs) for the problem first, and solves the problem in those languages. Language-oriented programming was first described in detail in Martin Ward&amp;#039;s 1994 paper &amp;#039;&amp;#039;Language Oriented Programming&amp;#039;&amp;#039;.&amp;lt;ref name=&amp;quot;lop&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Concept==&lt;br /&gt;
The concept of language-oriented programming takes the approach to capture requirements in the user&amp;#039;s terms, and then to try to create an implementation language as [[wikt:isomorphic#Adjective|isomorphic]] as possible to the user&amp;#039;s descriptions, so that the mapping between requirements and implementation is as direct as possible. A measure of the closeness of this isomorphism is the &amp;quot;redundancy&amp;quot; of the language, defined as the number of editing operations needed to implement a stand-alone change in requirements. It is not assumed &amp;#039;&amp;#039;a-priori&amp;#039;&amp;#039; what is the best language for implementing the new language. Rather, the developer can choose among options created by analysis of the information flows — what information is acquired, what its structure is, when it is acquired, from whom, and what is done with it.&amp;lt;ref&amp;gt;{{cite book&lt;br /&gt;
|author     = Dunlavey&lt;br /&gt;
|year       = 1994&lt;br /&gt;
|title      = Building Better Applications: a Theory of Efficient Software Development&lt;br /&gt;
|publisher  = [[International Thomson Publishing]]&lt;br /&gt;
|isbn       = 0-442-01740-5&lt;br /&gt;
}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
&lt;br /&gt;
The [[Racket programming language]] and [[RascalMPL]] were designed to support language-oriented programming from the ground up.&amp;lt;ref name=Felleisen2018 /&amp;gt; Other [[language workbench]]&amp;lt;ref name=&amp;quot;killerapp&amp;quot;&amp;gt;{{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}}&amp;lt;/ref&amp;gt; tools such as [[JetBrains MPS]], [[Kermeta]], or [[Xtext]] provide the tools to design and implement DSLs and language-oriented programming.&amp;lt;ref name=Erdweg&amp;gt;{{cite book |chapter-url= https://ir.cwi.nl/pub/21863 |chapter=The State of the Art in Language Workbenches |last1=Erdweg |first1=Sebastian |title=Software Language Engineering |series=Lecture Notes in Computer Science |date=2013 |volume=8225 |pages=197–217 |doi=10.1007/978-3-319-02654-1_11 |isbn=978-3-319-02653-4 |s2cid=5234848 |access-date=4 July 2023}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Grammar-oriented programming]]&lt;br /&gt;
* [[Dialecting]]&lt;br /&gt;
* [[Domain-specific language]]&lt;br /&gt;
* [[Extensible programming]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://www.onboard.jetbrains.com/articles/04/10/lop/ Language Oriented Programming: The Next Programming Paradigm] Sergey Dmitriev&amp;#039;s paper that further explored the topic.&lt;br /&gt;
* [https://link.springer.com/chapter/10.1007/978-3-319-02654-1_11 The State of the Art in Language Workbenches. Conclusions from the Language Workbench Challenge.] In: Proceedings of the 6th International Conference on Software Language Engineering (SLE&amp;#039;13). 2013.&lt;br /&gt;
*[https://www.researchgate.net/publication/322499807_Language_Oriented_Programming_in_Meta-Lisp Language Oriented Programming in MetaLisp]  Gyuri Lajos&amp;#039;s [https://leeds.primo.exlibrisgroup.com/discovery/fulldisplay?docid=alma991002968069705181&amp;amp;context=L&amp;amp;vid=44LEE_INST:VU1&amp;amp;lang=en&amp;amp;search_scope=My_Inst_CI_not_ebsco&amp;amp;adaptor=Local%20Search%20Engine&amp;amp;tab=AlmostEverything&amp;amp;query=any,contains,language%20oriented%20programming&amp;amp;facet=rtype,include,dissertations thesis 1992 University of Leeds] The system used the very same Top Down Parsing Language algorithm that powered [[TREE-META|Tree-Meta]]&lt;br /&gt;
&lt;br /&gt;
{{Programming paradigms navbox}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Programming paradigms]]&lt;/div&gt;</summary>
		<author><name>imported&gt;OAbot</name></author>
	</entry>
</feed>