Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
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). –  Joachim Sauer Feb 28 '13 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. –  thorsten müller Feb 28 '13 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 '13 at 14:30
5  
could you please reference articles you mention, or at least some of these? –  gnat Feb 28 '13 at 14:38
add comment

2 Answers

up vote 2 down vote accepted

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/

share|improve this answer
add comment

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.

share|improve this answer
    
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 '13 at 11:05
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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