<p>COP is a programming paradigm supporting software adaptation to the execution context.</p>

<p>It's an alternative to the use of hard-coded conditional statements spread over the application to encode context-dependent behavior.</p>

<p>In the years several COP extensions to various languages have been proposed:</p>

<ul>
<li><a href="https://www.hpi.uni-potsdam.de/hirschfeld/trac/Cop/wiki/ContextJ" rel="noreferrer">ContextJ</a> and <a href="https://www.hpi.uni-potsdam.de/hirschfeld/trac/Cop/wiki/JCop" rel="noreferrer">JCop</a> for Java</li>
<li><a href="http://www.guidosalvaneschi.com/wp/software/contexterlang/" rel="noreferrer">Context Erlang</a> for Erlang</li>
<li><a href="https://common-lisp.net/project/closer/contextl.html" rel="noreferrer">ContextL</a> for Common Lisp (the first COP extension to a programming language)</li>
<li><a href="https://released.info.ucl.ac.be/Tools/Subjective-C" rel="noreferrer">SubjectiveC</a> for Objective C</li>
<li>ContextS for Smalltalk</li>
<li><a href="https://pypi.python.org/pypi/PyContext" rel="noreferrer">PyContext</a> for Python</li>
<li><a href="https://github.com/schmidt/contextr/" rel="noreferrer">ContextR</a> for Ruby</li>
<li><a href="https://www.hpi.uni-potsdam.de/hirschfeld/trac/Cop/wiki/ContextJS" rel="noreferrer">ContextJS</a> for Javascript</li>
</ul>

<p>and probably many others.</p>

<p>Each concrete language design and implementation comes with different variations of the features of the COP paradigm. For further details you can see <a href="http://soft.vub.ac.be/cop09/papers/a6-appeltauer.pdf" rel="noreferrer">A Comparison of Context-oriented
Programming Languages</a> (Malte Appeltauer, Robert Hirschfeld, Michael Haupt, Jens Lincke, Michael Perscheid - 2010).</p>

<p>Also a good introduction / starting point is <a href="http://www.jot.fm/issues/issue_2008_03/article4/" rel="noreferrer">Context-oriented Programming</a> (Robert Hirschfeld, Pascal Costanza, Oscar Nierstrasz) or <a href="http://arxiv.org/pdf/1105.0069.pdf" rel="noreferrer">Context-Oriented Programming: A Programming Paradigm for Autonomic Systems</a> (Guido Salvaneschi, Carlo Ghezzi, Matteo Pradella - 2013).</p>
Are there any context-oriented programming language, and what's their use for?
<p>I heard someone talking about Context-Oriented Programming, so I googled it to found out what that means, and it seems like a new paradigm of programming, but also all I found are academic papers talking about the concept.</p>

<p>So I would like to know if there's any language that implements context-orientation and what is this good for?</p>