Language Oriented Programming
From Icbwiki
←Older revision | Newer revision→
Encoding biological concepts in traditional programming language has been useful (e.g., in the crover framework and in other frameworks developed in my lab), but some of us are seeing the limits of this approach. The main problems are increased difficulty maintaining the software artifacts that help model and manipulate biological concepts, and consequently limited practical reuse.
If bioinformatics software frameworks are already reaching their limit, what is next? It could be language-oriented programming. While there is no evidence at this point that Language Oriented Programming (LOP) will fit the bill, we clearly need a new approach to building software, so it is worth investigating LOP.
Language oriented programming is a new programming paradigm where programmers define domain specific languages, domain specific editors, and generators that convert the domain specific language to something else (generally executable). Information about this programming paradigm is sparse, but the following articles provide background information:
- Martin Fowlers' language workbenches concept article
- Charles Simonyi's point of view
- Sergey Dmitriev's point of view, see also this interview.
- Intentional Programming@Wikipedia
Most of the interesting work about LOP seems to be done in industry (e.g., IntentionalSoftware, or Jetbrains). Many of these developments are still done internally in these companies, and the information available publicly remains sparse.
Jetbrains recently started distributing its Meta Programming System through an early access program. Documentation about this software prototype is available from:
This wiki also offers a series of protocols for working with MPS. Fabien Campagne