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, [Lscr ]1 and [Lscr ]2, are extensions of the languages introduced by  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 = 9) and destruction (free(x)). The original translation function also needed some modifications to migrate program with array definitions from [Lscr ]1 to [Lscr ]2. Indeed, the original translation function could not handle a single variable having multiple definitions at different offsets (indexes).
IOS Press, Inc.
6751 Tepper Drive
Clifton, VA 20124
Tel.: +1 703 830 6300
Fax: +1 703 830 2300 firstname.lastname@example.org
(Corporate matters and books only) IOS Press c/o Accucoms US, Inc.
For North America Sales and Customer Service
West Point Commons
Lansdale PA 19446
Tel.: +1 866 855 8967
Fax: +1 215 660 5042 email@example.com