The main goal of parallelizing compiler research is the ability to produce efficient parallel programs and the portability because of wide choices of current and future available parallel computer architectures. Since the design of paralletizing compilers tends to be more complicated than conventional compilers, it is extremely difficult to achieve both the efficiency and the portability. To meet this problem, we have investigated an application of object oriented design to parallelizing compilers. Our parallelizing compiler design is based on abstractions of intermediate representations of loops and class definitions for them. In this paper, we focus on loop parallelization and propose a framework where loop parallelization process is divided into three phases and the optimization of loops is performed via cyclic use of those three phases. The class of each phase is hierarchically derived from intermediate representations of loops. This increases the portability of resultant parallelizing compilers. Furthermore, one of the phases uses a reservation table of hardware resource to obtain practicM optimization of parallel programs for given hardware resource.