Iterative-Free Program Analysis

Mizuhito Ogawat, Zhenjiang Hu, Isao Sasano

研究成果: Paper査読

3 被引用数 (Scopus)

抄録

Program analysis is the heart of modern compilers. Most control flow analyses are reduced to the problem of finding a fixed point in a certain transition system, and such fixed point is commonly computed through an iterative procedure that repeats tracing until convergence. This paper proposes a new method to analyze programs through recursive graph traversals instead of iterative procedures, based on the fact that most programs (without spaghetti GOTO) have well-structured control flow graphs, graphs with bounded tree width. Our main techniques are; an algebraic construction of a control flow graph, called SP Term, which enables control flow analysis to be defined in a natural recursive form, and the Optimization Theorem, which enables us to compute optimal solution by dynamic programming. We illustrate our method with two examples; dead code detection and register allocation. Different from the traditional standard iterative solution, our dead code detection is described as a simple combination of bottom-up and top-down traversals on SP Term. Register allocation is more interesting, as it further requires optimality of the result. We show how the Optimization Theorem on SP Terms works to find an optimal register allocation as a certain dynamic programming.

本文言語English
ページ111-123
ページ数13
出版ステータスPublished - 2003
外部発表はい
イベントEighth ACM SIGPLAN International Conference on Functional Programming - Uppsala, Sweden
継続期間: 2003 8 252003 8 29

Conference

ConferenceEighth ACM SIGPLAN International Conference on Functional Programming
国/地域Sweden
CityUppsala
Period03/8/2503/8/29

ASJC Scopus subject areas

  • ソフトウェア

フィンガープリント

「Iterative-Free Program Analysis」の研究トピックを掘り下げます。これらがまとまってユニークなフィンガープリントを構成します。

引用スタイル