A method for executing programs in an electronic system for applications provided with functional safety that includes a single-processor or multiprocessor processing system, and a further independent control module, said method comprising: performing an operation of decomposition of a program that includes a safety function and is to be executed via said system into a plurality of parallel sub-programs (P1,..., Pn); assigning execution of each parallel sub-program (P1,..., Pn) to a respective processing module of the system, in particular a processor (C1,..., Cm) of said multiprocessor architecture or virtual machine (V1,...,Vn) associated to one of said processors (C1,..., Cm); and carrying out in the system, periodically according to a cycle frequency (f cyc) of the program during normal operation of said system, in the framework of said safety function, self-test operations (A st1, A sys, A Chk) associated to each of said sub-programs (P1,..., Pn) and to the corresponding processing modules on which they are run, said method being characterized in that said self- test operations (A st1, A sys, A Chk) comprise: diagnostic-self-test operations (A st1), which carry out diagnostic self-tests; operations (A sys) of self-testing of measured system values; and self-test operations (A Chk) of comparison between intermediate results of the sub-programs (P1,..., Pn), and said self-test operations (A st1, A sys, A Chk) comprise: generating respective self-test data (D st1, D sys, D chk) corresponding to the self-test operations (A st1, A sys, A Chk) and carrying out checking operations (51, 61) on said self-test data (D st1, D sys, D Chk); exchanging said self-test data (D st1, D sys, D Chk) continuously via a protocol of messages with the further independent control module; carrying out at least part of said checking operations (51, 61) in said further control module; and carrying out said operation of decomposition of the program into a plurality of parallel subprograms (P1,..., Pn) to obtain a coverage target (k st1, k sys, k Chk) for each of said self-test operations (A st1, A sys, A Chk) that is associated to a respective subprogram (P1,..., Pn) or processing module in such a way that it respects a given failure-probability target (g12; g). performing an operation of decomposition of a program that includes a safety function and is to be executed via said system into a plurality of parallel sub-programs (P1,..., Pn); assigning execution of each parallel sub-program (P1,..., Pn) to a respective processing module of the system, in particular a processor (C1,..., Cm) of said multiprocessor architecture or virtual machine (V1,...,Vn) associated to one of said processors (C1,..., Cm); and carrying out in the system, periodically according to a cycle frequency (f cyc) of the program during normal operation of said system, in the framework of said safety function, self-test operations (A st1, A sys, A Chk) associated to each of said sub-programs (P1,..., Pn) and to the corresponding processing modules on which they are run, said method being characterized in that said self- test operations (A st1, A sys, A Chk) comprise: diagnostic-self-test operations (A st1), which carry out diagnostic self-tests; operations (A sys) of self-testing of measured system values; and self-test operations (A Chk) of comparison between intermediate results of the sub-programs (P1,..., Pn), diagnostic-self-test operations (A st1), which carry out diagnostic self-tests; operations (A sys) of self-testing of measured system values; and self-test operations (A Chk) of comparison between intermediate results of the sub-programs (P1,..., Pn), and said self-test operations (A st1, A sys, A Chk) comprise: generating respective self-test data (D st1, D sys, D chk) corresponding to the self-test operations (A st1, A sys, A Chk) and carrying out checking operations (51, 61) on said self-test data (D st1, D sys, D Chk); exchanging said self-test data (D st1, D sys, D Chk) continuously via a protocol of messages with the further independent control module; carrying out at least part of said checking operations (51, 61) in said further control module; and carrying out said operation of decomposition of the program into a plurality of parallel subprograms (P1,..., Pn) to obtain a coverage target (k st1, k sys, k Chk) for each of said self-test operations (A st1, A sys, A Chk) that is associated to a respective subprogram (P1,..., Pn) or processing module in such a way that it respects a given failure-probability target (g12; g).