Linguistic descriptions are programs

Horses for courses

In order to be commercially viable, high-level programming languages and the interpreters or compilers they depend on, will almost inevitably be general purpose tools for handling a wide range of problems. But in principle, of course, there is no such requirement. A high-level language could be designed for an extremely specific task. In fact, if you are a linguist, you will already know such a language.

A language for linguists

A linguistic description would normally be thought of as a set of explicit statements about the linguistic forms used in a natural language, or perhaps as a way of characterising the notion possible sentence. But - because it aims to be explicit - a linguistic description can also quite naturally be interpreted as a collection of instructions for constructing (i.e. literally generating) linguistic forms or, alternatively, for analysing them. Interpreted in this way a linguistic description can itself be seen as a kind of program. What makes it possible to guarantee that the instructions of this program are unambiguously interpretable is that they are written in a very restricted language. To put it differently, then, the notational conventions used in linguistic description together make up a specialised high-level programming language. It just happens that this language is missing a readily available interpreter (or compiler) which would allow us to run the description on a computer.

Treating descriptions as programs

If we could treat linguistic descriptions literally as programs expressed in a narrowly focused high-level language there would be considerable advantages. Given an appropriate interpreter to translate the linguistic program into a form the computer understands, the painstaking and, in practice, sometimes careless manual checking of a linguistic description could be replaced by much faster, more comprehensive and accurate testing. At the same time, the demands of the interpreter (viz. that the linguistic specification is absolutely unambigious) would ensure that the linguist takes an objective view of his descriptive framework. Is it really is as precise, as fully formalised, as he imagined? He might even be persuaded on occasions under this sort of pressure to modify it!

Making the best of the situation

Of course, an off-the-shelf interpreter to convert linguistic descriptions into machine code is just pie in the sky. But notice that there is nothing to prevent us from taking a more indirect route - writing an interpreter for ourselves in another carefully chosen high-level language. All that will happen in this scenario is that any linguistic program will need to be reduced to the language of the machine in two steps rather than one.

                   STEP 1                       STEP 2

              custom interpreter         commercial interpreter

linguistic program   -->  high-level language   -->  machine code instructions 

The computer certainly will not worry about this extra work load.

Ron Brasington
Department of Linguistic Science
The University of Reading