C-Flavours: A Scheme-Based Flavour System with Coroutines and its Application to the Design of Object-Oriented Simulation Software

Abstract This paper explores the benefits of prototyping object-oriented simulation models in a symbolic programming language. After a brief description of the project's motivation the main characteristics of object orientation as a programming methodology are discussed within the context of the Scheme programming language. This is followed by a description of the Canterbury Flavour System (C-Flavours), with particular emphasis on how coroutine methods are used to support process-oriented modelling styles. A characterization of architecture and usage of a typical queueing networks simulator then serves to demonstrate C-Flavours' utility for this class of applications. The paper concludes with a brief summary of related research activities in this area and some general comments on the merits of object orientation for the construction of modelling systems and simulators.

[1]  Daniel P. Friedman,et al.  Embedding continuations in procedural objects , 1987, TOPL.

[2]  Khalid Saeed,et al.  An academic user's guide to STELLA Barry Richmond, Steve Peterson, and Peter Vescuso Lyme, N.H.: High Performance Systems, Inc., 1987 , 1989 .

[3]  Donald E. Knuth,et al.  The art of computer programming. Vol.2: Seminumerical algorithms , 1981 .

[4]  H. Markowitz,et al.  THE SIMSCRIPT II PROGRAMMING LANGUAGE , 1970 .

[5]  Wolfgang Kreutzer,et al.  POSE: a Process-Oriented Simulation Environment embedded in SCHEME , 1988, Simul..

[6]  Mitchell Wand,et al.  Obtaining Coroutines with Continuations , 1986, Comput. Lang..

[7]  William D. Clinger,et al.  The scheme environment: continuations , 1987, LIPO.

[8]  W. Kreutzer Tiny Tim—a Smalltalk toolbox for rapid prototyping and animation of models , 1990 .

[9]  William D. Clinger,et al.  Semantics of Scheme , 1988 .

[10]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[11]  Daniel G. Bobrow,et al.  Object-Oriented Programming: Themes and Variations , 1989, AI Mag..

[12]  John McGregor Object-oriented programming with SCOOPS , 1987 .

[13]  Wolfgang Kreutzer,et al.  Programming for artificial intelligence - methods, tools and applications , 1991, International computer science series.

[14]  Peter Wegner,et al.  Dimensions of object-based language design , 1987, OOPSLA '87.

[15]  John A. Allen,et al.  The anatomy of lisp , 1980 .

[16]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977 .

[17]  Robert M. O'Keefe,et al.  Visual Interactive Simulation — History, recent developments, and major issues , 1987, Simul..

[18]  Gul A. Agha,et al.  ACTORS - a model of concurrent computation in distributed systems , 1985, MIT Press series in artificial intelligence.

[19]  O. J. Dahl,et al.  Simula Begin , 1979 .

[20]  Daniel P. Friedman,et al.  Scheme and the art of programming , 1983 .

[21]  David Robson,et al.  Smalltalk-80: The Language and Its Implementation , 1983 .

[22]  Brad J. Cox,et al.  Object-oriented programming ; an evolutionary approach , 1986 .

[23]  Craig Schaffert,et al.  Abstraction mechanisms in CLU , 1977, CACM.

[24]  Jean G. Vaucher,et al.  A comparison of simulation event list algorithms , 1975, Commun. ACM.

[25]  Wolfgang Kreutzer,et al.  System simulation programming styles and languages , 1986 .

[26]  W. Wulf,et al.  Fundamental Structures of Computer Science , 1980 .