We present an efficient method for analyzing information flow of a recursive program. In our method, security levels of data
can be formalized as an arbitrary finite lattice.We prove the correctness of the proposed algorithm and also show that the
algorithm can be executed in cubic time in the size of a program. Furthermore, the algorithm is extended so that operations
which hide information of their arguments can be appropriately modeled by using a congruence relation. Experimental results
by using a protypic system are also presented.