… [a] laboratory [with] new computing equipment of such a radically different architecture, [they] had concluded that a new programming language was needed … But they got their language design never started because they felt that their product should be so much like FORTRAN that the casual user would hardly notice the difference "for otherwise our users won't accept it"
… standard objections raised from the floor… : "What you have shown is very nice for the little mathematical examples with which you illustrated the techniques, but we are afraid that they are not applicable in the world of business data processing, where the problems are much harder, because there one always has to work with imperfect and ambiguous specifications."
… the LISP 1.5 Manual: halfway their description of the programming language LISP, its authors give up and from then onwards try to complement their incomplete language definition by an equally incomplete sketch of a specific implementation. Needless to say, I have not been able to learn LISP from that booklet!
At an international summer school in 1973… [a professor said] "ALGOL 60 was a very inefficient language", while what he really meant was that with the equipment available to him, he and his people had not been able to implement ALGOL 60 efficiently.
Another fairly well-known professor …repeatedly argued in public that there is no point in proving the correctness of one's programs written in a higher-level language "because, how do you know that its compiler is correct?".
… the often expressed opinion that "one cannot use a programming language that has not been implemented". But this is nonsense, of course one can! One can use any well-defined programming language, whether implemented or not, for writing programs in; it is only when you want to use those programs to evoke computations, that you need an implementation as well.
"Scientific thought comprises "intelligent thinking" as described above. A scientific discipline emerges with the —usually rather slow!— discovery of which aspects can be meaningfully "studied in isolation for the sake of their own consistency", in other words: with the discovery of useful and helpful concepts. Scientific thought comprises in addition the conscious search for the helpful concepts."
#include <stdlib.h>
#include <stdio.h>
int main() {
int i = 1;
printf("%d %d %d\n", i++, i++, i);
return 0;
}
√ dijkstra74 % clang order.c -o order_clang.c
clang order.c -o order_clang.c
order.c:6:25: warning: multiple unsequenced modifications to 'i' [-Wunsequenced]
printf("%d %d %d\n", i++, i++, i);
^ ~~
1 warning generated.
√ dijkstra74 % ./order_clang.c
./order_clang.c
1 2 3
The Java programming language guarantees that the operands of operators appear to be evaluated in a specific evaluation order, namely, from left to right. It is recommended that code not rely crucially on this specification. Code is usually clearer when each expression contains at most one side effect, as its outermost operation, and when code does not depend on exactly which exception arises as a consequence of the left-to-right evaluation of expressions.