I. INTRODUCTION
It has been said that it is quite useful to read a program that somebody else has written [1]. Nowadays, we can easily obtain a copy of practically any used program in our open source community [2][3]. For example, we can obtain a copy of many such programs through Web sites such as SourceForge [4]. Reading such practically used programs that are available, people can now learn high-level programming. However, the reality is that the level of such practically used programs is often complex and of such a large scale so that it is not as easy to understand them as one might expect [7][8]. Furthermore, many such programs that have been open to public through the open source community might not come with the right amount of documentation. That is also a reason for people to feel difficulty in understanding programs. For that reason, we believe that we do need some kind of environment to help the learner read and understand programs [5]. Learning programs and cultivating the ability to read programs is necessary for other reasons. For example, to do program maintenance, it is necessary to understand the programs to which some modifications might apply. Additionally, it is