What Is CLiP?
The Connective Logic Infrastructure Programming (CLiP) technology comprises a machine translatable visual programming language (CDL), a runtime and supporting toolset. This provides an object-oriented event based alternative for the development of concurrent (multi-threaded / multi-process) applications.
CDL is a machine translatable Visual Programming Language (VPL) which allows developers to describe a concurrent application’s communication and synchronization logic in a localized contiguous manner (logic is not dispersed through files). It adopts an event based paradigm and calls user specified textual code in response to the arrival of specified event patterns. So creating CDL applications is rather like creating GUI applications using a form designer; the framework is visual, the ‘call-backs’ are textual.
This provides a number of implicit benefits. Firstly, existing sequential processing code is insulated from concurrent execution issues (investment is protected), and most engineers continue to work with familiar tools, languages and techniques. Secondly, the isolation of communication provides an obvious opportunity for the specialization of its treatment.
This means we can consider radical new approaches, and in particular, provide engineers and architects with far more intuitive visual semantics. The Concurrent Description Language (CDL) is distinguished from other coordination languages by the connective logic visual symbolism which allows concurrent execution to be scheduled by ‘circuitry’, composed from a finite set of deterministic ‘event operators’.
 (Click to enlarge...)
Although CLiP has been in development for over 15 years and the existing system has been in continuous and varied use for more than 8 years; the principal objective has always been to provide an incremental and methodical migration to the multi-core technology era; which has now arrived. Over the next ten or twenty years we can expect to see the so-called ‘concurrency revolution’ make 100+ core chips the new norm.
Race conditions, log-jams, deadly embraces and priority inversions; the scourge of concurrent programming, result from reliance on low level non-composable mechanisms like semaphores, locks, critical sections and monitors. CDL replaces all of these primitives, and also the concept of messaging, with a single unified composable paradigm referred to as ‘Connective Logic’. This means that sequential code can be methodically parallelized without the concepts of locking or STM. The CDL translator itself for example, has highly irregular parallelism (peaking in the hundreds), executes repeatably, and does not contain a single lock (it cannot deadlock).
Because target and topology details are entirely captured by the translator and runtime drivers, CDL provides a step change in programming abstraction and is 100% portable to any supported platform (see website for details). This allows most application development and maintenance work to be carried out with single process desktop builds and defers the choice of target hardware until a time convenient to the project. Perhaps most importantly for the multi-core era, it mitigates obsolescence.

Another important feature of the runtime is the ability to recruit and retire CPU at any stage of execution without loss of data. This obviously optimizes availability (hence CLiP’s adoption for mission critical systems like the UK’s Surface Ship Torpedo Defense system), but also provides maintenance without downtime, and an implicit ‘self-healing’ capability. It also means that functionality can be extended with minimal impact to existing code. At the recent UDT show Ultra Electronics demonstrated a ‘live’ technology upgrade (Pentium Xeon Cluster to multi-core Opterons) without loss of service.
"Why Use CLiP?" discusses the commercial benefits of CLiP. Alternatively, for a technical overview of connective logic click here.
|