We are conducting a short survey on why and how often Gateway to Research is used.

We are very interested in your opinions and experience and would like to invite you to take a moment to complete this short survey. Your input and comments are important, please be assured that all information provided is anonymous and confidential.

If you are not ready to give feedback now, but would like to contribute later, a link to the form can be found in the feedback section of the Contact Us page.

The survey should take about 3 minutes to complete. Would you like to participate?

Thank you for agreeing to give us your feedback on GtR.

We are very interested in your opinions and experience and would like to invite you to take a moment to complete this short survey. Your input and comments are important, please be assured that all information provided is anonymous and confidential.

The survey should take about 3 minutes to complete. Would you still like to participate?

What type of organisation do you come from?

Organisation Type

Public

Private

University/Research Organisation

Charity

Other (inc. general public user)

Please describe your organisation

Does your organisation have fewer than 250 staff?

Organisation Size

Yes
No

What was the main reason you visited Gateway to Research?

Reason for visit

To identify research/researchers/publications/outputs in an area of interest

Geographical analysis

To find information about a specific research project/publication/outcome

Identify research being conducted at universities and research organisations

Download data

How often do you use Gateway to Research?

Frequency of use

At least weekly

Once or twice a month

Several times a year

Once a year or less frequently

How did you hear about Gateway to Research?

How did you hear about GtR

At work/my employer

Friend/relative

Internet search

Magazine

News feature/story/article

Social media

Other (please provide response)

Please tell us where you heard about GtR

How useful was Gateway to Research in meeting your needs?

How useful was GtR

Extremely

Very

Moderately

Slightly

Not at all

User Research

Questions 6 to 9 are additional questions targeted at existing functionality on the Gateway to Research system namely the CSV download. This is the mechanism used to extract data from the system using a CSV template. We would value your opinion on how best to improve this service for our users

When you visit Gateway to Research, how often do you use the ‘CSV’ download functionality?

Do you download CSV files

Every time

At least weekly

Once or twice a month

Several times a year

Once a year or less frequently

Never used it

What data do you download using the CSV functionality?

What do you download

Projects

Publications

People

Organisations

Bespoke search (using refine by filtering)

Other (please provide response)

Please tell us where you heard about GtR

What would you like to be able to download in the future?

Download Suggestions

Classifications

Multiple People listed on a project

Multiple Organisations listed on a project

All Outcomes

Project Partner Participant values

Entire Gateway to Research dataset

Other (please provide response)

Please tell us what would you like to be download in the future ?

Please tell us what would you like to be download in the future ?

Do you have any other suggestions on how we can improve the download functionality?

Maximum 150 characters.

Characters remaining :150

Thank you for visiting Gateway to Research and taking the time to complete our short survey. If you would like to provide more information about your views and experience on Gateway to Research, you can complete a further survey http://www.smartsurvey.co.uk/s/IGZKO/

Verification of Concurrent and Higher-Order Recursive Programs

Abstract

Global society increasingly relies on devices controlled by software, from TVsets to vehicle braking systems. It is considered a "fact-of-life" thatsoftware contains errors, which can come at great cost, such as the Mars PolarLander crash or the 1992 failure of the London Ambulance Dispatch Service. In a2008 study, the US NIST agency estimates faulty software costs the US economy$59.5bn annually.

Classically software is tested by running it under as many difficult situationsas possible. However, it is not feasible to run a program under allenvironments. Hence, testing relies on the perspicacity of the testing engineerwho must carefully choose environments that may expose flaws.

Modern computers increase performance by allowing many computer programs to runconcurrently. Anticipating the interactions of even as a little as two programsis an extremely difficult task, and errors are often difficult to replicate anddiagnose. Furthermore, the efficiency of hardware is often increased bypermitting behaviours a software developer would not expect.

An alternative approach to ensuring correctness is model-checking.Model-checking attempts to use fully automatic techniques to prove that aprogram behaves as expected under all conditions. This area has flourishedrecently, including a 2007 Turing Award for Clarke, Emerson and Sifakis, whotransformed the technique from a theoretical pursuit into an industriallyapplicable product. Model-checking is embraced by companies like Microsoft (toimprove its Windows OS) and Altran-Praxis (for safety-critical software).

However, model-checkers must rely on simplified models of computer programs toguarantee results, leading to many correct programs being labelled erroneous.This is a design choice, following the argument that it it better to raise afalse alarm, than let an error pass by.

However, a large number of false alarms damage reliability and usability --- asoftware developer will not study reported errors carefully if the majority are,in fact, not errors at all. This is a real problem in the large scaledeployment of such tools. The goal of this fellowship is to increase theprecision of verification tools --- reducing the number of false alarms ---while retaining the efficiency of current techniques, resulting inmodel-checking tools that are more reliable and usable.

During this fellowship, we will construct a state-of-the-art verificationframework, unifying several prototypical tools and requiring novelmodel-checking techniques, and permitting new ideas to be experimented withquickly. The framework will be tested on real-world software to ensure itsusability and reliability. It will accurately model difficult programmingparadigms, such as modern concurrent behaviours and "higher-order" constructs(increasingly embraced by state-of-the-art programming languages).

The research will be carried out at Imperial College London, and will bringtogether researchers at Oxford University, Universite Paris-Est, and UniversiteParis-Diderot as well as the CARP project, based across several universities andcompanies world-wide, and researchers at Microsoft Research, Cambridge.

Planned Impact

