Visualization of program execution is generally beneficial for programmers to understand the program. However, there exist only a limited number of visualization systems which can be used for practical applications. The main focus of the traditional visualization systems is on how to make concrete pictures, and they are customized for specific application domains. Therefore, the existing visualization systems cannot be easily used for a wide range of applications. We propose an alternative framework for program visualization based on a bottom-up approach. A conventional top-down manner for designing a concrete final picture is not used here. Instead, our system draws an abstract picture as a set of local pictures by applying local drawing rules. We also introduced a scaling mechanism that prevents overflowing or overdrawing. The proposed framework also enables us to see a conceptual structure of the program naturally. A prototype system is developed by using the Scheme interpreter. Examples of visualization by the system are shown.