DEMOS 2000(ID:6564/dem005)


DEMOS with denotational semantics


People:
Related languages
DEMOS => DEMOS 2000   Evolution of

References:
  • Birtwistle, Graham and Tofts, Chris "DEMOS 2000 - A semantically justified simulation language" August 3, 2001 view details pdf Extract: Evolution of Demos 2000
    Demos has taken some time to evolve. Vaucher long ago suggested writing a GPSS-like package in Simula and implemented a prototype package himself. The author did the same and learnt some valuable lessons. In particular, GPSS then allowed only one transaction type (which closely parallels a process in Simula or an entity in Demos). For many examples this is sucient, but the rest have to be bent into this format. It certainly concentrates the mind wonderfully well. Experience with GPSS teaches one how to do a lot within a simple framework | how to separate out and de-emphasize minor components and resist the urge to overmodel. GPSS also teaches the value of resource types, and standard methods of synchronisation, automatic report generation and data collection.
    About this time, the author collaborated for a while with Robin Hills. Hills already had a considerable background in both practical simulation work and simulation language design (see Hills [25, 26]). This background in activity based languages proved especially valuable when we sought ways of tackling models involving complicated decisions | an area in which GPSS is weak. The product of our joint e orts, called SIMON 75 (see Hills and Birtwistle [28]), used waituntil statements to make the scheduling of events as easy as possible and in a uniform style. Waits until are expensive on machine time, but the package had some merit in that it was easy to learn and resulted in concise yet readable programs.
    It came as a pleasant surprise when some 100 or so non-trivial SIMON 75 programs were analysed by the author for their usage of wait until. They proved necessary in only a few cases, and it was at once apparent that a much faster new version could be implemented which would retain the ease of learning and textual clarity of the old. Along with a few other improvements, this was developed into Demos.
    Despite its modest design aims, Demos has been successfully used to tackle some realistic industrial simulations. The author has applied Demos to problems in the steel industry, for work on operating systems (segmentation and paging algorithms), and designing real time processes (long haul and local area networks, multiple cpu con gurations). At the time of writing, Demos is used in the aerospace, automobile, oil, gas, steel, and telecommunications industries, and at a number of research institutes and universities.
    DEMOS2000 arose as a result of attempts to provide a denotational semantics for DEMOS. Initial investigations demonstrated a close match between process algebra and DEMOS, but there were two major problems:
    - the lack of a native compound wait (WaitUntil);
    - explicit manipulation of the event queue by the modeller;
    the second point above is largely forced by the former. As Graham noted in his original DEMOS book:
    waituntil/signal synchronisations are hard to get right... practically every error noted in developing the examples for this book was missing a call on signal!
    The changes made between DEMOS and DEMOS2000 have been largely driven by this observation. The other major change is the addition of data values on some of the synchronisations between entities. This is again is forced by the adoption of a strong process model. In this instance we do not allow processes to inspect the data in other processes other than by an explicit transfer of information. This addition brings the expressive power of DEMOS to essentially that of a synchronous process algebra, where there are some interesting expressiveness results.