The
accumulation strategy consists of generalizing a function over an algebraic data structure by inclusion of an extra parameter, an
accumulating parameter, for reusing and propagating intermediate results. However, there remain two major difficulties in this accumulation strategy.
One is to determine
where and
when to generalize the original function. The other, surprisingly not yet receiving its worthy consideration, is how to manipulate
accumulations. To overcome these difficulties, we propose to formulate accumulations as
higher order catamorphisms, and provide several general transformation rules for calculating accumulations (i.e., finding and manipulating accumulations)
by
calculation-based (rather than a search-based) program transformation methods. Some examples are given for illustration.
Zhenjiang Hu, Dr.Eng.: He is an Assistant Professor in Information Engineering at the University of Tokyo. He received his BS and MS in Computer
Science from Shanghai Jiao Tong University in 1988 and 1990 respectively, and his Dr. Eng. degree in Information Engineering
from the University of Tokyo in 1996. His current research concerns programming languages, functional programming, program
transformation, and parallel processing.
Hideya Iwasaki, Dr.Eng.: He is an Associate Professor in Information Engineering at the University of Tokyo. He received the M.E. degree in 1985,
the Dr. Eng. degree in 1988 from the University of Tokyo. His research interests are list processing languages, functional
languages, parallel processing, and constructive algorithmics.
Masato Takeichi, Dr.Eng.: He is Professor in Mathematical Engineering and Information Engineering at the University of Tokyo since 1993. After graduation
from the University of Tokyo, he joined the faculty at the University of Electro-Communications in Tokyo before he went back
to work at the University of Tokyo in 1987. His research concerns the design and implementation of functional programming
languages, and calculational program transformation systems.
相似文献