John P. Gallagher

dblp:g/JPGallagher · DBLP profile ↗
← Back
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
YearPublicationVenuePosition
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
LOPSTR1
2023 Combatting Energy Issues for Mobile Applications
abstract
Energy 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 Verification
abstract
Abstract 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 applications
abstract
Energy 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
ISSTA4
2020 Preface
abstract
Special Issue on the 27th International Symposium on Logic-based Program Synthesis and Transformation: LOPSTR 2017.
Fabio Fioravanti, John P. Gallagher, Maurizio Proietti
Fundam. Informaticae2
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
LOPSTR3
2019 Control-Flow Refinement by Partial Evaluation, and its Application to Termination and Cost Analysis
abstract
Abstract 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 clauses
abstract
Abstract 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 Application
abstract
The 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
MobiQuitous2
2016 A Source-Level Energy Optimization Framework for Mobile Applications
abstract
Energy 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
SCAM2
2015 Constraint Specialisation in Horn Clause Verification
abstract
We 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
PEPM2
2015 Tree Automata-Based Refinement with Application to Horn Clause Verification
Bishoksan Kafle, John P. Gallagher
VMCAI2
2011 Analysis of Logic Programs Using Regular Tree Languages - (Extended Abstract)
John P. Gallagher
LOPSTR1
2011 Introduction to the 27th International Conference on Logic Programming Special Issue
abstract
Following 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
ICLP2
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
LOPSTR2
2008 From Monomorphic to Polymorphic Well-Typings and Beyond
Tom Schrijvers, Maurice Bruynooghe, John P. Gallagher
LOPSTR3
2008 Approximating Term Rewriting Systems: A Horn Clause Specification and Its Implementation
John P. Gallagher, Mads Rosendahl
LPAR1
2007 Type-Based Homeomorphic Embedding and Its Applications to Online Partial Evaluation
Elvira Albert, John P. Gallagher, Miguel Gómez-Zamalloa, Germán Puebla
LOPSTR2
2007 Termination analysis of logic programs through combination of type-based norms
abstract
This 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
ICLP1
2005 Non-leftmost Unfolding in Partial Evaluation of Logic Programs with Impure Predicates
Elvira Albert, Germán Puebla, John P. Gallagher
LOPSTR3
2005 Converting One Type-Based Abstract Domain to Another
John P. Gallagher, Germán Puebla, Elvira Albert
LOPSTR1
2005 Inference of Well-Typings for Logic Programs with Application to Termination Analysis
Maurice Bruynooghe, John P. Gallagher, Wouter Van Humbeeck
SAS2
2004 Abstract Domains Based on Regular Types
John P. Gallagher, Kim S. Henriksen
ICLP1
2004 Fully Automatic Binding-Time Analysis for Prolog
Stephen-John Craig, John P. Gallagher, Michael Leuschel, Kim S. Henriksen
LOPSTR2
2003 A Program Transformation for Backwards Analysis of Logic Programs
John P. Gallagher
LOPSTR1
2002 Abstract Interpretation over Non-deterministic Finite Tree Automata for Set-Based Analysis of Logic Programs
John P. Gallagher, Germán Puebla
PADL1
2000 Using Regular Approximations for Generalisation During Partial Evalution
abstract
On-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
PEPM1
1999 An Integration of Partial Evaluation in a Generic Abstract Interpretation Framework
Germán Puebla, Manuel V. Hermenegildo, John P. Gallagher
PEPM3
1998 Analysis of Imperative Programs through Analysis of Constraint Logic Programs
Julio C. Peralta, John P. Gallagher, Hüseyin Saglam
SAS2
1995 Ensuring Global Termination of Partial Deduction while Allowing Flexible Polyvariance
Bern Martens, John P. Gallagher
ICLP2
1994 The Applicability of Logic Program Analysis and Transformation to Theorem Proving
D. Andre de Waal, John P. Gallagher
CADE2
1994 Fast and Precise Regular Approximations of Logic Programs
John P. Gallagher, D. Andre de Waal
ICLP1
1993 Tutorial on Specialisation of Logic Programs
abstract
In 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
PEPM1
1990 The Derivation of an Algorithm for Program Specialisation
John P. Gallagher, Maurice Bruynooghe
ICLP1
1986 Transforming Logic Programs by Specialising Interpreters
John P. Gallagher
ECAI1