## 3 The Notification-Oriented Paradigm  
The NOP is an emerging paradigm that originated from a manufacturing discrete control solution [19], which later evolved into a general discrete control solution, an alternative inference solution, and even a computational paradigm [21]. As a main differential, NOP has two groups of distinct processing entities, namely fact-execution entities and logical-causal entities, which collaborate through punctual, precise notifications. The fact-execution entities deal with NOP elements and the execution of procedures/actions that change their states, whereas the logical-causal entities decide which actions should be executed. In turn, the fact-execution entities are represented by Fact Base Elements (FBEs) with their _Attributes_ and _Methods_. The logical-causal entities are represented by _Rules_ elements with their _Conditions-Premises_ and _Actions-Intisations_[16, 57]. Still, _FBEs_ and _Rules_, with their constituents, can be and usually are represented in a declarative way [58]. Figure 1 presents an example of the NOP entities for a given sensor application. The _FBE_ named Sensor, somehow similar to an instance of a class in the Object-Oriented Paradigm (OOP), represents a sort of notifier object composed of two boolean _Attributes_, atIsRead and atIsActivated, and a _Method_ named mtTrigger that sets the values of atIsRead to true and atIsActivated to false. In turn, the associated notifiable _Rule_ rISensorTrigger comprises a _Condition_ related to _Premises_ and an _Action_ related to an _Intigation_. When both _Condition_'s _Premises_ are true after notifications of the pertinent _Attributes_, it fires the _Rule_ rISensorTrigger, which causes the _Action_'s _Intigation_ to start the _Method_ mtTrigger from the _FBE_ Sensor. As the example suggests, the _FBE_ and _Rule_ constituents collaborate through precise notifications. The NOP state of the art, called Notification-Oriented Paradigm Language (NOPL), combines a programming language and a compilation system for specific targets. Despite being very performant, the NOPL is yet to apply to large or industrial-level projects. For now, it is used to demonstrate NOP properties in academic and benchmark applications [59, 60]. Alternatively, the NOP state-of-techniques is the so-called NOP C++ Framework 4.0/4.5 for large or industrial projects. This framework is an evolution of the previous ones and achieved maturity to be more extensively applied. As it is a notification-oriented framework over C++, changing the usual way that C++ operates, it is naturally less performant than the quite prototypal NOPL Technology with dedicated language and compilers. Nevertheless, this framework is still performant and stable for real NOP applications [59, 60, 61]. Figure 1: Example of instances of FBE Sensor and Rule rITriggerSensor with their constituents for a sensor application. Considering the example of Figure 1, Algorithm 1 presents the corresponding code for NOPL, and Algorithm 2 presents the corresponding code using NOP Framework C++ 4.0. More details about the NOPL and the NOP Framework C++ can be found in [24; 57; 60; 62]. The framework is in the final stage of the patent process, and it is not currently available to the community. However, its structure and details have been widely disclosed [22; 57; 59], including the works cited in this section.