<story><title>Why code that never goes wrong can still be wrong</title><url>http://www.pathsensitive.com/2018/01/the-three-levels-of-software-why-code.html</url></story><parent_chain></parent_chain><comment><author>jasode</author><text>Instead of first digging into the author&amp;#x27;s &lt;i&gt;&amp;quot;Definition #3&amp;quot;&lt;/i&gt; and &lt;i&gt;&amp;quot;Level 3 Design&amp;#x2F;Logic&amp;quot;&lt;/i&gt;, I would recommend reading the 1985 paper &lt;i&gt;&amp;quot;The Limits of Correctness&amp;quot;&lt;/i&gt; by Bryan Cantwell Smith.[1]&lt;p&gt;I think it&amp;#x27;s one of the top 5 papers every programmer should read.  It&amp;#x27;s a short and easy read that makes one think about the limits of &lt;i&gt;models&lt;/i&gt;, the limits of &lt;i&gt;specifications&lt;/i&gt;, and the limits of &lt;i&gt;formal verification&lt;/i&gt;.  After grokking BCS&amp;#x27;s insights, there seems to be (an unintended) hubris in James Koppel&amp;#x27;s statement, &lt;i&gt;&amp;quot;I now have two years experience teaching engineers a better understanding of how to [...] make code future-proof&lt;/i&gt;&amp;quot; in his framework of removing defects from &amp;quot;Level 3&amp;quot; design.&lt;p&gt;(As a side note, there&amp;#x27;s also a cosmic irony as that paper starts with an anecdote about the &amp;quot;correctness&amp;quot; of  detecting ballistic missiles in 1960 given the recent false alarm in Hawaii.)&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;www.student.cs.uwaterloo.ca&amp;#x2F;~cs492&amp;#x2F;11public_html&amp;#x2F;p18-smith.pdf&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;www.student.cs.uwaterloo.ca&amp;#x2F;~cs492&amp;#x2F;11public_html&amp;#x2F;p18...&lt;/a&gt;</text></comment>
<story><title>Why code that never goes wrong can still be wrong</title><url>http://www.pathsensitive.com/2018/01/the-three-levels-of-software-why-code.html</url></story><parent_chain></parent_chain><comment><author>psyc</author><text>If code is wrong, yet nothing goes wrong, it&amp;#x27;s miles ahead of almost all of the software I battle with to get work done every day.</text></comment>