<p>No. "Constructed languages" on this site refers to artificially created languages for intelligent beings, not machine languages. In the absence of another qualifier a "language" is, as I wrote <a href="https://worldbuilding.stackexchange.com/a/29931/215">on another site</a>, a system for communicating <strong>propositional</strong> and <strong>conceptual</strong> information to other beings. This is different from communication. Programming languages can definitely be used to communicate - and they carry meaning - but that doesn't make them languages. Purely referential communication (using symbols to directly refer to things in the world without metaphorical extension) is not enough to be a language, language <strong>must be able to communicate abstract concepts that are beyond any sensory or referential basis</strong>. Programming languages are systems for encoding instructions for machines, and not general purpose concept exchange systems.</p>

CC BY-SA 3.0
2018-02-08T12:34:56.570Z
2018-02-08T12:43:15.417Z
2018-02-08T12:43:15.417Z
curiousdannii
<p>Programming languages are constructed, but they are not languages, in the sense English or Esperanto or Klingon are languages, <a href="https://conlang.stackexchange.com/a/164/112">as curiousdannii shows</a>. We cannot translate things like "I will be late for dinner" into a programming "language". And a characteristic of all "languages", properly speaking, is their mutual "translatability".</p>

CC BY-SA 4.0
2019-10-01T23:01:35.507Z
Are languages actually mutually translatable? If a "language" were unable to translate something from another language (or vice versa), would it be disqualified as a language? If we say that a programming language isn't mutually translatable with accepted languages, are we talking about a difference of kind or of degree?
sfmiller940
CC BY-SA 3.0
2018-02-19T20:43:13.830Z
I dunno... logic programming languages like [Prolog](https://en.wikipedia.org/wiki/Prolog) can come pretty close to representing facts like "I will be late for dinner," if you define the terms properly... something like "I expect to arrive home at a later time than the start of my family's next evening mealtime, but at an earlier time than the end of it" could be represented in Prolog in such a way that the computer could both report the information and make inferences from it.
DLosc
CC BY-SA 4.0
2018-02-10T12:54:50.507Z
2018-05-03T00:18:11.220Z
2018-05-03T00:18:11.220Z
Luís Henrique
<p>As a programmer and a conlanger, I'd say "no". As noted above, programming languages cannot convey metaphor, emotions, sensory impressions, and other such human-relevant messages. Abstraction they can handle, but only abstractions that are relevant to the processing going on inside the machine. Such languages have an extremely limited sphere of reference: bits, bytes, and data structures inside the machine, and operations upon them. </p>

CC BY-SA 4.0
2018-05-03T16:40:04.747Z
Languages are not required to convey metaphors and emotions - when did this become a requirement?
qwr
CC BY-SA 3.0
2018-02-10T14:10:52.107Z
2018-02-10T14:10:52.107Z
aruslanovych
<p>In the novel "Autonomy", when robots speak to each other, they author expressed it in a source code-like English, with a few things you'd see in coded implementations, like mentions of files, message headers and acknowledgements, and so on. Obviously this wasn't a full implementation. If a hobbyist did do a working implementation, I figure it would be a conlang.</p>

<p>In Star Wars, the droids are supposed to speak a language. The attested text can't possibly be anything like a conlang, except maybe as a language of just "oh!", "ah!" "ha-ha!" and other emotive exclamations. If someone hobbyist tried to make a droid language, it would be a nice feature if it could both work as a natural language and a programming language.</p>

<p>People have speculated that Lojban could serve as a programming language, as things like Prolog are programs made out of logical statements. I haven't heard of anyone doing so. Lojban syntax is describe with the same tools as are used for writing compilers, <a href="http://www.lojban.org/publications/formal-grammars/grammar.300" rel="nofollow noreferrer">YACC</a>.</p>

<p>Obviously, since this website doesn't need to reproduce Stack Overflow, things that are <em>only</em> programming languages and don't have a way to be used as a natural language (except maybe in jest?) are not only not conlangs, but off topic.</p>

CC BY-SA 3.0
2018-03-09T19:30:12.980Z
2018-03-09T19:30:12.980Z
MatthewMartin
<p>Conlangs and programming languages are different things. 
Conlangs are languages designed for human communication. For human to human communication.<br></p>

<p>No programming language can be regarded as a language in that sense.<br><br>Riley Martine's example uses
python-like syntax. But at the same time it uses real English words to convey the meaning. <br>Computer is not able to understand the meaning of these words, it just runs code.</p>

<p>Simple Python example:</p>

<pre><code>greetingString = "Hello"

print(greetingString)
</code></pre>

<p>Computer just set string "Hello" to variable greetingString and prints it to the screen.<br>
Computer does <strong>NOT</strong> understand the meaning of the word . For computer it's just a computer variable value, nothing else.
<br><br></p>

CC BY-SA 4.0
2019-08-19T17:01:10.790Z
It doesn't matter if a computer _understands_ the meaning. No computer understands the meaning of _La suno brilas_, but it is still a valid conlang sentence! Your python example can easily be translated into English as "Take the sequence 'Hello' and write it down", so you could argue it has a meaning that can be interpreted by an entity capable of doing so.
Oliver Mason
CC BY-SA 4.0
2019-08-17T14:16:53.287Z
2019-08-17T14:16:53.287Z
USERNAME GOES HERE
<p>I'm trying to be <a href="https://en.wiktionary.org/wiki/devil%27s_advocate" rel="nofollow noreferrer">Devil's Advocate</a> here: In a way programming languages are constructed languages, but they are usually very specific and narrow in focus: one could view them as <a href="https://en.wikipedia.org/wiki/Sublanguage" rel="nofollow noreferrer">sublanguages</a> aimed at expressing algorithms or annotating other information. An example for a human sublanguage would be the language of recipes. Words that have multiple meanings in English generally have only one specific meaning in a sublanguage. The syntactic structures are simplified, and often different from general English. Certain aspects of the range of human expressions are left out or limited (you might talk about emotions or feelings, but they would only relate to the food mentioned).</p>

<p>You could design a programming language that is suited to expressing recipes, and it could be used to drive a cooking robot. That programming language could also be read by humans, who would understand the meaning of it, and could translate it into other languages. In this sense 'programming language' is a bit of a red herring: it's just a formal representation of meaning. And (propositional) meaning can easily be expressed in <a href="https://en.wikipedia.org/wiki/First-order_logic" rel="nofollow noreferrer">predicate calculus</a> or related formalisms. Is <a href="https://en.wikipedia.org/wiki/Conceptual_dependency_theory" rel="nofollow noreferrer">CD representation</a> a conlang, or just an abstract representation of actions/states? It can certainly be transformed into any number of other languages (natural or constructed), and it can express a reasonable range of human activity.</p>

<p>Where do you draw the line? At what point does a constructed language cross the boundary between being simply a mark-up or programming language to being suitable for human communication? What is the essence that, say, HTML, is missing, but that <a href="https://en.wikipedia.org/wiki/Toki_Pona" rel="nofollow noreferrer">toki pona</a>, <a href="https://en.wikipedia.org/wiki/Klingon_language" rel="nofollow noreferrer">Klingon</a>, or Esperanto have? Note: I'm not suggesting that HTML is a conlang, but it can be used to encode a specific kind of meaning, and XML can even <a href="https://en.wikipedia.org/wiki/Resource_Description_Framework" rel="nofollow noreferrer">encode semantic relationships</a>. But they might not be very suitable for inter-human communication.</p>

<p>You could, though, envisage two people with no common language between them who use a programming language to work together on solving a problem. It would be tough, but should be possible.</p>

<p>In my view there is a continuum between 'fully formed' languages on the one hand, and restricted or sublanguages on the other. While it is difficult to formally represent the more complex languages (because they are so complex), the simpler end of the spectrum can be encoded in such a representation. Predicate calculus is one representation, and any programming language is another one. There is no hard boundary between the two, so in a way (even though nobody would really 'speak' in a programming language) the answer is: yes, programming languages can be categorised as conlangs.</p>

CC BY-SA 4.0
2019-08-19T16:51:09.063Z
2019-08-19T16:51:09.063Z
Oliver Mason
<p>Going along curiousdannii's idea of languages for <em>human idea exchange</em>, there's an old joke that Python can be used in place of pseudocode, because of its use of English keywords, relatively little punctuation, and ease of understanding. </p>

<p>Here is an example of Kadane's algorithm, expressed in Python (from <a href="https://en.wikipedia.org/wiki/Maximum_subarray_problem#Kadane&#39;s_algorithm" rel="nofollow noreferrer">Wikipedia</a>):</p>

<pre><code>def max_subarray(A):
    max_ending_here = max_so_far = A[0]
    for x in A[1:]:
        max_ending_here = max(x, max_ending_here + x)
        max_so_far = max(max_so_far, max_ending_here)
    return max_so_far
</code></pre>

<p>aruslanovych asserts that languages have to convey emotion, metaphor, sensory impressions, etc. but I think this is a Romantic view. Is the Greek Linear B was used to write not a language since it was used for administrative record-keeping and probably tax purposes? </p>

<p>I take a liberal view in that yes, programming languages can represent metaphors, abstraction, and idioms, just maybe not in the sense we're used to. In fact, computers are excellent at abstract concepts and generalizing, with <a href="https://en.wikipedia.org/wiki/Duck_typing" rel="nofollow noreferrer">duck typing</a>, <a href="https://en.wikipedia.org/wiki/Object-oriented_programming" rel="nofollow noreferrer">object-oriented programming</a> and <a href="https://en.wikipedia.org/wiki/Reflection_(computer_programming)" rel="nofollow noreferrer">reflection</a>. Off-topic, I daresay with deep learning, computers can generalize even better than humans can. And, sci-fi speculation, when robots become just as intelligent as humans, we have to consider their languages as "real". </p>

CC BY-SA 4.0
2018-05-03T20:36:46.190Z
Writing isn't language proper either ;)
kaleissin
CC BY-SA 4.0
2018-05-03T16:53:50.087Z
2018-05-04T04:32:39.203Z
2018-05-04T04:32:39.203Z
qwr
<p>I would say, to a very limited extent, that yes, they can be, but only as a proxy grammar for other languages. For example, </p>

<pre><code>from sys import exit as stops ; import os
thing = [] ; me = can = remember = False ; this = open(__file__)
def terrible(v): return v

# ==== start song snippet

me = can = remember = not any(thing)
can = not this.tell(), [True, "dream"]
locals()["deep"] = {"down":{"inside":{"feel_to":"scream"}}}
if `this` + (terrible("silence")): stops(me)

# ===== end song snippet
</code></pre>

<p>(<a href="https://codegolf.stackexchange.com/questions/5836/coding-in-song-representing-music-lyrics-in-a-programming-language-of-your-cho">source</a>: Coding in song - Representing music lyrics in a programming language of your choosing)</p>

<p>However, this isn't a great method of communication. Programming languages are not designed with the same intentions as conlangs.</p>

CC BY-SA 3.0
2018-02-21T19:35:52.360Z
That's fair. Thinking about it, I mostly just wanted to share something interesting I thought could push the edges of the other answers.
Riley Martine
CC BY-SA 3.0
2018-02-19T20:42:36.353Z
-1: This isn't really an example of a programming language in use, but rather some English that's formatted in such a way that it doesn't cause any errors when run as a program. It's a bit like stitching together random Vietnamese words into a poem that can be read in English and calling it an example of Vietnamese.
DLosc
CC BY-SA 3.0
2018-02-11T03:47:19.227Z
2018-02-11T03:47:19.227Z
Riley Martine
<p>Would it be correct to say that the majority of computer programming languages (such as <a href="https://en.wikipedia.org/wiki/Functional_programming" rel="noreferrer">functional</a> or <a href="https://en.wikipedia.org/wiki/Procedural_programming" rel="noreferrer">procedural</a>) are the form of <a href="https://en.wikipedia.org/wiki/Constructed_language" rel="noreferrer">constructed languages</a>? If so, what makes it a constructed language in this case?</p>

<p>Let say a <a href="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program" rel="noreferrer">"Hello, World!" program</a> as the example.</p>

<p><a href="https://i.sstatic.net/LOCdjl.png" rel="noreferrer"><img src="https://i.sstatic.net/LOCdjl.png" alt="Hello World! by Brian Kernighan, from Artsy&#39;s Algorythm Auction based on a 1978 Bell Laboratories internal memorandum by Brian Kernighan, Programming in C: A Tutorial, which contains the first known version. 2 lines of C Code"></a></p>

<blockquote>
  <p>Hello World! by Brian Kernighan, from Artsy's Algorythm Auction based on a 1978 Bell Laboratories internal memorandum by Brian Kernighan, Programming in C: A Tutorial, which contains the first known version. 2 lines of C Code. -
   <a href="https://en.wikipedia.org/wiki/%22Hello,_World!%22_program#/media/File:Hello_World_Brian_Kernighan_1978.jpg" rel="noreferrer">Wikipedia</a></p>
</blockquote>

CC BY-SA 4.0
2018-05-03T00:24:40.357Z
@DLosc Prolog has a syntax, but doesn't really have a vocabulary. As Wikipedia says, "An atom is a general-purpose name with no inherent meaning." Lojban has actual lexemes with fixed sound-meaning pairings.
curiousdannii
CC BY-SA 4.0
2018-05-03T18:24:17.470Z
@curiousdannii Ah, very good point. Maybe you could add to your answer a line or two about languages needing vocabulary.
DLosc
CC BY-SA 4.0
2019-02-18T07:09:11.100Z
Isn't this question a little pedantic? The definition of the word language varies a lot based on the context. Are apples vegetables? In any case, I want pineapple on my pizza.
Domino
CC BY-SA 3.0
2018-02-08T12:25:53.057Z
This is a rather interesting topic, but the way it's asked, it most likely be closed as too broad. By a naive definition, a programming *language* is, obviously, a language; and it is also *constructed*. Do you have any specific criteria in mind?
Be Brave Be Like Ukraine
CC BY-SA 3.0
2018-02-08T12:29:27.893Z
@bytebuster I'd like to confirm this claim (as I couldn't find it in the definition on Wiki) and have some brief 'why' explanation.
kenorb
CC BY-SA 3.0
2018-02-08T13:24:59.813Z
People consider Lojban a conlang, so why not? </snark> :P
Doorknob
CC BY-SA 3.0
2018-02-08T13:35:14.260Z
Yep, 'Constructs in programming languages have been shown to be translated to Lojban'. Source: [Wiki](https://en.wikipedia.org/wiki/Lojban#Lojban_as_a_programming_language)
kenorb
CC BY-SA 3.0
2018-02-08T13:44:31.513Z
@kenorb Just like any programming language could be translated into English. What matters is if arbitrary natlang sentences could be translated into the programming language.
curiousdannii
CC BY-SA 3.0
2018-02-11T04:26:28.757Z
I think this might make a good meta post if your intention is to see if you can ask about programming languages here (not their usage (SO) but other stuff), but otherwise I think this challenge is a bit too opinion-based to be on-topic for this site, unfortunately. It's a very interesting topic though!
hyperneutrino
CC BY-SA 3.0
2018-02-19T10:30:22.363Z
No. From my understanding, computer languages encode human languages. If anything, a computer language should be considered a type of script (similar to Morse Code).
Nicole Sharp
CC BY-SA 3.0
2018-02-19T20:45:33.583Z
@Doorknob In all seriousness, I would like to see an answer to this question explaining why Lojban is a language while a logic programming language like [Prolog](https://en.wikipedia.org/wiki/Prolog) is not.
DLosc
CC BY-SA 3.0
2018-02-21T01:14:12.090Z
@Nicole Morse code and programming languages are functionally **very** different. Morse code is just a text encoding, like ASCII or Unicode.
curiousdannii
<terminology><classification>
Can programming languages be categorized as conlangs?
# Can programming languages be categorized as conlangs?

(Asked by: username_0 on 2018-02-08)

Would it be correct to say that the majority of computer programming languages (such as [functional](https://en.wikipedia.org/wiki/Functional_programming) or [procedural](https://en.wikipedia.org/wiki/Procedural_programming)) are the form of [constructed languages](https://en.wikipedia.org/wiki/Constructed_language)? If so, what makes it a constructed language in this case?

Let say a ["Hello, World!" program](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program) as the example.

[![Hello World! by Brian Kernighan, from Artsy's Algorythm Auction based on a 1978 Bell Laboratories internal memorandum by Brian Kernighan, Programming in C: A Tutorial, which contains the first known version. 2 lines of C Code](https://i.sstatic.net/LOCdjl.png)](https://i.sstatic.net/LOCdjl.png)

> Hello World! by Brian Kernighan, from Artsy's Algorythm Auction based on a 1978 Bell Laboratories internal memorandum by Brian Kernighan, Programming in C: A Tutorial, which contains the first known version. 2 lines of C Code. -
> [Wikipedia](https://en.wikipedia.org/wiki/%22Hello,_World!%22_program#/media/File:Hello_World_Brian_Kernighan_1978.jpg)

**Tags:** terminology, classification

> **Comments:**
> **username_4**: This is a rather interesting topic, but the way it's asked, it most likely be closed as too broad. By a naive definition, a programming *language* is, obviously, a language; and it is also *constructed*. Do you have any specific criteria in mind?  
> **username_0**: @bytebuster I'd like to confirm this claim (as I couldn't find it in the definition on Wiki) and have some brief 'why' explanation.  
> **username_5**: People consider Lojban a conlang, so why not? </snark> :P  
> **username_0**: Yep, 'Constructs in programming languages have been shown to be translated to Lojban'. Source: [Wiki](https://en.wikipedia.org/wiki/Lojban#Lojban_as_a_programming_language)  
> **username_1**: @username_0 Just like any programming language could be translated into English. What matters is if arbitrary natlang sentences could be translated into the programming language.  
> **username_6**: I think this might make a good meta post if your intention is to see if you can ask about programming languages here (not their usage (SO) but other stuff), but otherwise I think this challenge is a bit too opinion-based to be on-topic for this site, unfortunately. It's a very interesting topic though!  
> **username_7**: No. From my understanding, computer languages encode human languages. If anything, a computer language should be considered a type of script (similar to Morse Code).  
> **username_2**: @username_5 In all seriousness, I would like to see an answer to this question explaining why Lojban is a language while a logic programming language like [Prolog](https://en.wikipedia.org/wiki/Prolog) is not.  
> **username_1**: @Nicole Morse code and programming languages are functionally **very** different. Morse code is just a text encoding, like ASCII or Unicode.  
> **username_1**: @username_2 Prolog has a syntax, but doesn't really have a vocabulary. As Wikipedia says, "An atom is a general-purpose name with no inherent meaning." Lojban has actual lexemes with fixed sound-meaning pairings.  
> **username_2**: @username_1 Ah, very good point. Maybe you could add to your answer a line or two about languages needing vocabulary.  
> **username_3**: Isn't this question a little pedantic? The definition of the word language varies a lot based on the context. Are apples vegetables? In any case, I want pineapple on my pizza.  

---

## 8 answers

### Answer by username_1 on 2018-02-08. Score: 18

No. "Constructed languages" on this site refers to artificially created languages for intelligent beings, not machine languages. In the absence of another qualifier a "language" is, as I wrote [on another site](https://worldbuilding.stackexchange.com/a/29931/215), a system for communicating **propositional** and **conceptual** information to other beings. This is different from communication. Programming languages can definitely be used to communicate - and they carry meaning - but that doesn't make them languages. Purely referential communication (using symbols to directly refer to things in the world without metaphorical extension) is not enough to be a language, language **must be able to communicate abstract concepts that are beyond any sensory or referential basis**. Programming languages are systems for encoding instructions for machines, and not general purpose concept exchange systems.


---

### Answer by username_8 on 2018-02-10. Score: 10

Programming languages are constructed, but they are not languages, in the sense English or Esperanto or Klingon are languages, [as username_1 shows](https://conlang.stackexchange.com/a/164/112). We cannot translate things like "I will be late for dinner" into a programming "language". And a characteristic of all "languages", properly speaking, is their mutual "translatability".

> **Comments:**
> **username_2**: I dunno... logic programming languages like [Prolog](https://en.wikipedia.org/wiki/Prolog) can come pretty close to representing facts like "I will be late for dinner," if you define the terms properly... something like "I expect to arrive home at a later time than the start of my family's next evening mealtime, but at an earlier time than the end of it" could be represented in Prolog in such a way that the computer could both report the information and make inferences from it.  
> **username_9**: Are languages actually mutually translatable? If a "language" were unable to translate something from another language (or vice versa), would it be disqualified as a language? If we say that a programming language isn't mutually translatable with accepted languages, are we talking about a difference of kind or of degree?  

---

### Answer by username_10 on 2018-02-10. Score: 7

As a programmer and a conlanger, I'd say "no". As noted above, programming languages cannot convey metaphor, emotions, sensory impressions, and other such human-relevant messages. Abstraction they can handle, but only abstractions that are relevant to the processing going on inside the machine. Such languages have an extremely limited sphere of reference: bits, bytes, and data structures inside the machine, and operations upon them.

> **Comments:**
> **username_11**: Languages are not required to convey metaphors and emotions - when did this become a requirement?  

---

### Answer by username_12 on 2018-03-09. Score: 2

In the novel "Autonomy", when robots speak to each other, they author expressed it in a source code-like English, with a few things you'd see in coded implementations, like mentions of files, message headers and acknowledgements, and so on. Obviously this wasn't a full implementation. If a hobbyist did do a working implementation, I figure it would be a conlang.

In Star Wars, the droids are supposed to speak a language. The attested text can't possibly be anything like a conlang, except maybe as a language of just "oh!", "ah!" "ha-ha!" and other emotive exclamations. If someone hobbyist tried to make a droid language, it would be a nice feature if it could both work as a natural language and a programming language.

People have speculated that Lojban could serve as a programming language, as things like Prolog are programs made out of logical statements. I haven't heard of anyone doing so. Lojban syntax is describe with the same tools as are used for writing compilers, [YACC](http://www.lojban.org/publications/formal-grammars/grammar.300).

Obviously, since this website doesn't need to reproduce Stack Overflow, things that are *only* programming languages and don't have a way to be used as a natural language (except maybe in jest?) are not only not conlangs, but off topic.


---

### Answer by username_13 on 2019-08-17. Score: 2

Conlangs and programming languages are different things. 
Conlangs are languages designed for human communication. For human to human communication.
No programming language can be regarded as a language in that sense.username_16's example uses
python-like syntax. But at the same time it uses real English words to convey the meaning. Computer is not able to understand the meaning of these words, it just runs code.
Simple Python example:
greetingString = "Hello"

print(greetingString)

Computer just set string "Hello" to variable greetingString and prints it to the screen.
Computer does NOT understand the meaning of the word . For computer it's just a computer variable value, nothing else.

> **Comments:**
> **username_14**: It doesn't matter if a computer _understands_ the meaning. No computer understands the meaning of _La suno brilas_, but it is still a valid conlang sentence! Your python example can easily be translated into English as "Take the sequence 'Hello' and write it down", so you could argue it has a meaning that can be interpreted by an entity capable of doing so.  

---

### Answer by username_14 on 2019-08-19. Score: 2

I'm trying to be [Devil's Advocate](https://en.wiktionary.org/wiki/devil%27s_advocate) here: In a way programming languages are constructed languages, but they are usually very specific and narrow in focus: one could view them as [sublanguages](https://en.wikipedia.org/wiki/Sublanguage) aimed at expressing algorithms or annotating other information. An example for a human sublanguage would be the language of recipes. Words that have multiple meanings in English generally have only one specific meaning in a sublanguage. The syntactic structures are simplified, and often different from general English. Certain aspects of the range of human expressions are left out or limited (you might talk about emotions or feelings, but they would only relate to the food mentioned).

You could design a programming language that is suited to expressing recipes, and it could be used to drive a cooking robot. That programming language could also be read by humans, who would understand the meaning of it, and could translate it into other languages. In this sense 'programming language' is a bit of a red herring: it's just a formal representation of meaning. And (propositional) meaning can easily be expressed in [predicate calculus](https://en.wikipedia.org/wiki/First-order_logic) or related formalisms. Is [CD representation](https://en.wikipedia.org/wiki/Conceptual_dependency_theory) a conlang, or just an abstract representation of actions/states? It can certainly be transformed into any number of other languages (natural or constructed), and it can express a reasonable range of human activity.

Where do you draw the line? At what point does a constructed language cross the boundary between being simply a mark-up or programming language to being suitable for human communication? What is the essence that, say, HTML, is missing, but that [toki pona](https://en.wikipedia.org/wiki/Toki_Pona), [Klingon](https://en.wikipedia.org/wiki/Klingon_language), or Esperanto have? Note: I'm not suggesting that HTML is a conlang, but it can be used to encode a specific kind of meaning, and XML can even [encode semantic relationships](https://en.wikipedia.org/wiki/Resource_Description_Framework). But they might not be very suitable for inter-human communication.

You could, though, envisage two people with no common language between them who use a programming language to work together on solving a problem. It would be tough, but should be possible.

In my view there is a continuum between 'fully formed' languages on the one hand, and restricted or sublanguages on the other. While it is difficult to formally represent the more complex languages (because they are so complex), the simpler end of the spectrum can be encoded in such a representation. Predicate calculus is one representation, and any programming language is another one. There is no hard boundary between the two, so in a way (even though nobody would really 'speak' in a programming language) the answer is: yes, programming languages can be categorised as conlangs.


---

### Answer by username_11 on 2018-05-03. Score: 2

Going along username_1's idea of languages for human idea exchange, there's an old joke that Python can be used in place of pseudocode, because of its use of English keywords, relatively little punctuation, and ease of understanding. 
Here is an example of Kadane's algorithm, expressed in Python (from Wikipedia):
def max_subarray(A):
    max_ending_here = max_so_far = A[0]
    for x in A[1:]:
        max_ending_here = max(x, max_ending_here + x)
        max_so_far = max(max_so_far, max_ending_here)
    return max_so_far

username_10 asserts that languages have to convey emotion, metaphor, sensory impressions, etc. but I think this is a Romantic view. Is the Greek Linear B was used to write not a language since it was used for administrative record-keeping and probably tax purposes? 
I take a liberal view in that yes, programming languages can represent metaphors, abstraction, and idioms, just maybe not in the sense we're used to. In fact, computers are excellent at abstract concepts and generalizing, with duck typing, object-oriented programming and reflection. Off-topic, I daresay with deep learning, computers can generalize even better than humans can. And, sci-fi speculation, when robots become just as intelligent as humans, we have to consider their languages as "real".

> **Comments:**
> **username_15**: Writing isn't language proper either ;)  

---

### Answer by username_16 on 2018-02-11. Score: 1

I would say, to a very limited extent, that yes, they can be, but only as a proxy grammar for other languages. For example, 
from sys import exit as stops ; import os
thing = [] ; me = can = remember = False ; this = open(__file__)
def terrible(v): return v

# ==== start song snippet

me = can = remember = not any(thing)
can = not this.tell(), [True, "dream"]
locals()["deep"] = {"down":{"inside":{"feel_to":"scream"}}}
if `this` + (terrible("silence")): stops(me)

# ===== end song snippet

(source: Coding in song - Representing music lyrics in a programming language of your choosing)
However, this isn't a great method of communication. Programming languages are not designed with the same intentions as conlangs.

> **Comments:**
> **username_2**: -1: This isn't really an example of a programming language in use, but rather some English that's formatted in such a way that it doesn't cause any errors when run as a program. It's a bit like stitching together random Vietnamese words into a poem that can be read in English and calling it an example of Vietnamese.  
> **username_16**: That's fair. Thinking about it, I mostly just wanted to share something interesting I thought could push the edges of the other answers.  

---

