DEMOS(ID:6332/dem004)

Extensions to Simula 


for Discrete Event Modelling On Simula

Discrete event simulation level grounded in Simula 67 (which is described in the manual as "general-purpose"!)




People:
Related languages
Simon 75 => DEMOS   Evolution of
SIMULA 67 => DEMOS   Extension of
DEMOS => DEMOS 2000   Evolution of
DEMOS => piDEMOS   Simplification of

References:
  • Birtwistle G.M. And Hills P.R. "Simon 75 - A User Oriented Simulation Language In Simula" Paper Presented To Euro Ii Conference, Stockholm, Dec. 1976 Robin Hills (Consultants) 1976 view details
  • Birtwistle, G. "DEMOS - a system for discrete event modelling on Simula" Macmillen, London, 1979. view details
  • Birtwistle G. "The DEMOS Discrete Event Package", Proceedings of the Summer Computer Simulation Conference, 1980, pp 179-183 view details
  • Birtwistle, G. "Demos Implementation Guide and Reference Manual" University of Calgary Research Report number 81/70/22, 1981 view details
  • Birtwistle, G. M. "DEMOS Reference Manual", 2nd Edition, July, 1981. view details
  • Birtwistle, Graham "Introduction to Demos" pp559-572 view details Abstract: Demos [1,2] is yet another discrete event simulation language hosted in Simula. It was released in 1979 and is now running on IBM, DEC, UNIVAC, and CDC hardwares amongst others. The paper contains a short introduction to Simula's object and context features; an explanation of the process approach to simulation; a brief comparison of Simula and GPSS; and finally, the main features of Demos are presented via an example External link: Online copy
          in Proceedings of the 13th Winter Simulation Conference 9-11 December 1981 Peachtree Plaza Hotel, Atlanta, GA view details
  • 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.
          in Proceedings of the 13th Winter Simulation Conference 9-11 December 1981 Peachtree Plaza Hotel, Atlanta, GA view details
    Resources