10 research outputs found
Invariant-based Program Repair
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 and , where
represents the set of likely invariants (good patterns)
required for a run to be successful and 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
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
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
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"
<pre><strong>Replication package for "Extending the Range of Bugs That Automated Program Repair Can Handle"</strong>
This repository contains the replication package for the paper <br>
<em>Extending the Range of Bugs That Automated Program Repair Can Handle</em><br>Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas.
Published in the Journal of System and Software (JSS). 2023.
DOI: <a href="https://doi.org/10.1016/j.jss.2023.111918" target="_blank" rel="noopener">10.1016/j.jss.2023.111918</a>
<strong>How to install</strong>
Pull the docker container from DockerHub or build it using the Dockerfile in <br>the project root directory.
<code> docker pull linasvidz/extending-apr</code>
<br><strong>How to run</strong>
<code> docker run -it -w /opt/Bugs/ linasvidz/extending-apr /bin/bash</code>
The docker container already contains the configured buggy projects. <br>The configurations for the termination bugs have been generated by the <br>~Repair/generate_project.sh~ script.
To perform repair on a pre-configured bug, enter the bug's root directory <br>and run the following command:
<code> cd /opt/Bugs/termination/Adding_Subtracting_Zero_1_NT.c && genprog configuration
</code>
<strong>Directory structure</strong>
<code>.
├── Bugs Buggy source code and generated patches
│ ├── performance-elaborate Elaborate performance bug
│ ├── performance-simple Simple performance bug
│ └── termination Termination bugs
├── Repair Source code
├── Dockerfile
├── LICENSE
├── Makefile
├── README.md
└── termination.prp Termination property for UAutomizer</code>
<strong>License</strong>
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.
<strong>Citation and Zenodo links</strong>
Please site this work by referring to the paper:
<em>Extending the Range of Bugs That Automated Program Repair Can Handle</em><br>Omar I. Al-Bataineh, Leon Moonen and Linas Vidziunas.
Published in the Journal of System and Software (JSS). 2023.
DOI: <a href="https://doi.org/10.1016/j.jss.2023.111918" target="_blank" rel="noopener">10.1016/j.jss.2023.111918</a></pre>
<pre><code>@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},<br> publisher = {Elsevier},
keywords = {automated program repair, bug classification, hybrid techniques, <br> non-observable and liveness bugs},
doi = {10.1016/j.jss.2023.111918},
}</code>
The GitHub repository containing the code to automatically collect the
dataset can be found at <a href="https://github.com/secureIT-project/extendingAPR" target="_blank" rel="noopener">https://github.com/secureIT-project/extendingAPR</a>,
released with DOI: <a href="https://doi.org/10.5281/zenodo.10397656" target="_blank" rel="noopener">10.5281/zenodo.10397656</a>.
</pre><pre><strong>Acknowledgement</strong><br><br>This work has been financially supported by the Research Council of
Norway through the secureIT project (RCN contract #288787).</pre>
Verifix: Verified Repair of Programming Assignments
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
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
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