PETER ONION wrote: >> Worse, what I wrote above would not be >> interpreted as intended, but would be perfectly legal and not >> generate any compile error. > > Indeed, but who's fault is that ? You wrote valid C and that's > really all the compiler can check for. If your C code doesn't > do what you expected it to do then it's because you don't understand > the C syntax and that's not the compiler's fault ! ;-) It's not about "fault", and in any case it can't be the compiler's since it's just following the rules of the language. Of course it's on the programmer to know the syntax of the language, but there is also good and bad syntax design. In this case the syntax allows a easily made error to still result in legal code but to not be interpreted as intended. Programmers will always come u= p with more clever errors than a language designer can and should account for= , but a measure of good language design is how much common and should-be-anticipated errors get caught as illegal syntax. A great example is the really irresponsible C-ism "if (i=3D1)...". While the error is technically the programmers, the syntax rules are just asking for humans to make that mistake. In these two cases at least, Pascal gets it a lot more right than C. In Pascal: if outer_condition then if inner_condition then count :=3D 1; else ... Would generate a syntax error because the ";" ends the IF statement and ELS= E therefore is not valid there. In the second case, the assignment operator is ":=3D" whereas "=3D" is a statement of equality: if i =3D 1 then ... does exactly what most people reading it would think. If you actually wrot= e if i :=3D 1 then ... then you'd get a compile error since a assignment statement isn't allowed a= s the condition expression of a IF statement. Language design *does* matter. Unfortunately C is badly designed but so many people have gotten used to it they have become blind to the problems. ******************************************************************** Embed Inc, Littleton Massachusetts, http://www.embedinc.com/products (978) 742-9014. Gold level PIC consultants since 2000. --=20 http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist .