previous chapterthe pico pagenext chapter


Metacircularity

Programming is the preferred road to understanding computational processes. In order to build programs one has to know the language that is to be used; the most productive approach to do so is understanding the evaluation mechanism introduced in the previous section.

Computer science regularly uses metacircularity to define and hence to understand some computational mechanism. In this context metacircularity means that the same language is used to describe both a computational process and the REP machine used to simulate it. The prefix meta refers to the fact that we use a program that manipulates programs; circularity means that the same language is used on both levels. We will regularly use the qualification meta-level and base-level to make the distinction between these two levels.

Metacircularity is of course a theoretical concept but it enables us to study computational processes using a one-tier tower of evaluators. In the next chapter we shall formally define the programming language called Pico in exactly this fashion: each and every instance of a Pico-expression will be defined by a Pico-program capable of computing its value.


In order to prime our knowledge, we will use the rest of this chapter to give an informal introduction to the language Pico.


previous chapterthe pico pagenext chapter