James's Blog

Sharing random thoughts, stories and ideas.

Language and Time

Posted: May 10, 2021
◷ 4 minute read

Spoiler warning: this post assumes knowledge of the entire story of the 2016 film Arrival, and contains some major plot elements from it. If you have not seen the movie (or read the short story that it is based on), I strongly recommend that you do so before reading further.

I recently rewatched Arrival, and it got me thinking about languages again. A short line around halfway through the movie, narrated by Jeremy Renner’s character Ian Donnelly, stood out to me this time:

“There’s no correlation between what a heptapod says and what a heptapod writes.”

Speech is inherently temporally linear, as the movie explains. The heptapod’s (the alien’s name in the story) written language is uniquely and importantly different, in that it is a form of nonlinear orthography: there is no temporal ordering of symbols and meaning. It turns out that in the story, by learning and using this language, one can gain the ability to perceive time in such a nonlinear fashion as well, essentially a type of clairvoyance.

Where does the temporal linearity of languages come from? For spoken languages, it’s straightforward. Speech (and music, if we take a broader definition of “spoken language”) is transmitted via sound, and sound signals propagate through the vibrations of some medium (such as air), which require the linear passage of time to exist. By extension, almost all human written languages are temporally linear as well, since they are almost always just symbolic representations of speech.

What about non-natural languages (again, in the broader sense)? It seems that the chains of temporal linearity have quite a far reach, and bind many of them as well. Most digital information encoding schemes are actually just binary representations of human natural languages. After all, a UTF-8 encoded document needs to be decoded into a piece of text that people can read, and so follows the same ordering as our natural languages. The same is true for digital audio encoding formats like MP3, and data transmission protocols like TCP. UDP does seem to include some aspects of nonlinearity, since it is able to deal with out-of-order sequencing of packets. But the way it “handles” them - basically ignoring packets that arrive too late - is still forcibly linear.

Programming languages across a wide range of paradigms are no different. Procedural languages like C and Python are by definition linear, as they explicitly specify a set of steps to follow, one after another. This temporal linearity, like that of many digital encoding formats, can be seen as an extended implication of the linearity of human natural languages - procedural languages are just human instructions that are more formally specified. Functional languages also have an inherent system of ordering built-in, which is the application order of the functions. However the source of this linearity is a bit different here. Instead of originating from our natural languages, the linear ordering required in functional programming stems from the fact that function composition is not commutative in general, that is, f(g(x)) and g(f(x)) are not the same for most functions f and g. Most logic programming languages (and theorem prover tools) require a similar a form of ordering, as formal proofs are only valid if their statements follow in an order that can be justified.

Perhaps this - the fact that deductive logic is linear in nature - is the root of where temporal linearity in our languages ultimately comes from. A large part (if not the entirety) of our conscious thought is based upon some form of deductive reasoning, and so all the languages that we’ve built on top of it, be it English or C, are bound by the same linearity. To get a language that escapes the confines of temporal linearity, maybe we need to remove the correlation between what it says and deductive logic, just like how the heptapods separated their spoken and written languages. There are some languages that fit the bill.

Visual language is a prime example. When we look at an image or diagram holistically (and not studying parts of it in detail), we are able to take in its overall feeling without any sense of ordering. The perception of the whole is conveyed to us instantaneously (conceptually of course, not literally). In general I think feelings, emotions, and the unconscious seem to be more nonlinear in nature; their existence does not depend on some flow, and just “are”.

There are also some formal languages that describe states that “just are”, and as a result, have some sense of nonlinearity to them. Declarative programming languages are one such example. SQL does not describe a procedure to retrieve data, but instead specifies a set of conditions that the data returned must satisfy. The syntax itself is still ordered of course, but the information it conveys is nonlinear. Hardware description languages (HDLs) like Verilog are another example. They encode the logical structures of integrated circuits. While HDLs typically have the notion of time explicitly in their syntax (since digital circuits work in clock cycles), when you look at the description of the circuit for just a single clock cycle, the information is very much nonlinear. For a circuit, the flow of electricity is effectively instant. If two inputs are turned on and fed through an AND gate, the output will “just be” on. In this sense, in each step, HDLs are executed simultaneously without any logical notion of ordering nor time. Maybe the heptapod’s written language is an HDL of physics in the universe (a PDL?).

So I wonder, do artists, database administrators, and chip designers think more nonlinearly? Do they see the future?