  Emergence is the way complex systems arise out of a multiplicity of
relatively simple interactions between primitives. Since programming problems
become more and more complexes and transverses, our vision is that application
development should be process at two scales: micro- and macro-programming where
at the micro-level the paradigm is step-by-step and at macro-level the paradigm
is emergence. For micro-programming, which focuses on how things happen,
popular languages, Java, C++, Python, are imperative writing languages where
the code is a sequence of sentences executed by the computer. For
macro-programming, which focuses on how things connect, popular languages,
labVIEW, Blender, Simulink, are graphical data flow languages such that the
program is a composition of operators, a unit-process consuming input data and
producing output data, and connectors, a data-flow between an output data and
an input data of two operators. However, despite their fruitful applications,
these macro-languages are not transversal since different data-structures of
native data-structures cannot be integrated in their framework easily. Cameleon
language is a graphical data flow language following a two-scale paradigm. It
allows an easy up-scale that is the integration of any library writing in C++
in the data flow language. Cameleon language aims to democratize
macro-programming by an intuitive interaction between the human and the
computer where building an application based on a data-process and a GUI is a
simple task to learn and to do. Cameleon language allows conditional execution
and repetition to solve complex macro-problems. In this paper we introduce a
new model based on the extension of the petri net model for the description of
how the Cameleon language executes a composition.
