Wednesday, September 23, 2009

Programming Languages and Ontology

A rather whimsical idea struck me: are ontological systems reducible in some way to programming languages? In particular, there are four main types of programming languages: procedural, object-oriented, functional, and declarative. Each takes a different paradigm. And they are all Turing-equivalent.

A procedural language is pretty straightforward: just type in your commands in order. If you've programmed in C or Basic (including on your graphing calculator), you know what a procedural language is. Do x, do y, do z. This is like a narrative mode of accounting for the world, running straight through the information in a linear fashion.

An object-oriented language, like C++ or Java, focuses more on objects. One packages the structures which one is using in a particular way: there is a class with certain functions, and one instantiates objects of this class. This is a substance ontology, of an Aristotelian sort at that.

A functional language, like Lisp (the greatest language ever), by contrast focuses entirely on functions. This is a process ontology. Everything is a function (in good style), and functions simply call functions to get things done.

A declarative language, like Prolog, is relational. It is a logical system, concerning with the interrelations between the terms. It basically just is formal logic as a computer program.

But, in the end, all of these are Turing-equivalent. What does that mean? It means that they all do the same stuff, even though they go about it in different ways.

So what could be an implication of this? If ontologies are computable, if they cut up the world in ways similar to a computer program, then all of the wrestling back and forth over these particular options is over practicality and elegance, not over which one actually describes reality, since if one does then any does. This wouldn't mean that either reality or our minds are in themselves computable, but merely that once we introduce individuation and differentiation into the world, once we have started to cut it up, the world-pieces can be put together as narratival, as substantial, as processual, or as relational equally well.

But isn't starting from world-pieces (or bits of zeros and ones) already an ontology? Perhaps, but one imposed to have anything to say; this is our boot-straps by which we pull ourselves up. Communication requires some digitalization, which we hope approximates analogue reality. The pieces, though, do not come with relations already ingrained. We add those. But the pieces are amenable to the relations; the relations aren't merely imposed, but the pieces are potentially related in the various ways. Practical concerns aren't simply a construction of reality, but a revelation of it.

No comments: