CIP-Tool
   HOME

TheInfoList



OR:

{{other uses of, CIP CIP-Tool (Communicating Interacting Processes) is a
software Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications. The history of software is closely tied to the development of digital comput ...
tool for the modelling and implementation of event-driven applications. It is especially relevant for the development of software components of
embedded systems An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is em ...
.


History

The underlying mathematical formalisms of CIP were first proposed by the physicist, Prof. Dr. Hugo Fierz. The tool was subsequently developed at the Swiss Federal Institute of Technology (Zurich) in a series of research projects during the 1990s. Development and distribution has since been transferred to a commercially operating spin-off company, CIP-Tool, based in
Solothurn Solothurn ( ; ; ; ; ) is a town, a municipality, and the capital of the canton of Solothurn in Switzerland. It is located in the north-west of Switzerland on the banks of the Aare and on the foot of the Weissenstein Jura mountains. The town is ...
, Switzerland. CIP Tool has been over taken by Actifsource GmbH in summer 2011. Actifsource has integrated the CIP Tool into the Actifsource workbench.


Methodology

The CIP-model is basically a
finite-state machine A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
, or more precisely, an extended finite-state machine (processes can store and modify variables and can use these to enable or disable transitions). In CIP, a desired system behaviour is broken down into distinct ''processes'', each of which is a set of ''states'' interconnected by ''transitions''. One state in every process is tagged as ''active'' state. This active status can be transferred to another state through the execution of a transition. Such transitions are triggered by ''events'' (from external sources, e.g. sensors) or ''in-pulses'' (from other processes). Transitions can in turn send one or several ''out-pulses'' (to other processes) or ''actions'' (to external receivers, e.g. effectors). The CIP-model is sometimes confused with
petri nets A Petri net, also known as a place/transition net (PT net), is one of several mathematical modeling languages for the description of distributed systems. It is a class of discrete event dynamic system. A Petri net is a directed bipartite grap ...
. This may be because to beginners, the notation looks similar. The similarities should not be over-stressed, however. For example, CIP allows only (and exactly) one active state per process and processes are neither started nor terminated during run-time.


Code generation

CIP-Tool permits models to be automatically converted to executable code. This greatly facilitates testing, documentation and final implementation. Currently the languages
C/C++ The C and C++ programming languages are closely related but have many significant differences. C++ began as a fork of an early, pre-standardized C, and was designed to be mostly source-and-link compatible with C compilers of the time. Due to ...
and
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
are supported as output formats.


External links


company website
Science software Automata (computation) Models of computation