Xref: utzoo comp.lang.c:9809 comp.os.misc:417 Path: utzoo!mnetor!uunet!lll-winken!lll-tis!ames!think!maynard!campbell From: campbell@maynard.BSW.COM (Larry Campbell) Newsgroups: comp.lang.c,comp.os.misc Subject: Re: marketing vs. demerit Message-ID: <1079@maynard.BSW.COM> Date: 30 Apr 88 03:43:43 GMT References: <1988Apr11.201934.20594@utzoo.uucp> <451@goofy.megatest.UUCP> <1988Apr24.004626.3209@utzoo.uucp> <2605@ttrdc.UUCP> <2725@bsu-cs.UUCP> Reply-To: campbell@maynard.UUCP (Larry Campbell) Followup-To: comp.os.misc Organization: The Boston Software Works, Inc. Lines: 40 In article <2725@bsu-cs.UUCP> dhesi@bsu-cs.UUCP (Rahul Dhesi) writes: <>Based on a superficial (and rather skeptical, raised-eyebrow) look ^^^^^^^^^^^ <>at VMS, I conclude as follows. <> <>VMS's design makes it very difficult to include structured control <>structures in DCL. The UNIX shells can save their context between <>commands because they execute other programs as subprocesses. Under <>VMS subprocess creation is so painfully slow that it is seldom done. <>Thus the DCL interpreter cannot save its entire context when executing <>another program. To use while loops and if-then statements the DCL <>interpreter would have to save quite a bit of the current context so it <>could continue executing the current control structure. Nested control <>structures would require even more information to be saved. Alas, the <>DCL interpreter and VMS make this nearly impossible. <> <>This is also the reason why VMS does not allow multiple commands <>on the same line. Doing so would mean saving the command line <>between executions of different programs so the command interpreter <>could then pick the next command on the same line. [This is really getting off the comp.lang.c track, so I've cross-posted and directed followups to comp.os.misc] A little knowledge is a dangerous thing, Rahul. Although VMS does not create new subprocesses to run user programs, DCL does not have to get out of the way when running a user program because the address space is divided into two parts -- one for the user and one for DCL (and RMS). The user part keeps getting zapped and reloaded with user programs, but the DCL/RMS part (P1 in VMS jargon) stays around as long as you're logged in. So there is no _technical_ reason why DCL couldn't easily have multiple commands per line, and reasonable control structures. The reason it doesn't is cultural -- the VMS people have a FORTRAN mentality. For a FORTRAN-inspired system, VMS isn't too bad. ("Gee, for a fat girl, you don't sweat too much.") -- Larry Campbell The Boston Software Works, Inc. Internet: campbell@maynard.bsw.com 120 Fulton Street, Boston MA 02109 uucp: {husc6,mirror,think}!maynard!campbell +1 617 367 6846