10 research outputs found

    Invariant-based Program Repair

    Full text link
    This paper describes a formal general-purpose automated program repair (APR) framework based on the concept of program invariants. In the presented repair framework, the execution traces of a defected program are dynamically analyzed to infer specifications φcorrect\varphi_{correct} and φviolated\varphi_{violated}, where φcorrect\varphi_{correct} represents the set of likely invariants (good patterns) required for a run to be successful and φviolated\varphi_{violated} represents the set of likely suspicious invariants (bad patterns) that result in the bug in the defected program. These specifications are then refined using rigorous program analysis techniques, which are also used to drive the repair process towards feasible patches and assess the correctness of generated patches.We demonstrate the usefulness of leveraging invariants in APR by developing an invariant-based repair system for performance bugs. The initial analysis shows the effectiveness of invariant-based APR in handling performance bugs by producing patches that ensure program's efficiency increase without adversely impacting its functionality.Comment: Accepted for publication in the 27th International Conference on Fundamental Approaches to Software Engineering (FASE 2024

    Towards Extending the Range of Bugs That Automated Program Repair Can Handle

    Full text link
    Modern automated program repair (APR) is well-tuned to finding and repairing bugs that introduce observable erroneous behavior to a program. However, a significant class of bugs does not lead to such observable behavior (e.g., liveness/termination bugs, non-functional bugs, and information flow bugs). Such bugs can generally not be handled with current APR approaches, so, as a community, we need to develop complementary techniques. To stimulate the systematic study of alternative APR approaches and hybrid APR combinations, we devise a novel bug classification system that enables methodical analysis of their bug detection power and bug repair capabilities. To demonstrate the benefits, we analyze the repair of termination bugs in sequential and concurrent programs. The study shows that integrating dynamic APR with formal analysis techniques, such as termination provers and software model checkers, reduces complexity and improves the overall reliability of these repairs.Comment: Accepted for publication in the 22nd IEEE International Conference on Software Quality, Reliability and Security (QRS 2022

    Verifix: Verified Repair of Programming Assignments

    Full text link
    Automated feedback generation for introductory programming assignments is useful for programming education. Most works try to generate feedback to correct a student program by comparing its behavior with an instructor's reference program on selected tests. In this work, our aim is to generate verifiably correct program repairs as student feedback. The student assignment is aligned and composed with a reference solution in terms of control flow, and differences in data variables are automatically summarized via predicates to relate the variable names. Failed verification attempts for the equivalence of the two programs are exploited to obtain a collection of maxSMT queries, whose solutions point to repairs of the student assignment. We have conducted experiments on student assignments curated from a widely deployed intelligent tutoring system. Our results indicate that we can generate verified feedback in up to 58% of the assignments. More importantly, our system indicates when it is able to generate a verified feedback, which is then usable by novice students with high confidence

    Mortality from gastrointestinal congenital anomalies at 264 hospitals in 74 low-income, middle-income, and high-income countries: a multicentre, international, prospective cohort study

    Get PDF
    Summary Background Congenital anomalies are the fifth leading cause of mortality in children younger than 5 years globally. Many gastrointestinal congenital anomalies are fatal without timely access to neonatal surgical care, but few studies have been done on these conditions in low-income and middle-income countries (LMICs). We compared outcomes of the seven most common gastrointestinal congenital anomalies in low-income, middle-income, and high-income countries globally, and identified factors associated with mortality. Methods We did a multicentre, international prospective cohort study of patients younger than 16 years, presenting to hospital for the first time with oesophageal atresia, congenital diaphragmatic hernia, intestinal atresia, gastroschisis, exomphalos, anorectal malformation, and Hirschsprung’s disease. Recruitment was of consecutive patients for a minimum of 1 month between October, 2018, and April, 2019. We collected data on patient demographics, clinical status, interventions, and outcomes using the REDCap platform. Patients were followed up for 30 days after primary intervention, or 30 days after admission if they did not receive an intervention. The primary outcome was all-cause, in-hospital mortality for all conditions combined and each condition individually, stratified by country income status. We did a complete case analysis. Findings We included 3849 patients with 3975 study conditions (560 with oesophageal atresia, 448 with congenital diaphragmatic hernia, 681 with intestinal atresia, 453 with gastroschisis, 325 with exomphalos, 991 with anorectal malformation, and 517 with Hirschsprung’s disease) from 264 hospitals (89 in high-income countries, 166 in middleincome countries, and nine in low-income countries) in 74 countries. Of the 3849 patients, 2231 (58·0%) were male. Median gestational age at birth was 38 weeks (IQR 36–39) and median bodyweight at presentation was 2·8 kg (2·3–3·3). Mortality among all patients was 37 (39·8%) of 93 in low-income countries, 583 (20·4%) of 2860 in middle-income countries, and 50 (5·6%) of 896 in high-income countries (p<0·0001 between all country income groups). Gastroschisis had the greatest difference in mortality between country income strata (nine [90·0%] of ten in lowincome countries, 97 [31·9%] of 304 in middle-income countries, and two [1·4%] of 139 in high-income countries; p≤0·0001 between all country income groups). Factors significantly associated with higher mortality for all patients combined included country income status (low-income vs high-income countries, risk ratio 2·78 [95% CI 1·88–4·11], p<0·0001; middle-income vs high-income countries, 2·11 [1·59–2·79], p<0·0001), sepsis at presentation (1·20 [1·04–1·40], p=0·016), higher American Society of Anesthesiologists (ASA) score at primary intervention (ASA 4–5 vs ASA 1–2, 1·82 [1·40–2·35], p<0·0001; ASA 3 vs ASA 1–2, 1·58, [1·30–1·92], p<0·0001]), surgical safety checklist not used (1·39 [1·02–1·90], p=0·035), and ventilation or parenteral nutrition unavailable when needed (ventilation 1·96, [1·41–2·71], p=0·0001; parenteral nutrition 1·35, [1·05–1·74], p=0·018). Administration of parenteral nutrition (0·61, [0·47–0·79], p=0·0002) and use of a peripherally inserted central catheter (0·65 [0·50–0·86], p=0·0024) or percutaneous central line (0·69 [0·48–1·00], p=0·049) were associated with lower mortality. Interpretation Unacceptable differences in mortality exist for gastrointestinal congenital anomalies between lowincome, middle-income, and high-income countries. Improving access to quality neonatal surgical care in LMICs will be vital to achieve Sustainable Development Goal 3.2 of ending preventable deaths in neonates and children younger than 5 years by 2030

    Replication package for "Extending the Range of Bugs That Automated Program Repair Can Handle"

    No full text
    &lt;pre&gt;&lt;strong&gt;Replication package for "Extending the Range of Bugs That Automated Program Repair Can Handle"&lt;/strong&gt; This repository contains the replication package for the paper &lt;br&gt; &lt;em&gt;Extending the Range of Bugs That Automated Program Repair Can Handle&lt;/em&gt;&lt;br&gt;Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas. Published in the Journal of System and Software (JSS). 2023. DOI: &lt;a href="https://doi.org/10.1016/j.jss.2023.111918" target="_blank" rel="noopener"&gt;10.1016/j.jss.2023.111918&lt;/a&gt; &lt;strong&gt;How to install&lt;/strong&gt; Pull the docker container from DockerHub or build it using the Dockerfile in &lt;br&gt;the project root directory. &lt;code&gt; docker pull linasvidz/extending-apr&lt;/code&gt; &lt;br&gt;&lt;strong&gt;How to run&lt;/strong&gt; &lt;code&gt; docker run -it -w /opt/Bugs/ linasvidz/extending-apr /bin/bash&lt;/code&gt; The docker container already contains the configured buggy projects. &lt;br&gt;The configurations for the termination bugs have been generated by the &lt;br&gt;~Repair/generate_project.sh~ script. To perform repair on a pre-configured bug, enter the bug's root directory &lt;br&gt;and run the following command: &lt;code&gt; cd /opt/Bugs/termination/Adding_Subtracting_Zero_1_NT.c &amp;&amp; genprog configuration &lt;/code&gt; &lt;strong&gt;Directory structure&lt;/strong&gt; &lt;code&gt;. ├── Bugs Buggy source code and generated patches │&nbsp;&nbsp; ├── performance-elaborate Elaborate performance bug │&nbsp;&nbsp; ├── performance-simple Simple performance bug │&nbsp;&nbsp; └── termination Termination bugs ├── Repair Source code ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md └── termination.prp Termination property for UAutomizer&lt;/code&gt; &lt;strong&gt;License&lt;/strong&gt; All files in this repository are distributed under the MIT license, except for the termination bugs in the folder `Bugs/termination`. These originate from https://github.com/FSE2022benchmarks/termination, which is distributed under the GPL3 license. &lt;strong&gt;Citation and Zenodo links&lt;/strong&gt; Please site this work by referring to the paper:&nbsp; &lt;em&gt;Extending the Range of Bugs That Automated Program Repair Can Handle&lt;/em&gt;&lt;br&gt;Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas. Published in the Journal of System and Software (JSS). 2023. DOI: &lt;a href="https://doi.org/10.1016/j.jss.2023.111918" target="_blank" rel="noopener"&gt;10.1016/j.jss.2023.111918&lt;/a&gt;&lt;/pre&gt; &lt;pre&gt;&lt;code&gt;@article{bataineh2023:extending, title = {Extending the Range of Bugs That Automated Program Repair Can Handle}, author = {Omar I. {Al-Bataineh} and Moonen, Leon and Vidziunas, Linas} journal = {Journal of Systems and Software (JSS)}, year = {2023}, pages = {111918},&lt;br&gt; publisher = {Elsevier}, keywords = {automated program repair, bug classification, hybrid techniques, &lt;br&gt; non-observable and liveness bugs}, doi = {10.1016/j.jss.2023.111918}, }&lt;/code&gt; The GitHub repository containing the code to automatically collect the dataset can be found at &lt;a href="https://github.com/secureIT-project/extendingAPR" target="_blank" rel="noopener"&gt;https://github.com/secureIT-project/extendingAPR&lt;/a&gt;, released with DOI: &lt;a href="https://doi.org/10.5281/zenodo.10397656" target="_blank" rel="noopener"&gt;10.5281/zenodo.10397656&lt;/a&gt;. &lt;/pre&gt;&lt;pre&gt;&lt;strong&gt;Acknowledgement&lt;/strong&gt;&lt;br&gt;&lt;br&gt;This work has been financially supported by the Research Council of Norway through the secureIT project (RCN contract #288787).&lt;/pre&gt

    Verifix: Verified Repair of Programming Assignments

    No full text
    Automated feedback generation for introductory programming assignments is useful for programming education. Most works try to generate feedback to correct a student program by comparing its behavior with an instructor???s reference program on selected tests. In this work, our aim is to generate verifiably correct program repairs as student feedback. A student-submitted program is aligned and composed with a reference solution in terms of control flow, and the variables of the two programs are automatically aligned via predicates describing the relationship between the variables. When verification attempt for the obtained aligned program fails, we turn a verification problem into a MaxSMT problem whose solution leads to a minimal repair. We have conducted experiments on student assignments curated from a widely deployed intelligent tutoring system. Our results show that generating verified repair without sacrificing the overall repair rate is possible. In fact, our implementation, Verifix, is shown to outperform Clara, a state-of-the-art tool, in terms of repair rate. This shows the promise of using verified repair to generate high confidence feedback in programming pedagogy settings

    Thigh-length compression stockings and DVT after stroke

    Get PDF
    Controversy exists as to whether neoadjuvant chemotherapy improves survival in patients with invasive bladder cancer, despite randomised controlled trials of more than 3000 patients. We undertook a systematic review and meta-analysis to assess the effect of such treatment on survival in patients with this disease

    Azithromycin in patients admitted to hospital with COVID-19 (RECOVERY): a randomised, controlled, open-label, platform trial

    Get PDF
    Background Azithromycin has been proposed as a treatment for COVID-19 on the basis of its immunomodulatory actions. We aimed to evaluate the safety and efficacy of azithromycin in patients admitted to hospital with COVID-19. Methods In this randomised, controlled, open-label, adaptive platform trial (Randomised Evaluation of COVID-19 Therapy [RECOVERY]), several possible treatments were compared with usual care in patients admitted to hospital with COVID-19 in the UK. The trial is underway at 176 hospitals in the UK. Eligible and consenting patients were randomly allocated to either usual standard of care alone or usual standard of care plus azithromycin 500 mg once per day by mouth or intravenously for 10 days or until discharge (or allocation to one of the other RECOVERY treatment groups). Patients were assigned via web-based simple (unstratified) randomisation with allocation concealment and were twice as likely to be randomly assigned to usual care than to any of the active treatment groups. Participants and local study staff were not masked to the allocated treatment, but all others involved in the trial were masked to the outcome data during the trial. The primary outcome was 28-day all-cause mortality, assessed in the intention-to-treat population. The trial is registered with ISRCTN, 50189673, and ClinicalTrials.gov, NCT04381936. Findings Between April 7 and Nov 27, 2020, of 16 442 patients enrolled in the RECOVERY trial, 9433 (57%) were eligible and 7763 were included in the assessment of azithromycin. The mean age of these study participants was 65·3 years (SD 15·7) and approximately a third were women (2944 [38%] of 7763). 2582 patients were randomly allocated to receive azithromycin and 5181 patients were randomly allocated to usual care alone. Overall, 561 (22%) patients allocated to azithromycin and 1162 (22%) patients allocated to usual care died within 28 days (rate ratio 0·97, 95% CI 0·87–1·07; p=0·50). No significant difference was seen in duration of hospital stay (median 10 days [IQR 5 to >28] vs 11 days [5 to >28]) or the proportion of patients discharged from hospital alive within 28 days (rate ratio 1·04, 95% CI 0·98–1·10; p=0·19). Among those not on invasive mechanical ventilation at baseline, no significant difference was seen in the proportion meeting the composite endpoint of invasive mechanical ventilation or death (risk ratio 0·95, 95% CI 0·87–1·03; p=0·24). Interpretation In patients admitted to hospital with COVID-19, azithromycin did not improve survival or other prespecified clinical outcomes. Azithromycin use in patients admitted to hospital with COVID-19 should be restricted to patients in whom there is a clear antimicrobial indication. Funding UK Research and Innovation (Medical Research Council) and National Institute of Health Research
    corecore