Daemons are the minimal computational element of the Akira's Computational Model. Programmers creates Daemons throught a generation script that takes in input a Prototypal Daemon Class. The result is a Daemon Skeleton Class that can be specialized throught C++ or AKIRA MACRO LANGUAGE. The specialized class can be compiled stand alone to obtain a dynamic lib .so User Defined Class that can be loaded and instantiated (from 1 to N instance / Class) by the Pandemonium at the system startup with private parameters (such as N) defined into config.xml. Each Daemon executes a common life cycle calling a predefined sequence of functions. Some of them are specialized by programmers while the others are given by the framework. Each Daemon life cycle can be summerized into 4 steps:

  1. Framework + User Defined Object creation (attributes,methods,contructors...)

  2. Framework Initialization (name,pid,shared data structures registration,...)

  3. User Defined Initialization


    1. tap() //taps energy from the system pool

    2. execute() //executes user defined generic code

    3. pay(execute_result) //pays the cost of its symbolic operation giving it back to the environment

    4. shout() //notifies its own result to the system

    5. spread() //spreads its own energy to its semantic neighbours

    6. join() //joins a Daemon Structure

    7. reproduce() //reproduces itself with mutations

    8. decay() //gives back unused energy