CCP extends this concept to software development. By allowing software developers to break a large project into well-defined components and interactions, CCP provides the same functional isolation enjoyed by many other engineering disciplines. To implement CCP concepts, we needed a language which already supported procedural and object-oriented methodologies. Inputs and outputs define ports for data flow in and out of a component. Different components can connect to each other via these ports.
Static connections specify how internal subcomponents interact with each other.
These connections are not visible outside of the defining component. An input has a type and a processor associated with it. The specified type defines the type of the input data, and the processor is a function which is invoked upon the arrival of this data. An output has a type associated with it. The specified type defines the type of the output data.