33 research outputs found

    BCFA: Bespoke Control Flow Analysis for CFA at Scale

    Full text link
    Many data-driven software engineering tasks such as discovering programming patterns, mining API specifications, etc., perform source code analysis over control flow graphs (CFGs) at scale. Analyzing millions of CFGs can be expensive and performance of the analysis heavily depends on the underlying CFG traversal strategy. State-of-the-art analysis frameworks use a fixed traversal strategy. We argue that a single traversal strategy does not fit all kinds of analyses and CFGs and propose bespoke control flow analysis (BCFA). Given a control flow analysis (CFA) and a large number of CFGs, BCFA selects the most efficient traversal strategy for each CFG. BCFA extracts a set of properties of the CFA by analyzing the code of the CFA and combines it with properties of the CFG, such as branching factor and cyclicity, for selecting the optimal traversal strategy. We have implemented BCFA in Boa, and evaluated BCFA using a set of representative static analyses that mainly involve traversing CFGs and two large datasets containing 287 thousand and 162 million CFGs. Our results show that BCFA can speedup the large scale analyses by 1%-28%. Further, BCFA has low overheads; less than 0.2%, and low misprediction rate; less than 0.01%.Comment: 12 page

    Influence of pharmacogenetics on response and toxicity in breast cancer patients treated with doxorubicin and cyclophosphamide

    Get PDF
    BACKGROUND: Doxorubicin and cyclophosphamide (AC) therapy is an effective treatment for early-stage breast cancer. Doxorubicin is a substrate for ABCB1 and SLC22A16 transporters. Cyclophosphamide is a prodrug that requires oxidation to 4-hydroxy-cyclophosphamide, which yields a cytotoxic alkylating agent. The initial oxidation is catalysed by cytochrome P450 enzymes including CYP2B6, CYP2C9, CYP2C19 and CYP3A5. Polymorphic variants of the genes coding for these enzymes and transporters have been identified, which may influence the systemic pharmacology of the two drugs. It is not known whether this genetic variation has an impact on the efficacy or toxicity of AC therapy. METHODS: Germ line DNA samples from 230 patients with breast cancer on AC therapy were genotyped for the following SNPs: ABCB1 C1236T, G2677T/A and C3435T, SLC22A16 A146G, T312C, T755C and T1226C, CYP2B6*2, *8, *9, *3, *4 and *5, CYP2C9*2 and *3, CYP3A5*3 and CYP2C19*2. Clinical data on survival, toxicity, demographics and pathology were collated. RESULTS: A lower incidence of dose delay, indicative of less toxicity, was seen in carriers of the SLC22A16 A146G, T312C, T755C variants. In contrast, a higher incidence of dose delay was seen in carriers of the SLC22A16 1226C, CYP2B6*2 and CYP2B6*5 alleles. The ABCB1 2677A, CYP2B6*2, CYP 2B6*8, CYP 2B6*9, CYP 2B6*4 alleles were associated with a worse outcome. CONCLUSION: Variant alleles in the ABCB1, SLC22A16 and CYP2B6 genes are associated with response to AC therapy in the treatment of breast cancer

    Automating and evaluating assume -guarantee reasoning

    No full text
    Software systems are taking on an increasingly important role in society and are being used in critical applications where their failure could result in human casualties or substantial economic loss. Thus, it is important to validate software systems to ensure their quality. One technique for validating software systems is finite-state verification, in which a finite model of a system is analyzed to ensure that it satisfies a property that specifies a desired system behavior. Unfortunately, the cost of finite-state verification can be exponential in the size of the system being analyzed. Compositional analysis is a divide-and-conquer approach to verification that aims to reduce the cost of verification. One proposed compositional technique is assume-guarantee reasoning. With this technique a system is decomposed into subsystems and these subsystems are analyzed individually. By composing the results of these analyses, it can be determined whether or not a system satisfies a property. Because each subsystem is smaller than the whole system, analyzing each subsystem individually may reduce the overall cost of verification. Often the behavior of a subsystem is dependent on the subsystems with which it interacts, and thus it is usually necessary to provide assumptions about the environment in which a subsystem executes. Because developing assumptions has been a difficult manual task, the evaluation of assume-guarantee reasoning has been limited. In this thesis we present an algorithm that automatically learns assumptions. Using this algorithm, we undertook a study to determine if assume-guarantee reasoning provides an advantage over monolithic verification. Using two different verifiers, we considered all two-way decompositions for a set of systems and properties. By increasing the number of repeated tasks in these systems, we evaluated the decompositions as they were scaled. We found that in only a few cases can assume-guarantee reasoning verify properties on larger systems than monolithic verification can and in these cases the systems that can be analyzed are only a few sizes larger. Although these results are discouraging, they provide insight about research directions that should be pursued and highlight the importance of experimental evaluation

    model checking

    No full text
    Finite-state verification techniques are often hampered by the stateexplosion problem. One proposed approach for addressing this problem is assume-guarantee reasoning. We were interested in determining if assume-guarantee reasoning could provide an advantage over monolithic verification. Using recent advances in assume-guarantee reasoning that automatically generate assumptions, we undertook a study that considered all two-way decompositions for a set of systems and properties, using two different verifiers. By increasing the number of repeated tasks for a system, we evaluated the decompositions as the systems were scaled. In very few cases were we able to show that assume-guarantee reasoning could verify properties on larger systems than monolithic verification could. Additionally, assume-guarantee reasoning could only verify these properties on systems a few sizes larger than monolithic verification. This negative result, although preliminary, raises doubts about the usefulness of assume-guarantee reasoning as an effective technique

    Learning assumptions for compositional verification

    No full text
    Abstract. Compositional verification is a promising approach to addressing the state explosion problem associated with model checking. One compositional technique advocates proving properties of a system by checking properties of its components in an assume-guarantee style. However, the application of this technique is difficult because it involves non-trivial human input. This paper presents a novel framework for performing assume-guarantee reasoning in an incremental and fully automated fashion. To check a component against a property, our approach generates assumptions that the environment needs to satisfy for the property to hold. These assumptions are then discharged on the rest of the system. Assumptions are computed by a learning algorithm. They are initially approximate, but become gradually more precise by means of counterexamples obtained by model checking the component and its environment, alternately. This iterative process may at any stage conclude that the property is either true or false in the system. We have implemented our approach in the LTSA tool and applied it to a NASA system
    corecore