It is well known that the majority of the software development effort goes onmaintenance and bug repair. The use of verification techniques duringdevelopment reduces the prevalence of errors, and thus, reduces developmenttime. In addition to the speed of delivery, the use of verification techniquesallows companies to provide improved support and maintenance packages.

UK companies will benefit from the results of this fellowship in two ways.First, since the framework is developed in the UK, they will have easyface-to-face access to the development team. Secondly, by educating UK studentsabout the tools, UK companies will benefit from improved programming practicesin the graduates they employ. Especially as concurrent programming becomes moreimportant, having techniques to quickly identify concurrency bugs (which aredifficult to find and reproduce, yet simple to make) will be an enormousadvantage.

Furthermore, software is ubiquitous in modern society. Thus, the erroneousnature of programming projects affects everyone in many ways, ranging from minorannoyances when a laptop has to be rebooted, to weaknesses exploitable bywriters of malevolent software, business critical software such as web-services,and more potentially more serious situations with safety critical software, suchas car braking systems. An improved quality of software will have a widebenefit.

The impact of the fellowship will be ensured through a number of means.

First, in addition to enabling cutting-edge research, the construction of amodel-checking framework will unify many related research activities under asingle name. This will promote recognition and awareness of the framework bystakeholders, facilitating communication outside of academia.

The framework itself will take as input programs written in suitable languages,such as Java and C++, and produce useful output, rather than the ``expert-only''output produced by prototypical tools. This is a facility demanded by potentialindustrial partners who will not tolerate a ``by-hand'' modelling process. Byproviding these features, the ease-of-use of verification tools will be assured,allowing new ideas to be tried by non-expert users in both the industrial andopen-source communities.

To ensure the distribution of the framework, and its real-world applicability,we will first ensure that a web-site is set up. This site will provide thedownloads of the framework, instructions for users, and bug-reporting/featurerequest facilities. Then, we will experiment with the framework on open-sourcesoftware, such as Linux. The results of these experiments can then becommunicated to the software developers --- for example, through bug reports, ifbugs are found. This communication will raise awareness of our tools and wewill encourage software developers to try the tools themselves, providingvaluable feedback for further improvements. In addition, we may analyseopen-source code produced by companies as a pathway into industry.

Experiments with open-source software will demonstrate the effectiveness of theframework. These results will be used when contacting software companies whowill be interested in using our tools. Initially this may include firms such asMicrosoft who are already involved in developing verification tools of theirown. Further companies may be approached during, for example, industry liaisonevents held at Imperial, or directly.

Finally, as a keen teacher, on completion of the fellowship, I will seek topresent lecture courses on verification. By exposing students to model-checkingtechniques and tools, the next generation of programmers will be equipped totransport these techniques to their future work environment. This take-up, Ibelieve, will increase as tools become more accurate and scalable, and as thedifficulties in concurrent programming become a daily issue for developers.

This research has introduced and given proof-of-concept implementations of new approaches to the analysis of software systems -- in particular "higher-order" programming, which is an increasingly important type of software that is not well-handled by existing analysis tools. This analysis will help programmers check that the software they develop behaves as intended (i.e. does not crash).

In addition, the research has given new results about analysing software that runs on modern computers which execute several interacting programs simultaneously. This is part of an ongoing project to analyse concurrent higher-order programs and the developed software and techniques is being extended in this direction.

Exploitation Route

Ensuring the correctness of computer programs is a significantly difficult task (as evidenced by the routine occurrence of software failures). Tools which are able to automatically analyse software for correctness can provide valuable feedback to developers and prevent mistakes occurring. We are developing techniques that push the limits of what is known to be possible with respect to this analysis and developing proof-of-concept implementations to show that practical results can be obtained. The techniques can be used and expanded upon by teams developing full-scale analysis tools on an industrial scale.

The findings have been published in the world-leading conferences Principles of Programming Languages 2016, Object Oriented Programming, Systems Languages and Applications 2015, Computer Science Logic / Logic in Computer Science (CSL-LICS) 2014, The International Conference on Functional Programming (ICFP 2013), Foundations of Software Technology and Theoretical Computer Science (FSTTCS) 2013, Reachability Problems (RP) 2014 and Automata and Formal Languages AFL, 2014. Techniques we have introduced have also been taken up by Naoki Kobayashi's group in Tokyo and published in the renowned conference on Concurrency (CONCUR) 2013. We have also produced a tool (C-SHORe) for reachability checking of sequential higher-order recursion schemes (models of higher-order programs) implementing our research which is available from http://cshore.cs.rhul.ac.uk. The project is on-going and C-SHORe is currently being extended to handle concurrent programs. We have also developed a tool for the analysis of JQuery programs, as well as a tool for the minimisation of Cascading Style Sheets, for web-programming.

The tool performs reachability analysis of higher-order recursion schemes and collapsible pushdown systems, which are a model of higher-order programs.

Type Of Technology

Software

Year Produced

2013

Impact

The tool was the first to implement an automata based approach to the verification of higher-order recursion schemes. It also was the first to use a "saturation" method. The tool showed that this approach is competitive with existing approaches and inspired a further tool (HORSAT) to be produced by Naoki Kobayashi's group in Tokyo, using similar techniques.

A tool implenting an algorithm for identifying redundant CSS rules in HTML5 applications. Provides a complete interface for the underlying program model, but only a rudimentary translation from jQuery programs.

Gateway to Research (GtR) now includes the outcomes of research projects. Please help us identify additional improvements that would make GtR meet your needs even further by completing this short survey.