From: bc@freeuk.com   
      
   On 29/11/2025 03:38, Keith Thompson wrote:   
   > bart writes:   
   >> On 28/11/2025 23:23, Keith Thompson wrote:   
   >>> bart writes:   
   >>>> On 28/11/2025 02:33, Janis Papanagnou wrote:   
   >>> [...]   
   >>>>> You can of course add as many commodity features to "your language"   
   >>>>> as you like. I seem to recall that one of the design principles of   
   >>>>> "C" was to not add too many keywords. (Not sure whether 'A.odd' is   
   >>>>> a function or keyword above [in "your language"].)   
   >>>>   
   >>>> It is a reserved word, which means it can't be used as either a   
   >>>> top-level user identifier, or a member name. With extra effort, it   
   >>>> could be used for both, but that needs some special syntax, such as   
   >>>> Ada-style "A'odd"; I've never got around to it.   
   >>>>   
   >>>> In Pascal (where I copied it from) it is a reserved word.   
   >>> In Pascal, "odd" is not a reserved word. It's the name of a   
   >>> predefined function.   
   >>   
   >> So what's a 'reserved word' then? To me it is something not available   
   >> as a user-identifier because it has a special meaning in the language,   
   >> which may be that of a predefined function among other things.   
   >   
   > Right. The name "odd" is available as a user-defined identifier.   
   > If you define something named "odd" in Pascal, it hides the   
   > predefined function of that name.   
      
   I did test it with a toy Pascal compiler I have. Defining 'odd' as a   
   variable didn't work, but that was for other reasons.   
      
      
   > You can think of Pascal's predefined functions as being declared   
   > in an outer scope, surrounding the main program.   
      
   I took 'predefined functions' to mean 'built-in functions' (effectively,   
   operators with function-like syntax), that cannot be overridden.   
      
   So 'odd' is not a reserved word in Pascal; I was mistaken.   
      
   (My opinion is that being able to shadow fundamental language features   
   is undesirable. Being able to reuse them as user identifiers is another   
   matter, but that would involve tricks with syntax or context to avoid   
   ambiguity.)   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|