Automatic software verification: harnessing constraint technologies. As we come to rely on software to manage more and more aspects of our lives, the importance of software reliability increases; yet as programs become increasingly complex, reliability becomes ever more elusive. This project will develop automated tools and techniques to ensure that programs do what they were intended to do.
Analysing Computer Arithmetic to Improve Software Reliability. 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. This project will design sound reasoning tools that ....Analysing Computer Arithmetic to Improve Software Reliability. 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. This project will design sound reasoning tools that are aware of the true nature of computer integer arithmetic.Read moreRead less
An extensible framework for analysis of Java language-based security conformance. Java is a programming language and platform running on 3 billion devices. While Java provides a sandbox-based security architecture within the Java Class Library to protect systems from untrusted code downloaded from Internet, it cannot defend against implementation bugs that occur in the Java Class Library. The goal of this project is to provide a formal model of the Java security architecture, which can be used b ....An extensible framework for analysis of Java language-based security conformance. Java is a programming language and platform running on 3 billion devices. While Java provides a sandbox-based security architecture within the Java Class Library to protect systems from untrusted code downloaded from Internet, it cannot defend against implementation bugs that occur in the Java Class Library. The goal of this project is to provide a formal model of the Java security architecture, which can be used by program analysers to identify faulty or insufficient security checks in the Java Class Library that may lead to the sandbox being bypassed.Read moreRead less
A Compositional Model for Verifying and Programming Ecologies of Smart Internet Devices. Emerging in 21st century computing is what we perceive as device ecologies, or collections of devices that can exhibit smart behaviour, automate tasks, interact synergistically with one another, with users and Internet resources, and provide aid and value in daily life and work. Device ecologies will be seen in areas as diverse as e-commerce, health care, home automation, office automation, manufacturing, an ....A Compositional Model for Verifying and Programming Ecologies of Smart Internet Devices. Emerging in 21st century computing is what we perceive as device ecologies, or collections of devices that can exhibit smart behaviour, automate tasks, interact synergistically with one another, with users and Internet resources, and provide aid and value in daily life and work. Device ecologies will be seen in areas as diverse as e-commerce, health care, home automation, office automation, manufacturing, and defense. This project will develop a novel model and language for analyzing and programming device ecologies. This will be an Australian contribution towards techniques for constructing advanced applications that work over the computing infrastructure of the future.Read moreRead less