4

I have read a few of the articles related to the Language Oriented Programming paradigm. Therefore, I concluded that LOP paradigm can let programmers be more productive because of it's extensibility.

Are there any programming languages that are already implemented LOP or in development status?

4
  • 10
    To me it sounds like a fancy way to say "use a DSL" (domain-specific language). As such there can be no single LOP-language, only a LOP-meta-language (i.e. a language with which you can write DSLs). Feb 28, 2013 at 13:04
  • 2
    @JoachimSauer: That's basically as I understood the Wikipedia article too. They list a few languages (the usual suspects). We could add Ruby and Rails as kind of DSL for Web Applications. Feb 28, 2013 at 13:08
  • 2
    Yes, there are languages and frameworks built with eDSL extensibility in mind. Racket, JetBrains MPS, PFront, Nemerle, to name a few.
    – SK-logic
    Feb 28, 2013 at 14:30
  • 5
    could you please reference articles you mention, or at least some of these?
    – gnat
    Feb 28, 2013 at 14:38

2 Answers 2

2

As was mentioned, language oriented programming will refer to a DSL.

This may summarize what you are trying to express:

When you have to solve a complex problem, first choose – or, if necessary, develop – a language that is most appropriate for the problem. Then, implement the solution in this language.

which I found in:

https://www.fbi.h-da.de/fileadmin/personal/b.humm/Publikationen/Humm_Engelschall_-_Language-Oriented_Programming_via_DSL_Stacking.pdf

There are many languages that will help you create a DSL, such as Groovy, Ruby, Scala and F#.

You can write internal and external DSLs in these languages, and these languages have constructs to help the programmer create a DSL more easily, such as using parser combinator so you can more easily create a compiler or interpreter for your language.

This will make it easier for the end-user to write their own programs, in the language they are used to, so they won't realize they are writing a program, just expressing what they want done.

So, you could have something like:

order 10 cartons of milk from Soya and deliver them to store 23 delivered on 4/1/2013.

It would be obvious to the user what they are doing, and as long as they follow some rules you express the language can be very expressive.

You may want to read:

http://blogs.ethz.ch/copton/2009/07/23/language-oriented-programming/

1

I assume you're referring to Meta Programming System, which is for creating domain-specific languages. Of course, you can create your own DSL with any other programming language. Indeed, many functional programming languages (including Haskell and Lisp) have tutorials for building simple interpreters. And you can always build your own parser with Lex and Yacc.

1
  • Building interpreters with Lisp is quite a weird way to abuse a proper meta-language. Why building interpreters, if implementing an efficient compiler is much easier? Lisp is naturally a LOP language, by design. Any language with proper macros is a LOP language.
    – SK-logic
    Mar 10, 2013 at 11:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.