tag:blogger.com,1999:blog-8288194986820249216.post3683304826687466779..comments2024-03-22T05:09:17.789-07:00Comments on Abstract Heresies: Joe Marshallhttp://www.blogger.com/profile/03233353484280456977noreply@blogger.comBlogger6125tag:blogger.com,1999:blog-8288194986820249216.post-40620580168671553572010-04-19T04:22:47.033-07:002010-04-19T04:22:47.033-07:00Counter point: Notes on Postmodern Programming.Counter point: <a href="http://homepages.mcs.vuw.ac.nz/~kjx/papers/nopp.pdf" rel="nofollow">Notes on Postmodern Programming</a>.Pascal Costanzahttps://www.blogger.com/profile/04512975624438301971noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-11622422705608923782010-04-14T17:18:49.114-07:002010-04-14T17:18:49.114-07:00I think the real question here is not whether your...I think the real question here is not whether your understanding of the semantics is <em>formal</em>, but whether it's <em>complete</em>. A language lawyer's understanding of semantics covers all possible situations, however unreasonable, but a working programmer's understanding need only cover the situations they encounter in their programs.<br /><br />Incomplete understanding isn't necessarily a problem. One can usefully program in Scheme, for instance, without knowing anything about continuations, and one can use continuations for nonlocal exit without understanding their more general power. Since people have very limited intelligence, all of our understanding will be <em>sometimes</em> incomplete, and language semantics is not a particularly dangerous place for that incompleteness. When it becomes a problem, we can learn more.<br /><br />Compilers, of course, don't have that option, so their understanding must be close to complete, although it needn't match the formal semantics in all cases — users will accept limitations like finite memory, and sometimes even semantic holes like Schemes without reusable continuations or tail-call optimization.Arcane Sentimenthttps://www.blogger.com/profile/04144052171693893368noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-6748640311479374622010-04-14T07:18:30.791-07:002010-04-14T07:18:30.791-07:00@john,
Should we agree there is no difference be...@john,<br /><br /> Should we agree there is no difference between formal and informal semantics?roghttps://www.blogger.com/profile/02471808724169296390noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-62622004405220083582010-04-14T07:15:16.801-07:002010-04-14T07:15:16.801-07:00It is a great fallacy to suppose that formalizatio...It is a great fallacy to suppose that formalization necessarily improves communication. Both formal and informal semantics are rhetorical strategies by which people attempt to communicate to other people what they have in mind; either may succeed or fail, and what succeeds with one audience may fail with another.<br /><br />What is more, speaking of <i>the</i> formal or informal semantics as if it were unique is also misleading. There must be fifty ways to understand C.<br /><br />"Almost all theorems are true, but almost all proofs have bugs." —Paul Pedersen, mathematician and hackerJohn Cowanhttps://www.blogger.com/profile/11452247999156925669noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-53195836104492937712010-04-14T04:57:04.861-07:002010-04-14T04:57:04.861-07:00But then...
...if formal semantics is so importan...But then...<br /><br />...if formal semantics is so important, why do we accept incomplete and buggy implementation of the formal semanticsroghttps://www.blogger.com/profile/02471808724169296390noreply@blogger.comtag:blogger.com,1999:blog-8288194986820249216.post-6992331479028022702010-04-14T00:16:25.376-07:002010-04-14T00:16:25.376-07:00You can know an informal semantics–but as long as ...You can know <i>an</i> informal semantics–but as long as it's informal, you can't be sure that your semantics agrees with the ones used by the compiler writers, or your collaborators. So you get the well-known method of suck-it-and-see. New data, or a compiler upgrade, can unexpectedly reveal differences in behaviour introduced by "optimisations" that you thought were benign–aka bugs.Michael Fourmanhttps://www.blogger.com/profile/09922003883586518458noreply@blogger.com