Friday, June 22, 2007

Compilers versus interpreters

Just some note on information processing for personal use:

Algorithms are based on the idea that a set of operations can be combined in such a way that they can solve a certain problem. So, when we talk about algorithms, or initiation of processes, there are mainly two sets involved:

* the set of possible operations (= instructions, words in a language)
* the set of possible sequences of operations (= computer programs, or texts in a language)

We know from computer science, that there are two basic ways of having computers programs performing actions, the first is

* interpretation: the actions that a computer needs to perform are translated first into the actions of another language. That is, the abstract representation of a computer program is assembled step by step (= run-time)

* compiler: the actions that a computer needs to perfom are translated directly into the set of operations provided by the computer. That is, the abstraction representation of a computer program is assembled in one time (= compile-time)

So, interpretation and compilation are allowing for different designs. Interpretation allows more flexibilty in a design, because its functionality can be improved in an organic fashion, while compilation will allow higher performance design, because functionality can be optimized for certain tasks.