Interessanter Talk, aber 100% Korrektheit ist nicht möglich. Die Korrektheit eines Programms kann nur beweisen, daß es einer (formalen) Spezifikation entspricht. Aber Spezifikationen halten nicht immer den Kontakt mit der realen Welt stand.
Sprachen wie Haskell oder Erlang und die Konzept wie Lambda Calculus mit besser entwickelten Typ-Theorien, helfen allerdings bei vielen Problemen, wie Speicherproblemen, Buffer-Overflows usw., was Programme schon sicherer machen kann. Aber gibt es Haskell für Embedded Systeme und kann man harte Realtime damit programmieren?
CompCert, oder das SAFE-Projekt, angelehnt an Lisp-Maschinen, klingen allerdings nach guten Entwicklungen, sollte man im Auge behalten. Wird aber wohl noch ein paar Jahrzehnte dauern, bevor solche besseren Konzepte in der Industrie ankommen, wenn überhaupt. Lisp-Maschinen (und alle Konzepte davon) sind ja sogar wieder in der Versenkung verschwunden.
All das hilft aber nicht bei fehlerhaften Spezifikationen. Ein Beispiel wären Cross-Site-Scripting Attacken. Es werden perfekt alle HTML-Standards usw. eingehalten, es gibt keine klassische Angriffe durch Fehler in C-Programmen, aber durch eine Lücke in der Spezifikation einer Webanwendung (bestimmten HTML-Code nicht zu filtern) sind solche Angriffe möglich. Natürlich würde heutzutage solche Fehler keiner mehr machen, aber je komplexer ein System ist, umso komplexer sind auch die Fehler- und Angriffsmöglichkeiten und es werden garantiert immer neue entdeckt.