end of table of contents


(the MGS logo)

the MGS home page

  • Description  (goalsprinciplesapplications)
  • Download  free software under the GNU license
  • Publications, bibliography & documentation papers, slides, tutorials...
  • Graphic Gallery  applications of MGS to various simulation problems (esp. in biology)
  • Related Works and Links
  • Team members
  • MGS Wiki (experimental)
  • Offre de stages
        projects and research opportunities for undergraduate and graduate students (in french)
  • MGS inside Logo

    MGS is a research project in the IBISC (Laboratory for Computer Science, Integrativce Biology and Complex Systems) of the University of Evry, CNRS and Genopole. Despite the acronym, MGS is not related to ...
    The goal is to investigate the concepts and tools (programming languages) needed for the modelling and the simulation of dynamical systems exhibiting a dynamical structure. The results are validated by the design and development of an experimental declarative programming language and of some applications (mainly in the area of biological systems modelling). Our approach is based on the use of topological notions to extend the idea of rewriting systems.
    And we want to have fun!

    a group of peopleNews, Related conferences and Events

    Do not hesitate to contribute and participate to these conferences: the topics are related to research done in the MGS project and the MGS team is involved in their organization or have contributed smiley.

    MGS Download

    The document There is Plenty of Room for Unconventional Programming Languages or Declaratives Simulations of Dynamicals Systems (with a Dynamical Structure) (2.7M, .pdf), gives a bird's view on the work achieved in the MGS project. In this a very good introduction to the papers listed in the accompanying booklet (the pdf document is active and you can click on the reference to retrieve all MGS papers).

    The interpreter in OCAML includes the handling of GBF. You can download the executable, or a DEBIAN package or the sources. Additional software is downloadable (ImoView the 3D viewer, two old versions of the interpreter, etc.).
    You can visit the online manual pages. These pages can be automatically generated from the sources below in several format (latex, html, ...).
    The manual pages for the ImoView viewer are available online. ImoView has been developped to ease the visualization of results produced by MGS programs. The input of ImoView are written in a symbolic high-level scene description languages. Many visualization in the "ImageGallery/mgs_gallery.html">Graphic Gallery are produced using Imoview.

    The MGS softwares can be freely downloaded under the GNU public license. They are developed under DEBIAN-Linux. They compile however on Windows under the CYGWIN environment. They have also be compiled on MacOs X. To obtain the executable or the sources, just send an email at the following address: mgs-download(at)NOSPAM.spatial-computing(dot)org . Please, don't forget to remove the string "NOSPAM." (including the period) in this address. An immediate automated reply will give you a temporary URL where you can find the various tar files. So, be sure that you can receive an email (e.g. your mailbox is not full, your mail server is not black-listed, etc.). In case of problem, contact the MGS developers team at:

    Due to a burst of spam, the automatic download procedure is temporarily suspended.
    To access the MGS sources, please send an email to

    MGS Related Works and Links

    Unconventional modeling / Unconventional computational models: Target applications / Inspiring applications System Biology / Cell Simulation: Inspiration: blending art and science

    MGS Description

    Goals of the MGS programming language

    MGS is a new domain specific language (DSL) devoted to the simulation of biological processes, especially those whose state space must be computed jointly with the current state of the system:dynamical system with a dynamical structure (see here for an explanation of the importance of this kind of systems for biological modeling and the difficulties arising for their simulations).

    In this kind of situation, the dynamic of the system is often specified as several local competing transformations occurring in an organized set of simpler entities. The organization of this set is subject to possible drastic changes in the course of time.

    Basic principles of MGS

    MGS proposes a unified view on several computational mechanisms initially inspired by biological or chemical processes (Gamma and the CHAM, Lindenmayer systems, Paun systems and cellular automata).

    We call collection a set of elements with some ``organization''. Several kind of organizations are used in programming languages and correspond to several data structures: sets, multisets (or bags), sequences (or list), arrays, trees, terms, etc. 

    It is very natural to see a collection as a set of places or positions, filled by values and organized by a topology defining the neighborhood of each element in the collection and also the possible sub-collections. To stress the importance of the topological organization of the collection's elements, we call them topological collection

    The basic computation step in MGS replaces in a collection A of elements, some sub-collection B, by another collection C. The collection C only depends on B and its adjacent elements in A. The pasting of C into A - B depends on the shape of the involved collections. This step is called a transformation. 

    The specification of the collection to be substituted is done through a pattern language based on the neighborhood relationship induced by the topology of the collection. A pattern defines possible (topological) paths in the collection. Several features to control the transformation applications are available, such priority, guards, triggers, etc. 

    MGS embeds the idea of topological collections and their transformations into the framework of a simple dynamically typed functional language. Collections are just new kinds of values and transformations are functions acting on collections and defined by a specific syntax using rules. MGS is an applicative programming language: operators acting on values combine values to give new values, they do not act by side-effect.
    In our context, dynamically typed means that there is no static type checking and that type errors are detected at run-time during evaluation. Although dynamically typed, the set of values has a rich type structure used in the definition of pattern-matching, rule and transformations.

    Topological collections, Transformation and the Simulation of Dynamical Systems with a Dynamical Structure

    An MGS collection is used to represent the state of a dynamical system. The elements in the collection represent either entities (a subsystem or an atomic part of the dynamical system) or messages (signal, command, information, action, etc.) addressed to an entity.

    A sub-collection represents a subset of interacting entities and messages in the system. The evolution of the system is achieved through transformations, where the left hand side of a rule typically matches an entity and a message addressed to it, and where the right hand side specifies the entity's updated state, and possibly other messages addressed to other entities.

    If one uses a multiset organization for the collection, the entities interact in a rather unstructured way. More organized topological collections are used for more sophisticated spatial organizations and interactions. For examples, group-based fields (GBFs) are used to model uniform regular neighborhood structures. We plan to develop soon a "Voronoi diagram" neighborhood for a set of points in Euclidean space, and to handle arbitrary topologies described by a combinatorial structure (e.g., a simplicial complex).

    More generally, many mathematical models of objects and processes are based on a notion of state that specifies the object or the process by assigning some data to each point of a (physical or abstract) space. The MGS programming language is designed to support this approach offering several mechanisms to build complex (and evolving) spaces and handling the maps between these spaces and the data.

    MGS MGS Development Team

    The development of the MGS softwares relies on several tools and libraries:

    To contact the MGS team :  mgs@NOSPAM.spatial-computing.org
             (Please, don't forget to remove the string "NOSPAM." in the addresses.)
    Olivier Michel michel@NOSPAM.spatial-computing.org http://www.spatial-computing.org/~michel
    Jean-Louis Giavitto giavitto@NOSPAM.spatial-computing.org  http://repmus.ircam.fr/giavitto
    Julien Cohen julien.cohen@NOSPAM.spatial-computing.org http://www.sciences.univ-nantes.fr/info/perso/permanents/cohen/
    Antoine Spicher aspicher@NOSPAM.spatial-computing.org http://www.spatial-computing.org/~aspicher
    Big acknowledgements are also due to the involved students:
    Valerie Larue, Emmanuel Delsinne, Francois Letierce, Clement Boin, Nicolas Thibault, Jean-Pierre Lambert, Nicolas Mann, Benoit Calvez, Fabien Thonnerieux, Romain de Rasse, Fabien Gaubert, Yann Jullian, Lionel Perret ...  and the many others.

    and to our supporting institutions:

    (currently under construction logo)
    this site is under construction.
    Pages started: September 2001. Last revision: March 2010.
    end of table of contents

    English keywords for indexation: computer science, programming language, topological collections, heterogeneous collection, transformation, declarative programming languages, functional languages, intentional programming, space oriented computation, programming in topological space, space in computation, computation in space, interaction, cooperation, regulation, unconventional models of computation, compilation, interpretation, combinators, higher-order syntax, type, type inference, nested type, shape type, polytypism, catamorphism, container, size inference, static analysis, soft typing, rewriting, rule based programming, pattern-matching, array matching, abstract reduction system, maximal parallel application strategy, stochastic application strategy, stochastic simulation, gillespie, graph rewriting, cellular automata, membrane computing, aqueous computing, artificial chemistry, Gamma, CHAM, P system, L system, Paun, Lindenmayer, amorphous computing, autonomic computing, spatial computing, artificial chemistry, organic computing, developmental programing, nanoprograming, synthetic biology, simulation of biological processes, cell model, biological pathway, interaction network, gene regulation, signal transduction, morphogenesis, developmental biology, integrative simulation, biological organization, diffusion limited aggregation, collective phenomena, self-assembling, self-repairing, dynamical systems, dynamical structure, (DS)2, GBF, Cayley graph, Delaunay triangulation, Voronoi diagram, data fields, nested collections, sequence, multiset, set, graph, lattice, poset, domain, combinatorial algebraic topology, chain complex, chain group, sequence, multiset, monoidal collection, module, combinatorial algebraic topology, chain complex, chain group, quasi-manifold, cellular complex, generalized map (gmap), dart, abstract simplicial complex, discrete differential form.