Deutsch English Français Italiano |
<vtj2tu$1cfo8$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Dave Froble <davef@tsoft-inc.com> Newsgroups: comp.os.vms Subject: Re: Clair Grant on VMS code base Date: Mon, 14 Apr 2025 09:34:25 -0400 Organization: A noiseless patient Spider Lines: 96 Message-ID: <vtj2tu$1cfo8$1@dont-email.me> References: <vsh5m5$3is6e$1@dont-email.me> <vsmj7h$19qc0$1@dont-email.me> <vsmk9b$18rgf$1@dont-email.me> <vsp6ol$eli$1@dont-email.me> <vsv6jf$28vt6$1@dont-email.me> <vt34b1$26vpf$1@dont-email.me> <vt34qq$26k93$1@dont-email.me> <vt3m9a$2n50b$1@dont-email.me> <vtbqjj$29rog$2@dont-email.me> <vtj025$18n4d$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Mon, 14 Apr 2025 15:34:54 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ae21160bc05f164a4c225e63c8ea233e"; logging-data="1457928"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+0laQsMNgYVlonMYWKF5OfQchhTRqbYjY=" User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 Cancel-Lock: sha1:HRr6EFj6EJXTO7AYGz9cVfVB2/E= In-Reply-To: <vtj025$18n4d$1@dont-email.me> On 4/14/2025 8:45 AM, Simon Clubley wrote: > On 2025-04-11, Arne Vajhøj <arne@vajhoej.dk> wrote: >> On 4/8/2025 1:27 PM, Simon Clubley wrote: >>> On 2025-04-08, Arne Vajhøj <arne@vajhoej.dk> 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