Date: Thu, 31 Oct 2013 00:55:49 -0700
On 10/30/13, Gabriel Dos Reis <gdr_at_[hidden]> wrote:
> A redux from the team that sparked discussions last Spring
> and the eventual formation of SG12.
>
> http://pdos.csail.mit.edu/~xi/papers/stack-sosp13.pdf
The end of the introduction has an interesting paragraph:
Another conclusion one can draw from this paper is that
language designers should be careful with defining language
construct as undefined behavior. Almost every language
allows a developer to write programs that have undefined
meaning according to the language specification. Our
experience with C / C++ indicates that being liberal with
what is undefined can lead to subtle bugs.
Unfortunately, my experience with languages that were
completely specified suffered from the same problem. Every
program construct had a meaning, but it might not have been
what the programmer intended, which lead to subtle bugs.
The fact that the authors found bugs through undefined
behavior is actually a good thing. They would not have
been found if the behavior was fully defined.
> A redux from the team that sparked discussions last Spring
> and the eventual formation of SG12.
>
> http://pdos.csail.mit.edu/~xi/papers/stack-sosp13.pdf
The end of the introduction has an interesting paragraph:
Another conclusion one can draw from this paper is that
language designers should be careful with defining language
construct as undefined behavior. Almost every language
allows a developer to write programs that have undefined
meaning according to the language specification. Our
experience with C / C++ indicates that being liberal with
what is undefined can lead to subtle bugs.
Unfortunately, my experience with languages that were
completely specified suffered from the same problem. Every
program construct had a meaning, but it might not have been
what the programmer intended, which lead to subtle bugs.
The fact that the authors found bugs through undefined
behavior is actually a good thing. They would not have
been found if the behavior was fully defined.
-- Lawrence Crowl
Received on 2013-10-31 08:55:51