@techreport{oai:ipsj.ixsq.nii.ac.jp:00030272, author = {北川, 拓 and 渡辺, 坦 and Taku, Kitagawa and Tan, Watanabe}, issue = {9(1996-PRO-011)}, month = {Jan}, note = {再帰呼び出しを用いたプログラムは、同じ処理を再帰を用いずに書いた場合と比べて実行するのに時間とメモリを多く必要とする。そのため、再帰呼び出しに対する最適化が望まれるが、それの実装されているコンパイラはわずかしか無い。本稿では、線形再帰を末尾再帰に変換して最適化する方法を提案し、実装を行なった。この方式はArsacとKodratoffによって提案された方法を改良したもので、彼らの方法では末尾再帰の変換に発見的方法を用いているが、それを本稿では探索を実装に適したアルゴリズミックな手順で実現している。, Execution overhead of recursive call is high and it is desirable to improve its object code. However, only a few compilers do it. We propose a technique of object code optimization for recursive calls and implemented it in our complier. In this technique, liner recursion is transformed to tail recursion by using Arsac and Kodratoff's method and then transformed to loop. Arsac and Kodratoff use heuristic method in finding tail recursion function, but we propose an algorithmic method suitable for computer.}, title = {手続き型言語での再帰の除去について}, year = {1997} }