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?

  • 4
    Have a read of Can programming languages be categorized as conlangs? Most people would say that programming languages aren't conlangs, and mathematics is leagues further away than that.
    – curiousdannii
    Sep 30 '19 at 22:56
  • @curiousdannii I've read that question, but I don't find it to be very satisfying for mathematics. The top answer 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. Feb 25 '20 at 0:03
  • @curiousdannii But on the other hand I think the second answer 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. Feb 25 '20 at 0:04
  • 1
    Maybe you could edit this to explain why you think mathematics could possibly be considered a constructed language.
    – curiousdannii
    Feb 25 '20 at 0:08

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.

  • 1
    Hello and welcome to the site! Could you please edit this to explain a little more what you mean by expressive?
    – curiousdannii
    Oct 5 '19 at 11:28
  • 1
    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. Dec 4 '19 at 16:44
  • 1
    @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
    Feb 21 '20 at 16:04
  • Not that Wikipedia is an authority, but it is a sampling of viewpoints, and doesn't seem to mention expressivity as a criterion. Is the expressivity criterion more particular to conlang.SE?
    – Galen
    Apr 21 '20 at 4:39

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

  • 1
    "If we consider that the purpose of a constructed language is simply and purely created for Human interractions" That's a pretty big 'if', and seems pretty optional to be a definitive answer for the OP.
    – Galen
    Apr 21 '20 at 4:42

Jesse Adam's answer 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 (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. 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.


Actually they are, they are called formal languages, following classic logic theory (with intuitive sets) We can stablish something called FOL (first order logic) which is an actual language, however the expresability of such a language is not as great as a conventional semantic language. Thats why we don't use math or programming languages as a way of communicating complex or "human" ideas. That's also why we keep using words of conventional languages while proving theorems in math. However there have been attempts to express such mathematical ideas just by using symbols but the results are extremely complicated and confusing. But indeed, as a philosophical and logical point of view math is a no so expressive language.

  • 1
    Hello and welcome to the site! The question however isn't asking if maths is considered a formal language, but a "constructed language". Do you have any sources which call it that?
    – curiousdannii
    Feb 7 '20 at 6:16

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