Andy King
Reader in Program Analysis
|
|
|
Publications
My publications are available from the Computer Science department publications repository.
Research Interests
I belong to the following research groups:
My work is a mixture of theoretical computer science and sensible, solid hackery. I like to apply techniques like abstract interpretation and use them to optimise programs, figure out how to run undocumented programs, detect bugs in programs, prove that programs will terminate, reason about the time-complexity of programs, parallelise programs and do useful things like that. Most of my work has centred on logic programs and constraint logic programs but more recently, I have become interested in applying program analysis to problems in security. Most recently, I have been working on the following topics:- Backward analysis for reasoning about legacy code, concurrency, determinacy and verification (for a survey of this research see the book chapter);
- Implementation techniques for fixed-point engines and polynomial analyses;
- Representations of Boolean functions for groundness analysis, dependency analyses and ROBDD approximation techniques
- Generating terminating logic programs rather than checking that a given logic program terminates;
- Security issues and in particular buffer-overrun analysis;
- Polyhedral techniques such as the two-variable per inequality domain, arbitrary dimension convex hull algorithms, planar convex hull algorithms, methods for exploiting sparsity and polyhedral approximation.
Grants
- EPSRC GR/K79642 Detecting and Exploiting Determinacy (finished)
- EPSRC GR/MO8769 Semantic Support for CLP (finished and ranked outstanding)
- EPSRC EP/C015517 Back-to-Bits (finished and ranked outstanding)
- EPSRC EP/D078342 LACE: Lifetime-Aware Collection (1 August 2006 -- 31 July 2009)
- EPSRC EP/E033105 VIP: Verification with Integer Polyhedra (1 June 2007 -- 31 May 2010)
- EPSRC EP/F012896 Industrial Secondment to Portcullis Computer Security Ltd (1 October 2007 -- 30 June 2008)
- Royal Society Industrial Fellowship (1 October 2008 -- 30 September 2012)
- Royal Society Joint Project (1 May 2006 -- 31 August 2008)
PhD Studentships in Computer Science
Fully funded PhD studentships are available in the Computing Laboratory at the University of Kent on the topics given below:- Discovering Invariants by Solving Constraints
- Reverse Engineering for Security
- Automatically Finding Security Vulnerabilities
- Tools for Logic Programming
- Running Programs in Reverse by Program Transformation
Coauthors
The abstract interpretation and logic programming community is supportive and friendly and I a fortunate to work with and have the following people as my co-authors and friends: Muhamed Abo-Zaed, Florence Benoy, Mike Codish, Samir Genaim, Andrew Heaton, Jacob Howe, Pat Hill, Jon Martin, Lunjin Lu, Fred Mesnard, Harald Søndergaard, Axel Simon, Kish Shen, Jan Smaus, Andy Verden. Patrick Cousot has assembled a useful list of home pages of researchers in semantics and abstract interpretation.Software
- A (uuencod'ed and tar'ed) demo of a simple polynomial groundness analysis.
- A (zipp'ed and tar'ed) distribution of an argument size analyser.
- Super Monaco benchmarks courtesy of Bart Massey and Evan Tick.
- Control generation examples.
- SICStus Prolog convex hull code for a programming pearl.
- A suspension analyser demonstrator
- A determinacy inferencer demonstrator
- Crossword compiling via SAT solving by Colin Pigden
Professional activities
- Co-organiser for the Workshop on Constraint Programming for Reasoning about Programming in Leeds (CPP'97).
- Programme committee for the International Conference on Logic Programming in New Mexico (ICLP'1999).
- Programme committee for the International Workshop on Logic-based Program Synthesis and Transformation in Madrid (LOPSTR'2002).
- Programme committee for the International Conference on Logic Programming in Bombay (ICLP'2003).
- Programme committee for the International Symposium on Logic-based Program Synthesis and Transformation in Uppsala (LOPSTR'2003).
- Programme committee for the Tenth International Static Analysis Symposium in San Diego (SAS'2003).
- Programme committee for the International Conference on Logic Programming in Saint-Malo (ICLP'2004)
- Programme committee for the Twelth International Static Analysis Symposium in London (SAS'2005).
- Programme committee for the International Symposium on Logic-based Program Synthesis and Transformation on the island of Isola di San Servolo within the Venetian Lagoon (LOPSTR'2006).
- Programme committee for Principles and Practice of Declarative Programming on the island of Isola di San Servolo within the Venetian Lagoon (PPDP'2006).
- Programme committee for Workshop on Constraints in Software Testing, Verification and Analysis at Nantes, France (CTSVA'2006).
- Programme chair for the International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR'2007)
- Programme committee for the International Conference on Logic Programming in Udine (ICLP'2008) (not to be confused with the International Conference on Lightning Protection)
- Programme committee for the International Symposium on Logic-based Program Synthesis and Transformation in Valencia (LOPSTR'2008).
- Programme committee for the International Conference on Logic Programming in Pasadena, California (ICLP'2009)
- Programme committee for the International Symposium on Logic-based Program Synthesis and Transformation in Coimbra, Portugal (LOPSTR'2009).
- Programme committee for the Second International Workshop on Numeric and Symbolic Abstract Domains in Perpignan, France (NSAD'2010).
- Programme committee for the Fifth International Workshop on Systems Software Verification (SSV'2010).
- Programme committee for the Twelfth International Symposium on Practical Aspects of Declarative Languages in Madrid, Spain (PADL'2010).
- Programme committee for the Joint Workshop on Implementation of Constraint Logic Programming Systems and Logic-based Methods in Programming Environments in Edinburgh, Scotland (CICLOPS-WLPE'2010).
- Programme committee for the International Symposium on Logic-based Program Synthesis and Transformation in Hagenberg, Austria (LOPSTR'2010).
- Programme committee for the International ACM Symposium on Principles and Practice of Declarative Programming in Hagenberg, Austria (PPDP'2010).
- Programme committee for the Fifteenth International Workshop on Formal Methods for Industrial Critical Systems in Antwerp, Belgium (FMICS'2010).
- Editorial Advisor for the journal Theory and Practice of Logic Programming (formally known as The Journal of Logic Programming).
- Associate Editor for the journal Higher-Order and Symbolic Computation (formally published by Kluwer but now published by Springer)
Bibliography servers
- My publications as tracked by the Trier server (incomplete)
- My publications as tracked by the Bibfinder (some repetition)
- My co-authors as tracked by the Trier server (reasonably complete)