I don&#x27;t think this can be done with C. Really<p>- Remove all possibilities of memory aliasing. Only exception might be when reading from devices&#x2F;network (some kind of boxing, unboxing)<p>- All array accesses are bounds checked.<p>- Checked conversion between int&#x2F;unsigned int and different sized items. Converting a char into an unsigned int? Be explicit in what you want to do<p>- No pointers &quot;flying around&quot;, unbound to types. Have reference-counted objects at least. Allow a way of passing a sub-array without copying&#x2F;with read only permissions.<p>- Remove &quot;gotchas&quot;, like ordering of statements, assignment on comparison (unless it&#x27;s obviously correct), no &quot;compiler dependent&quot; behaviour, no &quot;undefined behaviour&quot; (unless it&#x27;s machine specific)