A Formal Translation From an Imperative Language With Array to a Declarative Language
暂无分享,去创建一个
The goal of this paper is to present a translation function of programs written in an imperative language with array to programs written in a declarative language. The two languages used, L1 and L2, are extensions of the languages introduced by [1] which supported expressions needed by a programming language such as assignment, loops and conditional branching. To those, were added expressions related to array creation (x = allocate(y)), manipulation (x[1] = 9) and destruction (free(x)). The original translation function also needed some modifications to migrate program with array definitions from L1 to L2. Indeed, the original translation function could not handle a single variable having multiple definitions at different offsets (indexes).
[1] Mark Weiser,et al. Program Slicing , 1981, IEEE Transactions on Software Engineering.
[2] 情報処理学会,et al. Emerging technologies and new challenges in Information Society : the proceedings of 2000 International Conference on Information Society in the 21st Century (IS2000) : the University of Aizu, Aizu-Wakamatsu City, Fukushima, Japan, November 5-8, 2000 , 2000 .
[3] Bjarne Steensgaard. Points-to Analysis by Type Inference of Programs with Structures and Unions , 1996, CC.