Wednesday, May 31, 2006

categories

This post is just some stack or heap of thoughts. Unsorted, No real category to be found.

I have been reading about the use of variables in programming languages, and I realized how many concepts are involved into a normal operation like

X = 4


We need to consider that we have storage somewhere - to store 4 items, maybe 4 voltages to keep it simple. In computers we use something like a register. Apart from the physical quantities, we assign a name to this storage place. We need this name to refer later to this place and to reason about change. Then there is the question on scope (or context) of the name. When I refer to X now, we will now what I am talking about. But when I am referring to X later or at another location I will need to give you more detailed hints. So, above expression needs at least 3 considerations: a location in the physical world, a binding to a name (maybe similar to a pronoun like "me" or "you"), and a value.

This makes abstractions maybe confusing for beginners.... you need to know what concept is referred to.

Tuesday, May 30, 2006

Context

It has been a while since the last update of this blog. I have been mainly thinking about concepts for programming and knowledge representation. The difficult step with solving a problem is often given by expressing a problem in useful concepts (as I read today in a book on Haskell, a functional programming language). When we think about programming languages - transformations of structures given a certain input - we need to introduce concepts such as functions, variables, expressions, statements, procedures. But if we look at computers - the physical level of algorithms - all what we can find are voltages and currents, or forms of sequences with units of "0" and "1". But every interface is giving real world human psychological meaning to these abstract state machines. I find this very interesting.

Maybe the process of abstraction could be better understood when we look at the world of building things: Architecture. There, the abstract form of space is also translated into the more psychological problem of living environment. I realized this when I came across the concept of "pattern language" by Christopher Alexander who was an architect, and on whose concepts of patterns the wikipedia-encyclopedia is based. Behind every meaning that we express and generate, there is some "meta"-meaning or context, which guides our thoughts into certain direction. Maybe this meta-meaning is more powerful, and therefore also more limiting, than the distilled meaning which concerns us so much during decision making.