||A crucial problem in the philosophy of computing is represented by the nature of computation. On the one hand, a computation is thought of as some representation of a formal process composed by well-defined steps, which allows to reach in a finite amount of time a given output from a given input. This is tantamount to the formulation of a mathematical or biological function or the design of an algorithm. On the other hand, a computation is inherently bound to its execution and thus to an implementation. This strongly relates to the problem of determining which physical systems can be said to implement a computation, in turn which systems can be said to be properly computational. The answer to this question can be offered by reduction to other relations (such as causation), but it triggered a widespread debate on whether it implies that almost any physical system is then by definition computational. This has been a particularly intense debate in the cognitive sciences. The duality formal-physical that affects the nature of computation is also of especially great importance in the philosophical debate on the nature of algorithms and programs, where the latter are considered physical implementations of the former.