Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Language-oriented programming

From Wikipedia, the free encyclopedia
Programming paradigm

Language-oriented programming (LOP)[1] is a software-development paradigm where "language" is a software building block with the same status as objects, modules and components,[2] and rather than solving problems ingeneral-purpose programming languages, the programmer creates one or moredomain-specific languages (DSLs) for the problem first, and solves the problem in those languages. Language-oriented programming was first described in detail in Martin Ward's 1994 paperLanguage Oriented Programming.[1]

Concept

[edit]

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 asisomorphic 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 assumeda-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]

Development

[edit]

TheRacket programming language andRascalMPL were designed to support language-oriented programming from the ground up.[2] Otherlanguage workbench[4] tools such asJetBrains MPS,Kermeta, orXtext provide the tools to design and implement DSLs and language-oriented programming.[5]

See also

[edit]

References

[edit]
  1. ^ab
  2. ^abFelleisen, 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.S2CID 3887010. Retrieved15 May 2019.
  3. ^Dunlavey (1994).Building Better Applications: a Theory of Efficient Software Development.International Thomson Publishing.ISBN 0-442-01740-5.
  4. ^Fowler, Martin (12 June 2005)."Language Workbenches: The Killer-App for Domain Specific Languages?". Retrieved14 April 2015.
  5. ^Erdweg, Sebastian (2013)."The State of the Art in Language Workbenches".Software Language Engineering. Lecture Notes in Computer Science. Vol. 8225. pp. 197–217.doi:10.1007/978-3-319-02654-1_11.ISBN 978-3-319-02653-4.S2CID 5234848. Retrieved4 July 2023.

External links

[edit]
Imperative
Structured
Object-oriented
(comparison,list)
Declarative
Functional
(comparison)
Dataflow
Logic
Domain-
specific
language

(DSL)
Concurrent,
distributed,
parallel
Metaprogramming
Separation
of concerns
Retrieved from "https://en.wikipedia.org/w/index.php?title=Language-oriented_programming&oldid=1321372083"
Category:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp