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,359 of 117,927   
   Hans Bezemer to dxf   
   Re: Parsing timestamps?   
   01 Jul 25 14:22:02   
   
   From: the.beez.speaks@gmail.com   
      
   On 27-06-2025 03:39, dxf wrote:   
   > Yet forthers have no problem with this.  Take the SwiftForth source code.   
   > At best you'll get a general comment as to what a function does.  How do   
   > they maintain it - the same way anyone proficient in C maintains C code.   
   > Albert is correct.  Familiarity is key to readability.  That's not to say   
   > code deserving documentation shouldn't have it.  OTOH one shouldn't be   
   > expecting documentation (including stack commentary) for what's an everyday   
   > affair in Forth.   
      
   I think you and Albert are on the right track here. Familiarity is a   
   large part of this "readability" thingy. There are a few notes I want to   
   add, though:   
      
   1. "Infix notation" is part of this familiarity. I know I've commented   
   every single expression in TEONW, since I understand those "infix"   
   expressions much better than all those RPN thingies - and you got   
   something to check your code against;   
      
   2. Intentionality. I do this a LOT. E.g. if you find OVER OVER in my   
   code, you may be certain those two items have nothing to do with each   
   other. If you find 2DUP it's a string, a double number or another   
   "addr/count" array. CHOP replaces 1 /STRING. Also: stack patterns can be   
   codified like SPIN or STOW;   
      
   3. Brevity. Short definitions are easier to understand. If you can   
   abstract it, put a name of it can spare the performance - split it up.   
      
   4. Naming. I give this a LOT of thought. I prefer reading a name and   
   having a pretty good idea of what that code does (especially in the   
   context of a library or a program). See:   
   https://sourceforge.net/p/forth-4th/wiki/What%27s%20in%20a%20name%3F/   
      
   Feel free to disagree. It may not work for you, but at least it works   
   for me.   
      
   Hans Bezemer   
      
   --- 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