For example (in C):
int break = 1;
int for = 2;
Why will the compiler have any problems at all in deducing that break
and for
are variables here?
So, we need keywords because
- we want the programs to be readable
- we do not want to over-complicate the job of already complex compilers of today
- but most importantly, a language is lot more powerful if some 'key'words are reserved for some special actions. Then, the language can think of being useful at a higher level rather than dying in trying to implement a for loop in an unambiguous way.
FWIW, Tcl doesn't have any reserved words. You can have variables and functions named "if", "break", etc. The interpretation of a token is totally dependent on the context. The same token can represent a command in one context, a variable in another, or a literal string in another.