A quickly-jotted and probably ill-conceived note on language

For quite a while now I’ve been thinking, and saying, that languages are the central and fundamental modality for computing, ie everything one might want to do in computer science can/should be approached from a linguistic standpoint. I think I’ve just realised that this slightly misses the point, or at least doesn’t say much — because language is central and fundamental to any intellectual (or at least scientific/non-explicitly-sublime) endeavour.

Forget computer science for a moment, step back, and take a look at language.

Language is a serialisation mechanism for ideas and meaning. It exists and is beneficial because serialisation allows those things to be persisted, exchanged, and manipulated.

In natural language, the persistence mechanisms take the form of writing and recordings; the exchange mechanisms are speech if persistence isn’t required as a side effect, but otherwise largely use the persistence mechanisms. Manipulation takes the form of editing and rewriting at the syntactic level, and argument and debate at the semantic level (and propoganda/sociocultural programming at the political level).

Formal languages are central to computer science not because languages per se have anything much to do with computer science, but because formalisation, which means automation and mechanisation, is the very essence of computer science. It is the science of the mechanistic manipulation of data — “the latest stage in mankind’s ongoing quest to automate everything”, as JVT once said. Languages per se are fundamental to computer science only insofar as they are fundamental to all intelligent human endeavour, in their role as a serialisation mechanism for thought. The point with regard to computer science is not that we use language – that is an unavoidable side effect of thinking; the point is that we have to use formal languages, because of the things we choose to think about. As such, computer science is where the species’ expertise on the formal and formalisable aspects of language reside, mainly (colleagues in linguistics may take issue at this, of course, but my personal opinion is that the distinction between natural and formal is here very very deep, or at best that the formalisms behind natural language are intangible). At its heart, computer science is the science of formalisation; the language of such a science must, necessarily, be largely formal.

I guess that’s it. Does this make sense to anyone else? Maybe I’m not saying anything non-obvious. shrug

(This started, by the way, with me thinking about why the textbook on my table, “Languages and Machines“, is subtitled “An Introduction to the Theory of Computer Science”).

2 Responses to “A quickly-jotted and probably ill-conceived note on language”

  1. February 24th, 2008 | 8:05 pm

    Well, computability can be defined largely in terms of parsing – a problem is decidable if it can be expressed as a decidable language.

    As for natural vs. formal languages: whether they’re formal or not, everyone has a slightly different grammar in their head – that’s what accounts for dialects and in particular dialect continua, and of course language change. Nobody sat down and decided what the grammar of (for example) the English language should be; one person’s idiolect (i.e. the idiosyncratic language that that one person speaks and understands) might be formalisable, but a dialect (that of a language community, a large mass of individuals with differing personalities) is, I think, not.

  2. February 25th, 2008 | 9:59 am

    Exactly: Markus pointed out to me once, and I haven’t found a reason to disagree, that a formal language is simply one in which the set of symbols and the set of rules are _fixed_. That’s it. That just doesn’t happen with natural language, and if it did, it would be a problem, not a win. But if you’re automating, you want the stationary set of goalposts that buys you.