Paper Details

Communicating Process Architectures (CPA)
 Title: CSP mechanisms for the Qt Framework
 Conference: Communicating Process Architectures 2014
 Authors: Ruth Ivimey-Cook
eLifesciences Ltd.
The Qt Framework is the foundation of a huge amount of C++ software, including the KDE desktop environment, several mobile phones, and numerous individual applications. It has now in its 5th major version and has been very well thought out and put together. Qt is unusual in using a preprocessor (called moc) to extend the C++ language with meta-information and an efficient event system, which can be used both within and between threads. Part of the core of Qt for a long time has been a threads implementation for concurrency which is used, and has seen some work recently, though it is still at the periphery of the framework.

Identify how to include a set of CSP-inspired constructs into Qt that usefully extend the framework and provide good building blocks for further work.

This could be done in conjunction with the Qt maintainers, but there is plenty of history of third-party libraries extending Qt – for example the Qxt library providing graphing tools.

There is scope for several people – both theorists and programmers – getting involved in this. C++ experience for the programmers would be needed, and preferably exposure to Qt.

It would be nice if the CCSP library could be brought into the mix, but I don't see that as an absolute requirement.

It is unlikely that the workshop will complete this work, so it would be nice if those who worked on it were able to follow up afterwards. If not, then the group doing it should aim to leave their offering in a state that it could be picked up by others, e.g. on Github.

Qt is a major framework and a good implementation of CSP would have major exposure if done well. Getting to that point will not be trivial but if this conference's legacy was just to do that, I would be ecstatic. Qt is in my view a good target for this as it already includes a number of features which make it amenable to this treatment.  

BibTeX Entry