Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!bfmny0!tneff From: tneff@bfmny0.UUCP (Tom Neff) Newsgroups: comp.sys.intel Subject: Re: PLM vs. C for 80286/80386 Keywords: PLM C Message-ID: <14381@bfmny0.UUCP> Date: 6 Jun 89 00:43:16 GMT References: <598@philtis.UUCP> Reply-To: tneff@bfmny0.UUCP (Tom Neff) Organization: ^ Lines: 53 In article <598@philtis.UUCP> hd@philtis.UUCP (Henk D. Davids @ PMSN) writes: >Not trying to start another war, but I'm just looking for >the relative merits of PLM versus C for programming >our target machines that are based on Intel 80x86 machines. "Just looking for the relative merits" is of course exactly how those wars get started. :-) Both products exist and work well. Intel C is dpANSI conformant (within epsilon, I dunno if it's perfect). Both languages can call each other and other Intel HLL's. C gives you a choice of "fixed" or "variable" parameter passing conventions. If you code in Intel C you can maximize portability to other platforms should the need arise later on. With PL/M on the other hand you can get a little tighter code for some of the classic kinds of systems programming constructs. For instance if you want a CASE driven state machine in a critical interrupt handler, PL/M implements DO CASE as a jump indirect indexed off a short array of offsets, e.g. JMP CASETBL[BX]. C on the other hand does 'switch' as a full if-then/elseif-then/elseif-then... series. So to get to a late case you may have to do a dozen compares and jumps. Unimportant for ordinary application code but possibly critical for, say, an A/D handler. On the other hand if you're bench testing an embedded system using an enhanced development platform, you may find the easy access to C's RTL (printf etc) to be helpful, although you'll have to #if those out before building the embedded target, usually. If your memory model needs are exotic or complex PL/M may be the only way to get it (besides ASMx86). Its extended segmentation models are impressively flexible. Intel C has four basic memory models and a "far" keyword but doesn't support extended segmentation. >We use VAX/VMS systems for cross-development. All the tools are available as VAX cross products I believe. I would >appreciate any input that will help us to make a decision >based on facts, rather than religion ... This presupposes religious arguments are never based on facts. :-) If your shop can afford VAXen there's no sense in not buying BOTH Intel C and PL/M and making your own decision. Whichever you go with for the main project, the other will probably come in handy along the way. The reason arguments like C-vs-PL/M get religious is that only a fanatic would absolutely recommend one over the other! Each product has its strengths and weaknesses and each is usable in a production environment. Your own computing needs are a big part of the answer, so evaluating both is best. -- Tom Neff UUCP: ...!uunet!bfmny0!tneff "Truisms aren't everything." Internet: tneff@bfmny0.UU.NET