The essence of parallel programming
Now i want to attack a problem about the essence of parallel programming
I have understood more programming in Functional programming like
programming in Scheme, Lisp and Haskel.. and i have programmed
Now what is the essence of parallel programming ?
You can not speak about the essence without speaking about
the empirical facts that constrain parallel programming..
Now if you look at the functional programming Haskel, it
tries to eliminate race conditions by using pure functions
and Mvars, but it still is prone to Deadlocks and to Starvation
and to the following form of logical problem:
Look at this Relacy Race Detector:
Other that look at this:
If every thread has to increment "a" one time, this form of logic
is nasty, because if we do the following in Relacy Race Detector:
How can Relacy Race Detector detect that the logic that every thread has
to increment "a" one time is good ? Relacy Race Detector can
not do it, and this form of logic can become more nasty, so
this is why parallel programming for safe-critical systems
is still too risky.
Other than that modeling with contracts and with Relacy Race Detector
is prone to error, so i think that since the essence of parallel
programming is contrained by all those limitations, i think
parallel programming is still too risky for safe-critical systems.
So i will ask you also a question:
Do you think that modeling with contracts with ADA or Eiffel is
sufficient? i don't think so, because it lesser the probability
of failing , but it still can fail, so contracts or Functional
programming is not the silver bullet.
Amine Moulay Ramdane.