Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!munnari.oz.au!brolga!uqcspe!batserver.cs.uq.oz.au!brendan From: brendan@batserver.cs.uq.oz.au (Brendan Mahony) Newsgroups: comp.realtime Subject: Re: Software primitives for real-time programming languages Keywords: Languages Message-ID: <5003@uqcspe.cs.uq.oz.au> Date: 26 Sep 90 00:37:03 GMT References: <12712@cs.utexas.edu> <1424@umriscc.isc.umr.edu> <39180@shemp.CS.UCLA.EDU> <225@srchtec.UUCP> Sender: news@uqcspe.cs.uq.oz.au Reply-To: brendan@batserver.cs.uq.oz.au Lines: 40 johnb@srchtec.UUCP (John T. Baldwin) writes: >I agree with the statement that >assembly coding is typically less "reliable" than other forms of coding; >yet I disagree that it is inappropriate for RT. It may be a little hard to meet a timing requirement if your are completely malfunctioning. Real-time reliability is a proper extension of software engineering reliability, not an orthogonal issue. >I would rather not >resort to assembler, but given certain task/hardware pairs, you only have >a certain time rate of execution ("performance"), and it may be that the >only way to meet the RT constraints of your given task on the specified >hardware is to use assembler. :-{ Probably the compiler writer knows more about extracting "juice" out of the processor than most programmers, but I will ignore that fact. Programming in assembly is no theoretical impediment to "reliable" programming, but it does mean one or two more refinement steps, and a much larger source code to reason about. Hence I would expect it to be much more expensive, with fairly little return in performance over a good compiler. You pays ya money ... Ian Hayes has just walked in and suggested that a language in which you could make timing demands on the compiled code would be useful. For example a := exp | /\ t < 4 microsecs; Inability to comply would be flagged as a "syntax" error, along the lines of type mismatches etc. Does anyone know of any proposals along these lines? -- Brendan Mahony | brendan@batserver.cs.uq.oz Department of Computer Science | heretic: someone who disgrees with you University of Queensland | about something neither of you knows Australia | anything about.