<p><a href="https://conlang.stackexchange.com/a/1034/52">Jesse Adam's answer</a> already does a good job of establishing that programming languages do not have the same expressive power as human language. The notation used in mathematics certainly also does not have the same descriptive power, but it may be useful to look at representations of human language using formal logic, as that's probably the closest tie between linguistics and mathematics that you've got.</p>

<p>Formal semantics, as a discipline, does a lot of work defining a languages grammar using <a href="https://en.wikipedia.org/wiki/Lambda_calculus" rel="nofollow noreferrer">typed lambda calculus</a> (something many computer scientists and mathematicians may have encountered before). This generally follows in the tradition of logician Richard Montague, creating what is called a <a href="https://en.wikipedia.org/wiki/Montague_grammar" rel="nofollow noreferrer">Montague grammar</a>. In a grammar such as this, a sentence like "Every woman sees a man" is represented as:</p>

<blockquote>
  <p>∀x(woman′(x) → (∃y(man′(y) ∧ sees′(x,y)))</p>
</blockquote>

<p>And, in order to derive this compositionally (i.e., from the meaning of each word in the sentence combined together), the meanings of each word is as follows:</p>

<ul>
<li>"woman" = λx.woman′(x)</li>
<li>"man" = λx.man′(x)</li>
<li>"sees" = λy.λx.sees′(x,y)</li>
<li>"a" = λP.λQ.∃x((P(x)∧Q(x)))</li>
<li>"every" = λP.λQ.∀x((P(x)∧Q(x)))</li>
</ul>

<p>Hopefully you can already see a problem here -- where do we actually get the meanings of woman′ and man′ and sees′ from? In this type of grammar, any noun like "woman" or "man" is a function mapping entities to boolean values -- in other words, "woman" is a list of every entity that exists in the world and either a 1 or a 0 depending whether that entity is a woman. A transitive verb like "sees" is a function that maps entities to entities to boolean values based on whether the first entity sees the second entity. </p>

<p>This, as you can imagine, isn't a super satisfying way to define a word -- defining "woman" as the set of all women is kinda circular, at best -- but semanticists generally acknowledge that the meaning of individual lexical items just cannot be formalized like this and leave that for lexical semanticists to figure out (and they, to my knowledge, generally do not try to formalize the meanings of individual words like this.</p>

<p>So, this has all been sort of a tangent from your original question, but in short: mathematics and the notation we use for it are not language in and of themselves, but there are formal/mathematical ways of representing human language. These formalisms can capture a lot about the relationships between words in a language, but they struggle to capture the actual meaning of a particular word, and thus in that way still ultimately fall short of the underlying expressive power of human language unless augmented with some way of truly capturing a content word's meaning.</p>

<p>Most conlangs aim to emulate the expressive capabilities of human language and, as such, we generally would not consider formal languages like programming languages or lambda calculus conlangs.</p>

CC BY-SA 4.0
2020-02-21T16:49:34.467Z
2020-02-21T16:49:34.467Z
Sparksbet
<p>I think Programming and Mathematics fail to meet the standard because, despite being more precise, they are ultimately nowhere near as expressive as a language like English.</p>

<p>Per request I will expand on my answer. Take, for example, the English sentence "Jane missed the bus this morning and couldn't get to the office in time her interview, needless to say, she was not selected for the position." There is no way to express that in any programming language that I know of.</p>

<pre><code>var Jane = {Name:"Jane", Employment:"Unemployed", Bus:data.Buses[4]};
data.Buses[4].Depart("2019-10-05 07:30:00");
Jane.ArriveAt(data.Buses[4], "2019-10-05 07:45:00");
</code></pre>

<p>I won't go on trying the futile exercise of typing out a description of events in Javascript. Note that without knowing English the code makes no sense. Anything in code that isn't a keyword like "if" or "foreach" or "function" isn't part of the language and so you can only describe procedures for moving bits around, one way to illustrate this is to convert my Javascript to do the same thing, but with different variable names - the program will be exactly the same as far as the language specification goes and the resulting executable.</p>

<pre><code>var x = {a:"", b:"Unemployed", c:y.z[4]};
y.z[4].dp("2019-10-05 07:30:00");
x.w(y.z[4], "2019-10-05 07:30:00");
</code></pre>

<p>If those two paragraphs mean the exact same thing as far as the language is concerned, you've completely failed to communicate anything useful. Computer scientists working on artificial intelligence are working to make systems where "bus" is a keyword, there is an idea of "bus" in the language. Until that technology is fully realized, we will be stuck with programming languages that are limited to describing things a computer can understand, a much lesser standard than what a human can. This is what I mean by less expressive.</p>

CC BY-SA 4.0
2019-10-05T11:28:06.060Z
Hello and welcome to the site! Could you please [edit] this to explain a little more what you mean by expressive?
curiousdannii
CC BY-SA 4.0
2019-12-04T16:44:57.737Z
But on the other hand, there are many programming and math concepts that natural languages can't convey successfully, or at least not *well* (because the concept of Jane missing the bus, etc., was conveyed, just not well). Different languages are used for different things. I'm not saying that math (or programming) *is* a conlang, but I don't think you've proved it isn't.
Rory M. Tims
CC BY-SA 4.0
2020-02-21T16:04:46.600Z
@RoryM.Tims Was the concept of Jane missing the bus conveyed? If you don't speak English, you have no way of inferring this information from the programming language. The string "Jane" doesn't point out the real-life entity Jane in Javascript. Nor do things like naming a variable bus, depart, or employment actually indicate anything about those concepts without knowledge of their meaning in English.
Sparksbet
CC BY-SA 4.0
2019-10-05T11:17:24.613Z
2019-10-05T11:57:25.930Z
2019-10-05T11:57:25.930Z
Jesse Adam
<p>If we consider that the purpose of a constructed language is simply and purely created for Human interractions (like esperanto), mathematics cannot be considered as a conlang because it lacks one important thing that human language has: <strong>Context</strong>.</p>

<p>When I say:</p>

<pre><code>He said it last time
</code></pre>

<p>We need to both have the same context to understand the meaning. <strong>Mathematics and Computer programming languages doesn't reach at all this level of tacit agreement</strong>.</p>

<p>However, now I also believe that mathematics help Human to understand and express things in a more abstract way. To make a rough comparison, <strong>we could then consider a constructed language as <a href="https://en.wikipedia.org/wiki/General-purpose_programming_language" rel="nofollow noreferrer">General Purpose programming Language</a> + Context and mathematics as Domain <a href="https://en.wikipedia.org/wiki/Domain-specific_language" rel="nofollow noreferrer">Specific programming Language</a></strong></p>

CC BY-SA 4.0
2020-01-23T21:11:24.310Z
2020-01-23T21:11:24.310Z
Clément Jean
<p>I would argue that mathematics itself is not a language in the way that English, Mandarin, Swahili, Quechua or even Esperanto are because, depending on how you define it, it is either too limited (mathematical notation) or it is too ill-defined (mathematics as practiced by mathematicians).</p>
<p>Mathematical English comes close to being a constructed language, but I would argue that it isn't one because usual mathematical practice does not sharply delineate it from ordinary English. Mathematical English is more like a <em>constructed register of English</em> than a constructed language.</p>
<p>I'm using <em>Mathematical English</em> in a very narrow sense; it is the variant of English that is used to provide semantics for <em>logical formalisms</em>, such as first-order logic. Consider <a href="https://www.cs.rice.edu/%7Evardi/comp409/lec15.pdf" rel="nofollow noreferrer">this handout</a> for example.</p>
<p>In Mathematical English, the meanings of certain closed-class English words are given new definitions and some of the semantics and pragmatics of English is deliberately changed.</p>
<p>In particular, in Mathematical English words like <code>and</code>, <code>or</code>, <code>not</code>, and <code>if</code> are used differently than in ordinary English. In particular, they are used in an entirely truth-functional way.</p>
<p>In the quote below, <code>if</code>, <code>and</code>, and <code>⊨</code> (read as &quot;entails&quot;) are part of Mathematical English.</p>
<pre><code>A, α ⊨ (θ ∧ ψ) if A, α ⊨ θ and A, α ⊨ ψ
</code></pre>
<p>This explains the meaning of the symbol for conjunction <code>∧</code> by using the meaning of <code>and</code> in Mathematical English, which is similar to, but not exactly the same as, the meaning of <code>and</code> in English.</p>

CC BY-SA 4.0
2021-10-31T18:37:46.073Z
2021-10-31T18:37:46.073Z
Greg Nisbet
<p>I asked this question. After reading the responses and similar posts, I’ve come to the following understanding.</p>
<p>At this point in history I think mathematics is very clearly constructed so my question reduces to whether mathematics is a language. This question has already been asked (<a href="https://linguistics.stackexchange.com/questions/20859/is-math-a-language">1</a>,<a href="https://philosophy.stackexchange.com/questions/37919/is-mathematics-a-language">2</a>) but I don’t find the answers completely satisfying.</p>
<p>The question &quot;Is math a language?&quot; obviously begs the questions: What is math? What is language? I would define natural language loosely as the normal languages that we know: English, Spanish, etc. But mathematics is more about the study of <a href="https://en.wikipedia.org/wiki/Formal_system" rel="nofollow noreferrer">formal systems</a> involving formal languages.</p>
<p>The divide between natural and formal language is especially evident in the impossibility of translation between them. For example, consider the formal system of chess with a formal language of pieces, moves, etc. It’s impossible to translate a natural language expression like “I love you” into chess moves without extreme contrivance. In the other direction a sequence of chess moves has no inherent meaning outside of chess. There’s plenty of natural language around chess in discussion, explanation, description, etc. But the internal language of chess is formal and strictly limited to chess. Set theory, a popular mathematical framework, is quite similar. You can't naturally say &quot;I love you&quot; with sets.</p>
<p>It’s worth noting that formal languages can be translated between each other in some sense similar to natural language. For example, chess or Magic the Gathering can be &quot;translated&quot; into a turing machine (ie. played on a computer). More surprising <a href="https://arstechnica.com/science/2019/06/its-possible-to-build-a-turing-machine-within-magic-the-gathering/" rel="nofollow noreferrer">a turing machine can also be translated into MTG</a>.</p>

CC BY-SA 4.0
2021-10-29T03:12:21.127Z
2021-11-03T20:23:52.170Z
2021-11-03T20:23:52.170Z
sfmiller940
<p>Mathematics consists of various names, relationships, etc. that have been consciously constructed and developed over time. On the other hand its a "formal" language whose scope is extremely specialized compared to a regular language. How else does mathematics compare/contrast with constructed languages?</p>

CC BY-SA 4.0
2019-09-30T22:56:33.210Z
Have a read of [Can programming languages be categorized as conlangs?](https://conlang.stackexchange.com/q/163/113) Most people would say that programming languages aren't conlangs, and mathematics is leagues further away than that.
curiousdannii
CC BY-SA 4.0
2020-02-25T00:03:37.190Z
@curiousdannii I've read that question, but I don't find it to be very satisfying for mathematics. The [top answer](https://conlang.stackexchange.com/a/164/516) claims that programming languages are encoding instructions for machines which isn't at all relevant (or even accurate IMO). More importantly I view programming languages are specific formal systems while mathematics is the study of formal systems more generally, etc., so it seems like an argument from the specific to the general.
sfmiller940
CC BY-SA 4.0
2020-02-25T00:04:18.117Z
@curiousdannii But on the other hand I think the [second answer](https://conlang.stackexchange.com/a/256/516) makes a good point about "translatability" being a crucial criteria for language. I feel like formal systems are the missing link and in particular the inability of formal systems to translate into anything external to their own system.
sfmiller940
CC BY-SA 4.0
2020-02-25T00:08:37.440Z
Maybe you could [edit] this to explain why you think mathematics could possibly be considered a constructed language.
curiousdannii
<typology><classification>
Is mathematics considered a constructed language?
# Is mathematics considered a constructed language?

(Asked by: username_0 on 2019-09-30)

Mathematics consists of various names, relationships, etc. that have been consciously constructed and developed over time. On the other hand its a "formal" language whose scope is extremely specialized compared to a regular language. How else does mathematics compare/contrast with constructed languages?

**Tags:** typology, classification

> **Comments:**
> **username_1**: Have a read of [Can programming languages be categorized as conlangs?](https://conlang.stackexchange.com/q/163/113) Most people would say that programming languages aren't conlangs, and mathematics is leagues further away than that.  
> **username_0**: @username_1 I've read that question, but I don't find it to be very satisfying for mathematics. The [top answer](https://conlang.stackexchange.com/a/164/516) claims that programming languages are encoding instructions for machines which isn't at all relevant (or even accurate IMO). More importantly I view programming languages are specific formal systems while mathematics is the study of formal systems more generally, etc., so it seems like an argument from the specific to the general.  
> **username_0**: @username_1 But on the other hand I think the [second answer](https://conlang.stackexchange.com/a/256/516) makes a good point about "translatability" being a crucial criteria for language. I feel like formal systems are the missing link and in particular the inability of formal systems to translate into anything external to their own system.  
> **username_1**: Maybe you could [edit] this to explain why you think mathematics could possibly be considered a constructed language.  

---

## 5 answers

### Answer by username_2 on 2020-02-21. Score: 4

[username_3's answer](https://conlang.stackexchange.com/a/1034/52) already does a good job of establishing that programming languages do not have the same expressive power as human language. The notation used in mathematics certainly also does not have the same descriptive power, but it may be useful to look at representations of human language using formal logic, as that's probably the closest tie between linguistics and mathematics that you've got.

Formal semantics, as a discipline, does a lot of work defining a languages grammar using [typed lambda calculus](https://en.wikipedia.org/wiki/Lambda_calculus) (something many computer scientists and mathematicians may have encountered before). This generally follows in the tradition of logician Richard Montague, creating what is called a [Montague grammar](https://en.wikipedia.org/wiki/Montague_grammar). In a grammar such as this, a sentence like "Every woman sees a man" is represented as:

> ∀x(woman′(x) → (∃y(man′(y) ∧ sees′(x,y)))

And, in order to derive this compositionally (i.e., from the meaning of each word in the sentence combined together), the meanings of each word is as follows:

* "woman" = λx.woman′(x)
* "man" = λx.man′(x)
* "sees" = λy.λx.sees′(x,y)
* "a" = λP.λQ.∃x((P(x)∧Q(x)))
* "every" = λP.λQ.∀x((P(x)∧Q(x)))

Hopefully you can already see a problem here -- where do we actually get the meanings of woman′ and man′ and sees′ from? In this type of grammar, any noun like "woman" or "man" is a function mapping entities to boolean values -- in other words, "woman" is a list of every entity that exists in the world and either a 1 or a 0 depending whether that entity is a woman. A transitive verb like "sees" is a function that maps entities to entities to boolean values based on whether the first entity sees the second entity.

This, as you can imagine, isn't a super satisfying way to define a word -- defining "woman" as the set of all women is kinda circular, at best -- but semanticists generally acknowledge that the meaning of individual lexical items just cannot be formalized like this and leave that for lexical semanticists to figure out (and they, to my knowledge, generally do not try to formalize the meanings of individual words like this.

So, this has all been sort of a tangent from your original question, but in short: mathematics and the notation we use for it are not language in and of themselves, but there are formal/mathematical ways of representing human language. These formalisms can capture a lot about the relationships between words in a language, but they struggle to capture the actual meaning of a particular word, and thus in that way still ultimately fall short of the underlying expressive power of human language unless augmented with some way of truly capturing a content word's meaning.

Most conlangs aim to emulate the expressive capabilities of human language and, as such, we generally would not consider formal languages like programming languages or lambda calculus conlangs.


---

### Answer by username_3 on 2019-10-05. Score: 4

I think Programming and Mathematics fail to meet the standard because, despite being more precise, they are ultimately nowhere near as expressive as a language like English.
Per request I will expand on my answer. Take, for example, the English sentence "Jane missed the bus this morning and couldn't get to the office in time her interview, needless to say, she was not selected for the position." There is no way to express that in any programming language that I know of.
var Jane = {Name:"Jane", Employment:"Unemployed", Bus:data.Buses[4]};
data.Buses[4].Depart("2019-10-05 07:30:00");
Jane.ArriveAt(data.Buses[4], "2019-10-05 07:45:00");

I won't go on trying the futile exercise of typing out a description of events in Javascript. Note that without knowing English the code makes no sense. Anything in code that isn't a keyword like "if" or "foreach" or "function" isn't part of the language and so you can only describe procedures for moving bits around, one way to illustrate this is to convert my Javascript to do the same thing, but with different variable names - the program will be exactly the same as far as the language specification goes and the resulting executable.
var x = {a:"", b:"Unemployed", c:y.z[4]};
y.z[4].dp("2019-10-05 07:30:00");
x.w(y.z[4], "2019-10-05 07:30:00");

If those two paragraphs mean the exact same thing as far as the language is concerned, you've completely failed to communicate anything useful. Computer scientists working on artificial intelligence are working to make systems where "bus" is a keyword, there is an idea of "bus" in the language. Until that technology is fully realized, we will be stuck with programming languages that are limited to describing things a computer can understand, a much lesser standard than what a human can. This is what I mean by less expressive.

> **Comments:**
> **username_1**: Hello and welcome to the site! Could you please [edit] this to explain a little more what you mean by expressive?  
> **username_4**: But on the other hand, there are many programming and math concepts that natural languages can't convey successfully, or at least not *well* (because the concept of Jane missing the bus, etc., was conveyed, just not well). Different languages are used for different things. I'm not saying that math (or programming) *is* a conlang, but I don't think you've proved it isn't.  
> **username_2**: @RoryM.Tims Was the concept of Jane missing the bus conveyed? If you don't speak English, you have no way of inferring this information from the programming language. The string "Jane" doesn't point out the real-life entity Jane in Javascript. Nor do things like naming a variable bus, depart, or employment actually indicate anything about those concepts without knowledge of their meaning in English.  

---

### Answer by username_5 on 2020-01-23. Score: 3

If we consider that the purpose of a constructed language is simply and purely created for Human interractions (like esperanto), mathematics cannot be considered as a conlang because it lacks one important thing that human language has: Context.
When I say:
He said it last time

We need to both have the same context to understand the meaning. Mathematics and Computer programming languages doesn't reach at all this level of tacit agreement.
However, now I also believe that mathematics help Human to understand and express things in a more abstract way. To make a rough comparison, we could then consider a constructed language as General Purpose programming Language + Context and mathematics as Domain Specific programming Language


---

### Answer by username_6 on 2021-10-31. Score: 2

I would argue that mathematics itself is not a language in the way that English, Mandarin, Swahili, Quechua or even Esperanto are because, depending on how you define it, it is either too limited (mathematical notation) or it is too ill-defined (mathematics as practiced by mathematicians).
Mathematical English comes close to being a constructed language, but I would argue that it isn't one because usual mathematical practice does not sharply delineate it from ordinary English. Mathematical English is more like a constructed register of English than a constructed language.
I'm using Mathematical English in a very narrow sense; it is the variant of English that is used to provide semantics for logical formalisms, such as first-order logic. Consider this handout for example.
In Mathematical English, the meanings of certain closed-class English words are given new definitions and some of the semantics and pragmatics of English is deliberately changed.
In particular, in Mathematical English words like and, or, not, and if are used differently than in ordinary English. In particular, they are used in an entirely truth-functional way.
In the quote below, if, and, and ⊨ (read as "entails") are part of Mathematical English.
A, α ⊨ (θ ∧ ψ) if A, α ⊨ θ and A, α ⊨ ψ

This explains the meaning of the symbol for conjunction ∧ by using the meaning of and in Mathematical English, which is similar to, but not exactly the same as, the meaning of and in English.


---

### Answer by username_0 on 2021-10-29. Score: 2

I asked this question. After reading the responses and similar posts, I’ve come to the following understanding.

At this point in history I think mathematics is very clearly constructed so my question reduces to whether mathematics is a language. This question has already been asked ([1](https://linguistics.stackexchange.com/questions/20859/is-math-a-language),[2](https://philosophy.stackexchange.com/questions/37919/is-mathematics-a-language)) but I don’t find the answers completely satisfying.

The question "Is math a language?" obviously begs the questions: What is math? What is language? I would define natural language loosely as the normal languages that we know: English, Spanish, etc. But mathematics is more about the study of [formal systems](https://en.wikipedia.org/wiki/Formal_system) involving formal languages.

The divide between natural and formal language is especially evident in the impossibility of translation between them. For example, consider the formal system of chess with a formal language of pieces, moves, etc. It’s impossible to translate a natural language expression like “I love you” into chess moves without extreme contrivance. In the other direction a sequence of chess moves has no inherent meaning outside of chess. There’s plenty of natural language around chess in discussion, explanation, description, etc. But the internal language of chess is formal and strictly limited to chess. Set theory, a popular mathematical framework, is quite similar. You can't naturally say "I love you" with sets.

It’s worth noting that formal languages can be translated between each other in some sense similar to natural language. For example, chess or Magic the Gathering can be "translated" into a turing machine (ie. played on a computer). More surprising [a turing machine can also be translated into MTG](https://arstechnica.com/science/2019/06/its-possible-to-build-a-turing-machine-within-magic-the-gathering/).


---

