Extract

TO MARK JOSEPHS

Thank you for your generous comments. And thank you for raising a matter that is dear to my heart, though I did not mention it in my talk. It is the topic of programming language design.

This was the topic that first excited my interest in verification research, when I embarked on my academic career in 1968. I started with Dijkstra's thesis that the goal of programming language design was to help programmers more easily to write correct programs. I postulated that ease of correct programming was directly correlated with the ease of proving them correct. Therefore, the elucidation of the formal rules of program proof could provide an objective scientific criterion for judging the quality of a programming language or feature. My suggestions about conditional critical regions and monitors were directly inspired by this ideal.

Unfortunately the ideal has not attracted a wide following. There are, however, hopeful signs. The designers of Java and C# have made valiant attempts to avoid the more obvious traps and confusions that afflict programmers in the legacy languages C and C + +.

You do not currently have access to this article.