Welcome to the home page of Peter Schachte





Dr. Peter Schachte
School of Computing and Information Systems
The University of Melbourne
Victoria 3010


EMail: schachte@unimelb.edu.au
Phone: +61 3 8344-1338
Fax: +61 3 9348-1184
PGP/GPG: key available

Room 8.15
Doug McDonell Building
Parkville Campus, University of Melbourne


I regularly teach the following subjects:
COMP90048 / COMP30020 Declarative Programming
COMP90041 Programming and Software Development
UNIB10002 Logic: Language and Information



I am currently supervising the following research postgraduate students:

The following former students have completed their degrees:

I am always looking for bright students interested in undertaking research study in an area related to programming languages.


My research is supported by the following grants:

Effective software vulnerability detection for web services. Collaboration between Peter Stuckey, Harald Søndergaard, and Peter Schachte of the University of Melbourne and Cristina Cifuentes and Andrew Santosa of Oracle Corporation. ARC Linkage Project LP140100437, 2014-2017.
This project will design and implement new and better methods to find vulnerabilities in software services delivered over the web or through the cloud, as well as methods for proving the absence of certain types of vulnerability. So-called injection attacks are pervasive and generally considered the most important security threat on today's Internet. The programming languages used for software services tend to use strings as a universal data structure, which unfortunately makes it hard to separate trusted code from untrusted user- provided data. This project will develop novel program analysis tools and string constraint solvers, and employ these tools to support sophisticated automated reasoning about string manipulating software.

Analysing Computer Arithmetic to Improve Software Reliability. Peter Stuckey, Harald Søndergaard, and Peter Schachte, University of Melbourne, and Michael Codish, Ben-Gurion University. ARC Discovery Project DP140102194, 2014-2016.
Most computer programs deal with integers. Automated tools designed to verify the correct behaviour of software usually assume the software deals with idealised mathematical integers, since this simplifies reasoning significantly. In reality, most programs work with integer number representations that approximate the ideal. This compromises the soundness of many verification tools. In this project we will design sound reasoning tools that are aware of the true nature of computer integer arithmetic.

Automatic software verification: Harnessing constraint technologies. Peter Stuckey, Harald Søndergaard, and Peter Schachte, University of Melbourne, and Andy King, University of Kent. ARC Discovery Project DP110102579, 2011-2013.
Software reliability is critically important but exceedingly difficult to achieve. The methods used today for automated verification of desirable properties of software have severe limitations in both scope and scale. The aim of this project is to broaden the set of program properties that can be established, as well as the programming language constructs to which they can be applied. By combining our expertise in program analysis and constraint solving technology we intend to develop better software verification methods that successfully verify more complex programs and properties than previously possible.


My publication list shows my past research. Also see Michael Ley's DBLP Bibliography Server for an index of my publications.


Aside from ongoing grant projects listed above, my current research projects, most highly speculative, include:

Declarative Imperative Programming Language

Abstract Interpretation

In the area of abstract interpretation, I am interested in:

Implementation of Boolean Functions

Boolean functions (propositional logic formulae), or subclasses of them, are a useful abstraction for representing information about dependencies among boolean-valued variables. They certainly are effective for groundness analysis. And since most of the time in program analysis is spent manipulating abstract values, being able to efficiently manipulate boolean functions is very important.

Logic Programming Semantics and Implementation

Declarative Software Engineering

A declarative approach to programming, and to software design, has much to contribute to software engineering. However, the software engineering community appears uninterested in declarative languages. Conversely, the declarative language community is largely uninterested in software engineering.


My other interests include programming language implementation, logic, functional, and object oriented programming (and combinations of these), programming environments, programming language design, and user interface design. My nontechnical interests include vegetarian cookery, recumbent biking, philosophy, politics, and economics.

Some of the freely-distributable software I have written is available for download.

I am available for consulting jobs. See my curriculum vitae for my work experience.

Required disclaimer

This page, its contents and style, are the responsibility of the author and do not necessarily represent the views, policies or opinions of The University of Melbourne.
Peter Schachte / schachte@unimelb.edu.au
Last update: 29 March 2017