[Main website]


Some run-times are also a paradigm, e.g. relational DBMS with indexes; distribuited Actor model with queue of messages; active rule systems.

Every part of Dok code should use a feature/DSL and compile to a feature/multiple-run-times.

So the workflow in Dok is:

  • decide the best paradigm for a certain part
  • use the correct DSL
  • use the correct runtime

Some minor run-times as active rule systems can be used inside other run-times like distribuited Actors.

Some run-times can be used transparently from a DSL, as target of the macro expansion.

Other run-times are part of the paradigm exposed to the user.

There are differences between systems and an algorithms. Algorithms starts with an input and they procude a result. They have a complexity, constraints and so on. A System is composed of ever running process. It has a state with invariants. It never stop. It calls algorithms. It can follow different design paradigm like Actors, Calm, etc…

Hence, in Dok one can make a distinction between the language used for algorithms and synthetizing code using macro, and the run-time characteristics of the System.

See also dok/paradigm/layered-semantic.