TOP > 研究報告検索 > 計算状態パーソナル・スクラップブック


研究報告コード R040000105
掲載日 2007年5月18日
  • Richard L. Potter
  • 東京大学大学院情報理工学系研究科
  • 東京大学
報告名称 計算状態パーソナル・スクラップブック
報告概要 The goal of this research is to investigate new programming tools that work by saving and restoring intermediate computation state. The same basic idea has brought important benefits to other types of tools and applications. Scientific and other distributed applications can benefit by saving an application in mid-execution and moving it to a machine with more resources. Other applications gain fault tolerance by saving application state for rolling back to a safe checkpoint in case of hardware or software failures. However, few benefits have been explored for programming tools that can save and restore the computation state of a program under development. One reason to expect benefits is that quick initialization of programs in mid-execution can make it possible to focus programming tools and programmer attention in new creative ways. People who are learning new programming skills can benefit because it allows a wider range of techniques to be applied to a program that has been subdivided into more manageable pieces. An additional general benefit isthat program state can be enumerated more efficiently and methodically, which enables model checking on actual implementations. The questions for this research are what tools can make these potential benefits practical for actual programming activity and what infrastructure will make these tools easy to implement. Tools based on Computation Scrapbooks have potential to be simple because it is simple and increasingly practical to copy computation state. It is conceptually simple because, like photo copying complex information on a sheet of paper, it is not necessary to understand the information to easily copy it. Copying computation state is practical because hard disk sizes and processor speeds are fast enough to copy realistic computation state quickly. The challenge of this research is to demonstrate that Computation Scrapbooks can be both useful and practical without adding too much complexity to the simple core functionality that copies the computation state. Thus it is important to distinguish between the core functionality, which is well defined and clearly practical, and the extended functionality, which may be less well defined and only be possible for certain special cases. The approach of the research has been to create two systems. The first system is for fast prototyping various Computation Scrapbook based tools. It has limited core functionality, but is flexible for exploring the various types of extended functionality necessary to support the tools. The second system is designed for actual use by real users. It has more rigorous core functionality that is general, however the range of extended functionality and tools is less than the first system. The name “Computation Scrapbook” represents the core infrastructure itself, and is intended to convey that multiple snapshots of computation state are saved and used in creative ways. It encompasses functionality to save, organize, and restore snapshots of computation state. To support programming tools, a Computation Scrapbook must support thread persistence, because use in programming tools requires checkpointing at a fine granularity and therefore the stack states must be preserved. Also, multiple persistent snapshots will be required for several of the programming tools.
  • 計算機ソフトウエア一般
  • システムプログラミング一般
関連発表論文 (1) O. Sato, R. Potter, M. Yamamoto, and M. Hagiya, UMLスクラップブックとスナップショットプログラミング環境の実現,Linux Conference 2003
(2) R. Potter and Y. Harada, Additional Context for Gentle-Slope Systems, IEEE Symposia on Human-Centric Computing Languages and Environments (HCC 2003)
(3) R. Potter and M. Hagiya, Computation Scrapbooks for Software Evolution, Fifth International Workshop on Principles of Software Evolution (IWPSE 2002)
(4) R. Potter, Computation Scrapbooks of Emacs Lisp Runtime State, 第43回プログラミング・シンポジウム
(5) R. Potter, Computation Scrapbooks of Elisp Runtime State, IEEE Symposia on Human-Centric Computing Languages and Environments (HCC 2001)
(6) R. Potter, Computation Scrapbooks, 第4回プログラミングおよび応用システムに関するワークショップ (SPA2001)
  • さきがけタイプ 「機能と構成」領域
  • Richard L. Potter. Personal Scrapbooks for Computation State. 「さきがけタイプ」「機能と構成」領域 研究報告会講演要旨集(研究期間2000-2003),2003. p.45 - 51.