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?

  • 5
    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
    Commented Sep 30, 2019 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. Commented Feb 25, 2020 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. Commented Feb 25, 2020 at 0:04
  • 2
    Maybe you could edit this to explain why you think mathematics could possibly be considered a constructed language.
    – curiousdannii
    Commented Feb 25, 2020 at 0:08

5 Answers 5


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
    Commented Oct 5, 2019 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. Commented Dec 4, 2019 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
    Commented Feb 21, 2020 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?
    – user2602
    Commented Apr 21, 2020 at 4:39

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.


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.
    – user2602
    Commented Apr 21, 2020 at 4:42

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.


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,2) 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 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.

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