Study for Optimization of Continuations
Project/Area Number |
09680333
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Allocation Type | Single-year Grants |
Section | 一般 |
Research Field |
計算機科学
|
Research Institution | KYOTO UNIVERSITY |
Principal Investigator |
YUASA Taiichi Kyoto University, Informatics, Professor, 情報学研究科, 教授 (60158326)
|
Co-Investigator(Kenkyū-buntansha) |
YASUGI Masahiro Kyoto University, Informatics, Assistant Professor, 情報学研究科, 講師 (30273759)
KOMIYA Tsuneyasu Kyoto University, Informatics, Research Associate (80283638)
|
Project Period (FY) |
1997 – 1998
|
Project Status |
Completed (Fiscal Year 1998)
|
Budget Amount *help |
¥2,600,000 (Direct Cost: ¥2,600,000)
Fiscal Year 1998: ¥1,100,000 (Direct Cost: ¥1,100,000)
Fiscal Year 1997: ¥1,500,000 (Direct Cost: ¥1,500,000)
|
Keywords | Scheme / continuation / control-flow analysis / abstract interpretation |
Research Abstract |
While first-class continuations as in the Scheme programming language are powerful, the cost of creating and calling continuations is very high. In order to avoid this problem, we have proposed light-weight continuations called indefinite one-time continuations (or IOCs for short). An IOC can be called at most once but can be called at any time. If we are sure that a continuation is called at most once during the execution of a program, then by replacing the function "call/cc" which generates a continuation with "call/ioc" which generates an IOC, the performance of the program will be significantly increased. In general, however, it is difficult to determine whether a continuation is called at most once. In this research, we proposed an algorithm to automatically detect those continuations that can be replaced by IOCs, by analyzing an entire program using a kind of abstract interpretation. Based on this algorithm, we developed a system which detects those "call/cc" calls that can be replaced by "call/ioc" calls. We then analyzed several practical Scheme programs on this system. This algorithm cannot detect all replaceable continuations since the algorithm uses only the information which is statically obtained from a program. However, our experiments showed that most replaceable continuations in practical Scheme programs can be detected by this algorithm.
|
Report
(3 results)
Research Products
(15 results)