VLDB 2026 Research / reviewers in the wild / expert
John P. Gallagher
dblp:g/JPGallagher
· DBLP profile ↗
43ranked-venue papers
15as first author
4since 2021 · last 2023
0000-0001-6984-7419ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 37 · 13 first-author · 4 since 2021Theory of computation · 21 · 9 first-author · 1 since 2021Artificial intelligence and machine learning · 3 · 2 first-authorDatabases, data management, data science and information retrieval · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 first-authorHuman-computer interaction and ubiquitous computing · 1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2023 | Transforming Big-Step to Small-Step Semantics Using Interpreter Specialisation
John P. Gallagher, Manuel V. Hermenegildo, José F. Morales 0001, Pedro López-García 0001 |
LOPSTR | 1 |
| 2023 | Combatting Energy Issues for Mobile ApplicationsabstractEnergy efficiency is an important criterion to judge the quality of mobile apps, but one third of our arbitrarily sampled apps suffer from energy issues that can quickly drain battery power. To understand these issues, we conduct an empirical study on 36 well-maintained apps such as Chrome and Firefox, whose issue tracking systems are publicly accessible. Our study involves issue causes, manifestation, fixing efforts, detection techniques, reasons of no-fixes, and debugging techniques. Inspired by the empirical study, we propose a novel testing framework for detecting energy issues in real-world mobile apps. Our framework examines apps with well-designed input sequences and runtime context. We develop leading edge technologies, e.g., pre-designing input sequences with potential energy overuse and tuning tests on-the-fly, to achieve high efficacy in detecting energy issues. A large-scale evaluation shows that 90.4% of the detected issues in our experiments were previously unknown to developers. On average, these issues can double the energy consumption of the test cases where the issues were detected. And our test achieves a low number of false positives. Finally, we show how our test reports can help developers fix the issues. Xueliang Li 0002, Junyang Chen 0001, Yepang Liu 0001, Kaishun Wu, John P. Gallagher |
ACM Trans. Softw. Eng. Methodol. | 5 |
| 2022 | Analysis and Transformation of Constrained Horn Clauses for Program VerificationabstractAbstract This paper surveys recent work on applying analysis and transformation techniques that originate in the field of constraint logic programming (CLP) to the problem of verifying software systems. We present specialization-based techniques for translating verification problems for different programming languages, and in general software systems, into satisfiability problems for constrained Horn clauses (CHCs), a term that has become popular in the verification field to refer to CLP programs. Then, we describe static analysis techniques for CHCs that may be used for inferring relevant program properties, such as loop invariants. We also give an overview of some transformation techniques based on specialization and fold/unfold rules, which are useful for improving the effectiveness of CHC satisfiability tools. Finally, we discuss future developments in applying these techniques. Emanuele De Angelis, Fabio Fioravanti, John P. Gallagher, Manuel V. Hermenegildo, Alberto Pettorossi, Maurizio Proietti |
Theory Pract. Log. Program. | 3 |
| 2021 | Preface
John P. Gallagher, Martin Sulzmann |
Sci. Comput. Program. | 1 |
| 2020 | Detecting and diagnosing energy issues for mobile applicationsabstractEnergy efficiency is an important criterion to judge the quality of mobile apps, but one third of our randomly sampled apps suffer from energy issues that can quickly drain battery power. To understand these issues, we conducted an empirical study on 27 well-maintained apps such as Chrome and Firefox, whose issue tracking systems are publicly accessible. Our study revealed that the main root causes of energy issues include unnecessary workload and excessively frequent operations. Surprisingly, these issues are beyond the application of present technology on energy issue detection. We also found that 25.0% of energy issues can only manifest themselves under specific contexts such as poor network performance, but such contexts are again neglected by present technology. In this paper, we propose a novel testing framework for detecting energy issues in real-world mobile apps. Our framework examines apps with well-designed input sequences and runtime contexts. To identify the root causes mentioned above, we employed a machine learning algorithm to cluster the workloads and further evaluate their necessity. For the issues concealed by the specific contexts, we carefully set up several execution contexts to catch them. More importantly, we designed leading edge technology, e.g. pre-designing input sequences with potential energy overuse and tuning tests on-the-fly, to achieve high efficacy in detecting energy issues. A large-scale evaluation shows that 91.6% issues detected in our experiments were previously unknown to developers. On average, these issues double the energy costs of the apps. Our testing technique achieves a low number of false positives. Xueliang Li 0002, Yepang Liu 0001, John P. Gallagher, Kaishun Wu |
ISSTA | 4 |
| 2020 | PrefaceabstractSpecial Issue on the 27th International Symposium on Logic-based Program Synthesis and Transformation: LOPSTR 2017. Fabio Fioravanti, John P. Gallagher, Maurizio Proietti |
Fundam. Informaticae | 2 |
| 2019 | A General Framework for Static Cost Analysis of Parallel Logic Programs
Maximiliano Klemen, Pedro López-García 0001, John P. Gallagher, José F. Morales 0001, Manuel V. Hermenegildo |
LOPSTR | 3 |
| 2019 | Control-Flow Refinement by Partial Evaluation, and its Application to Termination and Cost AnalysisabstractAbstract Control-flow refinement refers to program transformations whose purpose is to make implicit control-flow explicit, and is used in the context of program analysis to increase precision. Several techniques have been suggested for different programming models, typically tailored to improving precision for a particular analysis. In this paper we explore the use of partial evaluation of Horn clauses as a general-purpose technique for control-flow refinement for integer transitions systems. These are control-flow graphs where edges are annotated with linear constraints describing transitions between corresponding nodes, and they are used in many program analysis tools. Using partial evaluation for control-flow refinement has the clear advantage over other approaches in that soundness follows from the general properties of partial evaluation; in particular, properties such as termination and complexity are preserved. We use a partial evaluation algorithm incorporating property-based abstraction, and show how the right choice of properties allows us to prove termination and to infer complexity of challenging programs that cannot be handled by state-of-the-art tools. We report on the integration of the technique in a termination analyzer, and its use as a preprocessing step for several cost analyzers. Jesús Doménech, John P. Gallagher, Samir Genaim |
Theory Pract. Log. Program. | 2 |
| 2018 | Tree dimension in verification of constrained Horn clauses
Bishoksan Kafle, John P. Gallagher, Pierre Ganty |
Theory Pract. Log. Program. | 2 |
| 2018 | An iterative approach to precondition inference using constrained Horn clausesabstractAbstract We present a method for automatic inference of conditions on the initial states of a program that guarantee that the safety assertions in the program are not violated. Constrained Horn clauses (CHCs) are used to model the program and assertions in a uniform way, and we use standard abstract interpretations to derive an over-approximation of the set ofunsafeinitial states. The precondition then is the constraint corresponding to the complement of that set, under-approximating the set ofsafeinitial states. This idea of complementation is not new, but previous attempts to exploit it have suffered from the loss of precision. Here we develop an iterative specialisation algorithm to give more precise, and in some cases optimal safety conditions. The algorithm combines existing transformations, namely constraint specialisation, partial evaluation and a trace elimination transformation. The last two of these transformations perform polyvariant specialisation, leading to disjunctive constraints which improve precision. The algorithm is implemented and tested on a benchmark suite of programs from the literature in precondition inference and software verification competitions. Bishoksan Kafle, John P. Gallagher, Graeme Gange, Peter Schachte, Harald Søndergaard, Peter J. Stuckey |
Theory Pract. Log. Program. | 2 |
| 2017 | Horn clause verification with convex polyhedral abstraction and tree automata-based refinement
Bishoksan Kafle, John P. Gallagher |
Comput. Lang. Syst. Struct. | 2 |
| 2017 | Constraint specialisation in Horn clause verification
Bishoksan Kafle, John P. Gallagher |
Sci. Comput. Program. | 2 |
| 2016 | Rahft: A Tool for Verifying Horn Clauses Using Abstract Interpretation and Finite Tree Automata
Bishoksan Kafle, John P. Gallagher, José F. Morales 0001 |
CAV (1) | 2 |
| 2016 | Fine-Grained Energy Modeling for the Source Code of a Mobile ApplicationabstractThe goal of an energy model for source code is to lay a foundation for the application of energy-aware programming techniques. State of the art solutions are based on source-line energy information. In this paper, we present an approach to constructing a fine-grained energy model which is able to provide operation-related information that is more valuable for guiding code-optimization than source-line information. The modeling is enabled by a set of novel and practical techniques such as source-level operation identification, block-varied execution-case design and measurement variability control. Using the model we observed several counter-intuitive effects, e.g., in a common game scenario, control flow operations consume around 38% of the total CPU energy use, while arithmetic operations consume only 6%. Our model is being integrated into a source-level energy-optimization approach, which we briefly describe and the paper includes a case study to illustrate how the model guides energy optimization. Xueliang Li 0002, John P. Gallagher |
MobiQuitous | 2 |
| 2016 | A Source-Level Energy Optimization Framework for Mobile ApplicationsabstractEnergy efficiency can have a significant influence on user experience of mobile devices such as smartphones and tablets. Although energy is consumed by hardware, software optimization plays an important role in saving energy, and thus software developers have to participate in the optimization process. The source code is the interface between the developer and hardware resources. In this paper, we propose an energy-optimization framework guided by a source code energy model that allows developers to be aware of energy usage induced by the code and to apply very targeted source-level refactoring strategies. The framework also lays a foundation for the code optimization by automatic tools. To the best of our knowledge, our work is the first that achieves this for a high-level language such as Java. In a case study, the experimental evaluation shows that our approach is able to save from 6.4% to 50.2% of the CPU energy consumption in various application scenarios. Xueliang Li 0002, John P. Gallagher |
SCAM | 2 |
| 2015 | Constraint Specialisation in Horn Clause VerificationabstractWe present a method for specialising the constraints in constrained Horn clauses with respect to a goal. We use abstract interpretation to compute a model of a query-answer transformation of a given set of clauses and a goal. The effect is to propagate the constraints from the goal top-down and propagate answer constraints bottom-up. Our approach does not unfold the clauses at all; we use the constraints from the model to compute a specialised version of each clause in the program. The approach is independent of the abstract domain and the constraints theory underlying the clauses. Experimental results on verification problems show that this is an effective transformation, both in our own verification tools (convex polyhedra analyser) and as a pre-processor to other Horn clause verification tools. Bishoksan Kafle, John P. Gallagher |
PEPM | 2 |
| 2015 | Tree Automata-Based Refinement with Application to Horn Clause Verification
Bishoksan Kafle, John P. Gallagher |
VMCAI | 2 |
| 2011 | Analysis of Logic Programs Using Regular Tree Languages - (Extended Abstract)
John P. Gallagher |
LOPSTR | 1 |
| 2011 | Introduction to the 27th International Conference on Logic Programming Special IssueabstractFollowing the initiative in 2010 taken by the Association for Logic Programming and Cambridge University Press, the full papers accepted for the International Conference on Logic Programming again appear as a special issue of Theory and Practice of Logic Programming (TPLP)—the 27th International Conference on Logic Programming Special Issue. Papers describing original, previously unpublished research and not simultaneously submitted for publication elsewhere were solicited in all areas of logic programming including but not restricted to: Theory: Semantic Foundations, Formalisms, Non- monotonic Reasoning, Knowledge Representation. Implementation: Compilation, Memory Management, Virtual Machines, Parallelism. Environments: Program Analysis, Transformation, Validation, Verification, Debugging, Profiling, Testing. Language Issues: Concurrency, Objects, Coordination, Mobility, Higher Order, Types, Modes, Assertions, Programming Techniques. Related Paradigms: Abductive Logic Programming, Inductive Logic Programming, Constraint Logic Programming, Answer-Set Programming. Applications: Databases, Data Integration and Federation, Software Engineering, Natural Language Processing, Web and Semantic Web, Agents, Artificial Intelligence, Bioinformatics. John P. Gallagher, Michael Gelfond |
Theory Pract. Log. Program. | 1 |
| 2009 | Non-discriminating Arguments and Their Uses
Henning Christiansen 0001, John P. Gallagher |
ICLP | 2 |
| 2009 | Type-based homeomorphic embedding for online termination
Elvira Albert, John P. Gallagher, Miguel Gómez-Zamalloa, Germán Puebla |
Inf. Process. Lett. | 2 |
| 2008 | Analysis of Linear Hybrid Systems in CLP
Gourinath Banda, John P. Gallagher |
LOPSTR | 2 |
| 2008 | From Monomorphic to Polymorphic Well-Typings and Beyond
Tom Schrijvers, Maurice Bruynooghe, John P. Gallagher |
LOPSTR | 3 |
| 2008 | Approximating Term Rewriting Systems: A Horn Clause Specification and Its Implementation
John P. Gallagher, Mads Rosendahl |
LPAR | 1 |
| 2007 | Type-Based Homeomorphic Embedding and Its Applications to Online Partial Evaluation
Elvira Albert, John P. Gallagher, Miguel Gómez-Zamalloa, Germán Puebla |
LOPSTR | 2 |
| 2007 | Termination analysis of logic programs through combination of type-based normsabstractThis article makes two contributions to the work on semantics-based termination analysis for logic programs. The first involves a novel notion of type - based norm where for a given type, a corresponding norm is defined to count in a term the number of subterms of that type. This provides a collection of candidate norms, one for each type defined in the program. The second enables an analyzer to base termination proofs on the combination of several different norms. This is useful when different norms are better suited to justify the termination of different parts of the program. Application of the two contributions together consists in considering the combination of the type-based candidate norms for a given program. This results in a powerful and practical technique. Both contributions have been introduced into a working termination analyzer. Experimentation indicates that they yield state-of-the-art results in a fully automatic analysis tool, improving with respect to methods that do not use both types and combined norms. Maurice Bruynooghe, Michael Codish, John P. Gallagher, Samir Genaim, Wim Vanhoof |
ACM Trans. Program. Lang. Syst. | 3 |
| 2005 | Techniques for Scaling Up Analyses Based on Pre-interpretations
John P. Gallagher, Kim S. Henriksen, Gourinath Banda |
ICLP | 1 |
| 2005 | Non-leftmost Unfolding in Partial Evaluation of Logic Programs with Impure Predicates
Elvira Albert, Germán Puebla, John P. Gallagher |
LOPSTR | 3 |
| 2005 | Converting One Type-Based Abstract Domain to Another
John P. Gallagher, Germán Puebla, Elvira Albert |
LOPSTR | 1 |
| 2005 | Inference of Well-Typings for Logic Programs with Application to Termination Analysis
Maurice Bruynooghe, John P. Gallagher, Wouter Van Humbeeck |
SAS | 2 |
| 2004 | Abstract Domains Based on Regular Types
John P. Gallagher, Kim S. Henriksen |
ICLP | 1 |
| 2004 | Fully Automatic Binding-Time Analysis for Prolog
Stephen-John Craig, John P. Gallagher, Michael Leuschel, Kim S. Henriksen |
LOPSTR | 2 |
| 2003 | A Program Transformation for Backwards Analysis of Logic Programs
John P. Gallagher |
LOPSTR | 1 |
| 2002 | Abstract Interpretation over Non-deterministic Finite Tree Automata for Set-Based Analysis of Logic Programs
John P. Gallagher, Germán Puebla |
PADL | 1 |
| 2000 | Using Regular Approximations for Generalisation During Partial EvalutionabstractOn-line partial evaluation algorithms include a generalisation step, which is needed to ensure termination. In partial evaluation of logic and functional programs, the usual generalisation operation applied to computation states is the most specific generalisation (msg) of expressions. This can cause loss of information, which is especially serious in programs whose computations first build some internal data structure, which is then used to control a subsequent phase of execution - a common pattern of computation. If the size of the intermediate data is unbounded at partial evaluation time then the msg will lose almost all information about its structure. Hence the second phase of computation cannot be effectively specialised. John P. Gallagher, Julio C. Peralta |
PEPM | 1 |
| 1999 | An Integration of Partial Evaluation in a Generic Abstract Interpretation Framework
Germán Puebla, Manuel V. Hermenegildo, John P. Gallagher |
PEPM | 3 |
| 1998 | Analysis of Imperative Programs through Analysis of Constraint Logic Programs
Julio C. Peralta, John P. Gallagher, Hüseyin Saglam |
SAS | 2 |
| 1995 | Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
Bern Martens, John P. Gallagher |
ICLP | 2 |
| 1994 | The Applicability of Logic Program Analysis and Transformation to Theorem Proving
D. Andre de Waal, John P. Gallagher |
CADE | 2 |
| 1994 | Fast and Precise Regular Approximations of Logic Programs
John P. Gallagher, D. Andre de Waal |
ICLP | 1 |
| 1993 | Tutorial on Specialisation of Logic ProgramsabstractIn this tutorial the specialisation of declarative logic programs is presented. The main correctness results are given, and the outline of a basic algorithm for partial evaluation of a logic program with respect to a goal. The practical considerations of gaining efficiency (and not losing any) are discussed. A renaming scheme for performing structure specialisation is then described, and illustrated on a well-known string matching example. The basic algorithm is enhanced by incorporating abstract interpretation. A two-phase specialisation is then described and illustrated, in which partial evaluation is followed by the detection and removal of useless clauses. This is shown for the specialisation of a proof procedure for first order logic. The specialisation of meta programs is very important in logic programming, and the ground representation for object programs has to be handled. Some techniques for doing this are described. Comparisons are made in the tutorial to similar work in other programming languages, and the similarities and differences between them and logic program specialisation is discussed. John P. Gallagher |
PEPM | 1 |
| 1990 | The Derivation of an Algorithm for Program Specialisation
John P. Gallagher, Maurice Bruynooghe |
ICLP | 1 |
| 1986 | Transforming Logic Programs by Specialising Interpreters
John P. Gallagher |
ECAI | 1 |