Anti-exploitation technologies (DEP, ASLR, stack protector, etc.) do not provide complete protection. One reason for this is performance; these technologies are designed to work with a low performance overhead.
For a system that has high security needs, but low performance needs, are there techniques that can provide more reliable protection against buffer overruns (and other memory corruption flaws)? As a rule of thumb a 10x slow down would be no problem, although a 100x slow down would probably be unacceptable.
I'm interested in both theoretical techniques and practical systems.
Edit: To be clear, I'm talking about a system that needs to run an existing code base in a non-memory-safe language. So Java, .Net, etc. won't help.