Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!cs.utexas.edu!uunet!bfmny0!tneff From: tneff@bfmny0.UUCP (Tom Neff) Newsgroups: comp.realtime Subject: Re: Searching for realtime languages Message-ID: <14360@bfmny0.UUCP> Date: 28 May 89 01:28:32 GMT References: <699@tuvie> <2100@internal.Apple.COM> <14355@bfmny0.UUCP> <9142@csli.Stanford.EDU> Reply-To: tneff@bfmny0.UUCP (Tom Neff) Distribution: all Organization: ^ Lines: 33 In article <9142@csli.Stanford.EDU> knight@csli.stanford.edu (Bob Knight) writes: >In article <14355@bfmny0.UUCP> tneff@bfmny0.UUCP (Tom Neff) writes: >> I recommend PL/M as a realtime >>language of choice in all Intel CPU environments from 8051 to 80486. > >I would agree, having written loads of PL/M code for 808x platforms, with >one caveat --- if you want/need complex data structures, PL/M is not a good >choice: creating an analogue to typedef is painful, one may not nest >structures, and structures themselves are (grossly, in my opinion) limited >as to the number of elements they may have. Actually as of PL/M 2.7 and later (currently at 3.1 so we're talking a couple of years) most of those limitations are gone. Structures can indeed be nested, and the number of elements is up, as are things like proc counts and LITERALLY lengths. A big improvement. I agree you don't have the flexibility of a C typedef, and occasionally it makes you have to think a bit harder, but my experience in realtime programming is that anytime things get more complex than what PL/M easily provides, you SHOULD be thinking harder! Like whether things need to be that complex for one thing... :-) The two reasons C is better for some of this systems work IMHO are pointer magic and the += -= *= /= &= |= ~= operators. Nothing I hate worse than having to write mystruct(ix*5-1).tag(iy+delta) = mystruct(ix*5-1).tag(iy+delta) + 1; However after working with PL/M for 7 years I know it backwards and forwards and therefore I *trust* it when the coding is tight and the consequences life-or-death. No frills but no surprises either. -- Tom Neff UUCP: ...!uunet!bfmny0!tneff "Truisms aren't everything." Internet: tneff@bfmny0.UU.NET