From: davef@tsoft-inc.com   
      
   On 4/14/2025 8:45 AM, Simon Clubley wrote:   
   > On 2025-04-11, Arne Vajhøj wrote:   
   >> On 4/8/2025 1:27 PM, Simon Clubley wrote:   
   >>> On 2025-04-08, Arne Vajhøj wrote:   
   >>>> On 4/8/2025 8:20 AM, Simon Clubley wrote:   
   >>>>>   
   >>>>> It's a lot more complicated than that.   
   >>>>>   
   >>>>> For example, take a LL(1) RD parser. Even ignoring the processing   
   >>>>> of the results from the parser, how much code (and how much effort)   
   >>>>> do you think it would take to implement it in Macro-32 compared to C ?   
   >>>>   
   >>>> Still not obvious to me that it would not follow normal LOC/FP   
   >>>> ratios.   
   >>>   
   >>> Try implementing one, especially with a reasonably sized grammar, and   
   >>> you will very rapidly understand that it is not as simple as you seem   
   >>> to think it is. :-)   
   >>   
   >> I have not made any claim about it being simple.   
   >>   
   >> I have made a claim that the ratio for LOC/FP for Macro-32   
   >> and LOC/FP for C for such a problem would not be significantly   
   >> different from other application types.   
   >>   
   >   
   > That claim is clearly incorrect.   
   >   
   > The amount of Macro-32 code required for something higher-level such   
   > as a RD parser that can be concisely expressed in C compared to assembly   
   > language is clearly greater than, say a device driver, where the device   
   > access and programming sequence is the same regardless of whether it   
   > is done in C or assembly language.   
   >   
   > You cannot even optimise the register access sequence in a C device driver   
   > to reduce the amount of code, (and you even have to use volatile variables   
   > so the compiler doesn't do it for you behind your back.)   
   >   
   >>>> Effort is a different issue. If someone said:   
   >>>>   
   >>>> x1.6 LOC   
   >>>> x16 hours for initial write of code   
   >>>> x160 hours for maintenance of code   
   >>>>   
   >>>> then I would consider it likely.   
   >>>>   
   >>>> It has been hinted a few time that the DCL code is not easy to   
   >>>> understand and modify.   
   >>>>   
   >>>   
   >>> As I mentioned above, this is no longer about DCL. I picked the above   
   >>> standalone example, a LL(1) RD parser, because it's a really good example   
   >>> of the different scale of effort involved in writing it in Macro-32   
   >>> instead of in C.   
   >>   
   >> I have not made any claim about effort either.   
   >>   
   >> Are you sure that you have understood the topic??   
   >>   
   >   
   > Yes, but it's not clear if you have Arne.   
   >   
   > Simon.   
   >   
      
   I'd argue that such comparisons can be misleading. As a simple example,   
   specifying some arguments and invoking some routine. In either case, the   
   arguments must be specified, then invoking the routine. Is each PUSH of an   
   argument in assembler a separate instruction, or, just specification of an   
   argument? One must still specify the arguments in either case.   
      
   An example of a style I favor:   
      
    Stat% = SYS$QIOW( , ! Event flag &   
    ListenCh% By Value, ! VMS channel &   
    IO$_SETCHAR By Value, ! Operation &   
    IOSB::Stat%, ! I/O status block &   
    , ! AST routine &   
    , ! AST parameter &   
    ListenOpt::Protocol%, ! P1 &   
    , ! P2 &   
    ServerItemLst::Len%, ! P3 - local socket   
   na^   
    BackLog% By Value, ! P4 - connection   
   back^   
    SockOptItemList::Len%, ! P5 - socket   
   options &   
    ) ! P6   
      
   Ok, how many lines of code?   
      
   :-)   
      
   --   
   David Froble Tel: 724-529-0450   
   Dave Froble Enterprises, Inc. E-Mail: davef@tsoft-inc.com   
   DFE Ultralights, Inc.   
   170 Grimplin Road   
   Vanderbilt, PA 15486   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|