- 著者
-
岩間 太
五十嵐 淳
小林 直樹
- 出版者
- 一般社団法人情報処理学会
- 雑誌
- 情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
- 巻号頁・発行日
- vol.48, no.4, pp.48-61, 2007-03-15
ファイルやメモリなどの計算資源がプログラム中でどのように使用されるかを型を用いて推論するための手法が五十嵐,小林らにより提案されている.彼らの手法では,各計算資源に対して起こりうるアクセス列の集合を使用法表現と呼ばれる式として推論する.しかしながら,推論された使用法表現が表すアクセス列の集合が,仕様として許されるアクセス列からなる言語に包含されているかどうかを判定するアルゴリズムが考案されておらず, 計算資源使用法検証の完全な自動化は達成できていなかった.本論文では,ある特定の言語クラスに属する仕様に対し,そのような包含判定を行うための健全かつ完全なアルゴリズムを提案する.仕様として任意の正則言語を許す場合には,包含判定問題は決定不能なので,我々のアルゴリズムが扱う仕様のクラスは,1つの入力記号について,遷移元および遷移先の状態がたかだか1つしか存在しない有限オートマトンが受理する言語のクラスとして与えられ,正則言語のクラスより小さい.しかしながら,ファイルなど現実の計算資源の仕様の多くは,我々のアルゴリズムで扱える言語のクラスに属する.したがって,本論文のアルゴリズムを五十嵐と小林らによる従来の研究と組み合わせることにより,ファイルなど多くの計算資源の使用法検証を自動化できる.In our previous work, we have developed a type-based method for inferring how resources such as files and memory are accessed in a program. Due to the lack of an algorithm for deciding whether the inferred resource usage conforms to the specification, however, it was not possible to verify automatically that resources are accessed according to the specification. In this paper, we propose a sound and complete algorithm for deciding the conformance of the inferred resource usage to the specification. Since the language denoted by the inferred resource usage belongs to a class larger than the class of the context-free languages, the class of specifications that our algorithm can deal with is smaller than the class of regular languages. Fortunately, however, that language class contains many of the typical resource usage specifications used in practice. Thus, by combining our algorithm with our previous method for resource usage inference, we can automatically check whether each resource is accessed according to the specification in many cases.