| OCR Text |
Show 20 a description of values returned by functions. Constructing the description as a set of values, as is the case for imperative languages [14) is unsatisfactory. Nonstrict functions may yield useful results on being applied to expressions whose evaluation does not terminate. Hence the description may need to take termination into account [48). To do so consistently forces us to consider sets with an order-structure of the kind familiar in work on indeterminacy [52). Fur-ther, in dealing with nonflat domains, as we do, the sets have a more complex order structure than is the case with flat domains, somewhat independent of whether or not termination is of interest. The standard denotation of a function definition f is written ([t]]:D - > R. The use of abstraction functions, which "simplify" the domain and range of a function, are central to our approach. Abstraction maps Abs 1 :D - > A 1 and Abs2:R - > A2, capture aspects of the domain D and range R in "simpler" domains A 1 and A2 (for a description of "acceptable" abstraction maps see sec-tion 2.3). Clearly, A 1 and A2 should capture some characteristic of the domain (D) and range (R) which are of interest. We then interpret [[f)] as a function, ei-ther from A 1 to A2, or from more complex domains constructed out of A 1 and A2. Depending on the structure of the underlying domains {A 1 and A2), several such interpretations may be available. We describe one such interpretation below; a complete discussion may be found in Section 2.3. The union-based interpretation interprets [[f]] as a function from the powerdomai n of A 1 (written PD[A 1]) to PD[A2). While [48] has earlier given a similar construction for flat· domains, a number of difficulties arise in develop-ing such a construction for nonflat domains [57, 7). In this paper, we confine - our work to usi.ng a standard p.owerdomain construction which is well behaved for finite A 1 and A2. Many, but not all, computationally effective abstract inter-pretations involve such domains. As our examples involve only finite A 1 and A2, the construction yields the necessary theoretical framework. * A flat domain is one '" whocn • < v •mpltes x = .J.... or x = y |