Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!fauern!tumuc!guug!ecrc!micha From: micha@ecrc.de (Micha Meier) Newsgroups: comp.lang.prolog Subject: Re: Demons in Prolog Message-ID: <2413@ecrc.de> Date: 6 Dec 90 09:52:13 GMT References: <4716@mahendo.Jpl.Nasa.Gov> Sender: news@ecrc.de Reply-To: micha@ecrc.de (Micha Meier) Organization: European Computer-Industry Research Centre Lines: 36 In article <4716@mahendo.Jpl.Nasa.Gov> alan@nereid.jpl.nasa.gov (Alan Quan) writes: >I need to find out if it's possible to implement demons in Prolog in an >efficient manner. >... >--- any comments you can provide on suitability of >Prolog for real-time environments (Prolog alone or Prolog in conjuction >with C) will be of considerable interest. In the design of the SEPIA Prolog we tried to address exactly these problems, namely the suitability of Prolog for real-time applications and data-driven computation. First about the demons: If the condition for triggering a demon can be stated as a constraint on one or more variables, it is possible to use the coroutining facility, so that each time a variable occurring in the constraint is instantiated (or bound to another such variable), the suspended constraint is woken and the system checks if it can be evaluated or not. If not, it delays and waits for further instantiation. If yes, the body of the constraint predicate is executed in the normal manner. As far as real-time applications are concerned, SEPIA is able to process interrupts asynchronously, so that even if the interrupt comes while an external predicate written in C is executed, the execution is immediately interrupted and the user-defined interrupt handler, which can be any Prolog or external procedure, is invoked. It is also reasonably fast, so that fast response is guaranteed. On the other hand, currently it is running only under UNIX, which is not very good for such applications. We are actually looking for possible real-time applications for SEPIA and we are interested in cooperations in this field. --Micha -- E-MAIL micha@ecrc.de MAIL Micha Meier ECRC, Arabellastr. 17 8000 Munich 81 Germany