fbpx
Wikipedia

Language-oriented programming

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 in general-purpose programming languages, the programmer creates one or more domain-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 paper Language 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 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]

Development edit

The Racket programming language and RascalMPL were designed to support language-oriented programming from the ground up.[2] Other language workbench[4] tools such as JetBrains MPS, Kermeta, or Xtext provide the tools to design and implement DSLs and language-oriented programming.[5]

See also edit

References edit

  1. ^ a b
    • Ward, Martin (1994). "Language-Oriented Programming". Software - Concepts and Tools. 15 (4): 147–161. Retrieved 15 May 2019.
    • Pickering, Robert (2010). "Language-Oriented Programming". Beginning F#. Berkeley: Apress. pp. 327–349. doi:10.1007/978-1-4302-2390-0_12. ISBN 978-1-4302-2389-4.
  2. ^ a b 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. S2CID 3887010. Retrieved 15 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?". Retrieved 14 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. Retrieved 4 July 2023.

External links edit

  • Language Oriented Programming: The Next Programming Paradigm Sergey Dmitriev's paper that further explored the topic.
  • 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'13). 2013.
  • Language Oriented Programming in MetaLisp Gyuri Lajos's thesis 1992 University of Leeds The system used the very same Top Down Parsing Language algorithm that powered Tree-Meta

language, oriented, programming, software, development, paradigm, where, language, software, building, block, with, same, status, objects, modules, components, rather, than, solving, problems, general, purpose, programming, languages, programmer, creates, more. 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 in general purpose programming languages the programmer creates one or more domain 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 paper Language Oriented Programming 1 Contents 1 Concept 2 Development 3 See also 4 References 5 External linksConcept editThe 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 Development editThe Racket programming language and RascalMPL were designed to support language oriented programming from the ground up 2 Other language workbench 4 tools such as JetBrains MPS Kermeta or Xtext provide the tools to design and implement DSLs and language oriented programming 5 See also editGrammar oriented programming Dialecting Domain specific language Extensible programming Intentional programmingReferences edit a b Ward Martin 1994 Language Oriented Programming Software Concepts and Tools 15 4 147 161 Retrieved 15 May 2019 Pickering Robert 2010 Language Oriented Programming Beginning F Berkeley Apress pp 327 349 doi 10 1007 978 1 4302 2390 0 12 ISBN 978 1 4302 2389 4 a b 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 S2CID 3887010 Retrieved 15 May 2019 Dunlavey 1994 Building Better Applications a Theory of Efficient Software Development International Thomson Publishing ISBN 0 442 01740 5 Fowler Martin 12 June 2005 Language Workbenches The Killer App for Domain Specific Languages Retrieved 14 April 2015 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 Retrieved 4 July 2023 External links editLanguage Oriented Programming The Next Programming Paradigm Sergey Dmitriev s paper that further explored the topic 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 13 2013 Language Oriented Programming in MetaLisp Gyuri Lajos s thesis 1992 University of Leeds The system used the very same Top Down Parsing Language algorithm that powered Tree Meta Retrieved from https en wikipedia org w index php title Language oriented programming amp oldid 1216805955, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.