Static Backward Demand-Driven Slicing
PROCEEDINGS OF THE 2015 ACM SIGPLAN WORKSHOP ON PARTIAL EVALUATION AND PROGRAM MANIPULATION (PEPM'15)
Authors: Lisper, Bjorn; Masud, Abu Naser; Khanfar, Husni
Abstract
Program slicing identifies the program parts that may affect certain properties of the program, such as the outcomes of conditions affecting the program flow. Ottenstein's Program Dependence Graph (PDG) based algorithm is the state-of-practice for static slicing today: it is well-suited in applications where many slices are computed, since the cost of building the PDG then can be amortized over the slices. But there are applications that require few slices of a given program, and where computing all the dependencies may be unnecessary. We present a light-weight interprocedural algorithm for backward static slicing where the data dependence analysis is done using a variant of the Strongly Live Variables (SLV) analysis. This allows us to avoid building the Data Dependence Graph, and to slice program statements "on-the-fly" during the SLV analysis which is potentially faster for computing few slices. Furthermore we use an abstract interpretation-based value analysis to extend our slicing algorithm to slice low-level code, where data dependencies are not evident due to dynamically calculated addresses. Our algorithm computes slices as sets of Control Flow Graph nodes: we show how to adapt existing techniques to generate executable slices that correspond to semantically correct code, where jump statements have been inserted at appropriate places. We have implemented our slicing algorithms, and made an experimental evaluation comparing them with the standard PDG-based algorithm for a number of example programs. We obtain the same accuracy as for PDG-based slicing, sometimes with substantial improvements in performance.
Hormonal correlates of development and natal dispersal in wild female owl monkeys (Aotus azarae) of Argentina
HORMONES AND BEHAVIOR
Authors: Corley, Margaret; Valeggia, Claudia; Fernandez-Duque, Eduardo
Abstract
Pair-living and socially monogamous primates typically do not reproduce before dispersing. It is currently unclear whether this reproductive suppression is due to endocrine or behavioral mechanisms. Cooperatively breeding taxa, like callitrichids, may forego reproduction in natal groups because they reap inclusive fitness benefits and/or they are avoiding inbreeding. However, neither of these benefits of delayed reproduction appear to adequately explain the lack of reproduction prior to leaving the natal group in pair-living monogamous species. In this study, we determined whether wild Azara's owl monkeys (Aotus azarae) in the Argentinean Chaco establish reproductive maturity prior to dispersing. We utilized 635 fecal extracts to characterize reproductive hormone profiles of 11 wild juvenile and subadult females using enzyme immunoassays. Subadult females showed hormone profiles indicative of ovulatory cycling and had mean PdG and E1G concentrations approximately five times higher than juveniles. Contrary to expectations from the inbreeding avoidance hypothesis, female owl monkeys do not delay puberty, but rather commence ovarian cycling while residing in their natal group. Still, subadults appear to have a period during which they experience irregular, non-conceptive cycles prior to reproducing. Commencing these irregular cycles in the natal group may allow them to develop a state of suspended readiness, which could be essential to securing a mate, while avoiding costs of ranging solitarily. Our results indicate that reproductive suppression in female owl monkeys is not due to endocrine suppression. We suggest that adults likely use behavioral mechanisms to prevent subadults from reproducing with unrelated adult males in their natal group.