Language-oriented programming
This article needs additional citations for verification. (February 2015) |
![]() | This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (February 2015) |
Language-oriented programming (LOP) is a sofetware-development paradigm where "language" is a software building block with the stame status as objects, modules and components[1], and rather than solving problems in general-purpose programming languages, the programmer creates one or more domain-specific languages for the problem first, and solves the problem in those languages. Language-oriented programming was first described in detail in Martin Wards 1994 paper Language Oriented Programming[2], published in Software - Concepts and Tools, Vol.15, No.4, pp 147-161, 1994.
Concept
The concept of language-oriented programming takes the approach to capture requirements in the user's terms, and then to try to create an implementation language as isomorphic as possible to the user'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 "redundancy" of the language, defined as the number of editing operations needed to implement a stand-alone change in requirements. It is not assumed a-priori 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.[3]
See also
- Grammar-oriented programming
- Dialecting
- Domain-specific language
- Extensible programming
- Intentional programming
- Homoiconicity
References
- ^ Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (March 2018). "A Programmable Programming Language". Communications of the ACM. 61 (3): 62–71. doi:10.1145/3127323. Retrieved 15 May 2019.
- ^ Ward, Martin (1994). "Language Oriented Programming" (PDF). Software - Concepts and Tools. 15 (4): 147–161. doi:10.1007/978-1-4302-2390-0_12. Retrieved 15 May 2019.
- ^ Dunlavey (1994). Building Better Applications: a Theory of Efficient Software Development. International Thomson Publishing. ISBN 0-442-01740-5.
{{cite book}}
: Cite has empty unknown parameter:|chapterurl=
(help)
External links
![]() | This article's use of external links may not follow Wikipedia's policies or guidelines. (February 2015) |
- 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.
- A Programmable Programming Language By Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, Sam Tobin-Hochstadt, Communications of the ACM, Vol. 61 No. 3, Pages 62-71.