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.