home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 117,583 of 117,927   
   Hans Bezemer to All   
   Re: 0 vs. translate-none   
   26 Sep 25 17:09:55   
   
   From: the.beez.speaks@gmail.com   
      
   On 25-09-2025 07:22, dxf wrote:   
      
   4.1.1 Implementation-defined options   
   The implementation-defined items in the following list represent   
   characteristics and choices left to the discretion of the implementor,   
   provided that the requirements of this Standard are met.   
      
   (HB) This is an extensional definition - it lists all elements in the   
   set of "implementation defined options".   
      
   4.1.2 Ambiguous conditions   
   A system shall document the system action taken upon each of the general   
   or specific ambiguous conditions identified in this Standard.   
      
   (HB) This is an extensional definition - it lists all elements in the   
   set of "ambiguous conditions".   
      
   The fun part is that in ANS-Forth "undefined" is actually undefined.   
   Using Merrian Webster: *not provided with a definition*   
      
   "not prescribe a specific behavior" equates "ambiguous condition" (2.1):   
   a circumstance for which this Standard does not prescribe a specific   
   behavior for Forth systems and programs. It's not related to "undefined".   
      
   If you invoke an "ambiguous condition" as a programmer, you cannot   
   depend on any standard behavior- because there is none.   
      
   If you have to tackle an "ambiguous condition" as an implementer, the   
   standard describes in 3.4.4 (Possible actions on an ambiguous condition)   
   which action you can take. This is a limited list - so it's not   
   "anything you wanna do".   
      
   E.g. "no loop parameters" is an ambiguous condition for Forth's +LOOP -   
   and has to be tackled according to section 3.4.4. However +LOOP in   
   interpretation mode is undefined. Since "undefined" is undefined, the   
   possible actions that can be taken are also undefined. If you want to   
   interpret that as "anything goes" I won't blame you ;-)   
      
   Show some nice ASCII art. Just a suggestion.   
      
   Hans Bezemer   
      
      
      
   > On 24/09/2025 4:45 pm, Anton Ertl wrote:   
   >> albert@spenarnc.xs4all.nl writes:   
   >>> This shows me how to Lift this defect. Rename LITERAL to (LIT) and   
   >>> define   
   >>> : LITERAL 'LIT , , ;  IMMEDIATE   
   >>   
   >> Looks good.   
   >>   
   >>> In the standard:   
   >>> LITERAL :   
   >>> Interpretation: Interpretation syntax for this word is undefined.   
   >>   
   >> Has ISO changed the text?  Forth-94 and Forth-2012 say:   
   >>   
   >> |Interpretation:   
   >> |Interpretation semantics for this word are undefined.   
   >>   
   >>> What if the standard says   
   >>>    execution of this word while in interpret mode is an ambiguous condition   
   >>   
   >> It does not, and that's a good thing.   
   >   
   > "ambiguous condition:   
   > A circumstance for which this Standard does not prescribe a specific behavior   
   > for Forth systems and programs."   
   >   
   > "undefined" and "not prescribe a specific behavior" seem much alike to me.   
   > Either way, the Standard is saying don't do this thing.  It's not as if   
   > they'd said nothing about it and left it up to you.   
   >   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca