1 / 44
There’s Plenty of Room forUnconventional Programming
Languagesor
Declarative Simulations of Dynamical Systems
(with a Dynamical Structure)
Olivier Michel
IBISC, CNRS & Université d’EvryLIS team, MGS project
http://mgs.ibisc.fr
2 / 44
Compiler/Tools/Interpreter
MGS
Patch editor, Imoview,GBview
Mercure
Formalization
Topological collections
Transformations
Amalgams
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
Unconventional Programming Languages
3 / 44
Outline of the Presentation
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
4 / 44
Space and Fields Representation
My goal: Enhancing programming languages
with spatial relationships Making space explicit in the definition Having explicit spatial operators
gbf torus = < a, b; 180 a = 0, 60 b = 0 >
x => NeighborsFold(f, e, x)
Spatial Computing
Data-structure = Field on Topological SpaceComputation = Movement in this Space
5 / 44
Spatial Computing
Importance of spatial relationships… [Dagstuhl’06]:
At the hardware level FPGAs, programmable matter, distributed robotics , amorphous
computers, bio-synthetic organisms
At the programming language level Access to information has a price Neighborhood relationships define the data-structure
At the application level represent space: construction of shapes, morphogenesis… embedded in space: ambient, p2p… computationally intense: scientific computing, data-parallelism…
6 / 44
Modeling and simulation of Dynamical Systems
x
Dynamical system
observation
time
variable x
Specifying a Dynamical System = specifying moves in the state space
trajectory
7 / 44
…with a Dynamical Structure
ttt sss
s
::)1(
]1[
1
0
One can predict the structure : tt RSTATE
,)( , 10 RSTATESTATESTATERSTATE ttt
obvious because does not rely on st
1
4
2
84R
1
2
4
3R
8 / 44
Complex Dynamical Structure
Growing plant constraining its own growth space
The early development of the zebrafish
The state space cannot be specified a priori and/orThe evolution function cannot be specified globally.
How can we specify such systems?
Concurent local interactions of elements of the system
9 / 44
Examples of (DS)2
Biology
Molecular biology (regulatory, metabolic, signalization networks…)
Developmental biology(plant, embryo,…)
Physics
Soft mechanical systems, coupled multi-scale systems,…
General relativity
Urbanism
City growth, road traffic control,…
Computer Science
Internet, sensor networks,modular robots,knowledge networks,…
© David S. Goodsell 1999
© Tecplot
© L. Sanders - EUROSIM
© C. Harrison - Clusterball project
10 / 44
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
Outline of the Presentation
11 / 44
Data-Fields
Array(total function)
Data-field(partial function)
GBF
Topological Collections
[0, d1] × … × [0, dn] Value
Zn Value
Group Value
Abstract Space Value
expressiveness
12 / 44
0-cell 1-cell 3-cell2-cell
Representation of space and structure Structure:
Collection of topological cells
Data Structure:Topological Collections
13 / 44
Data Structure:Topological Collections
Representation of space and structure Structure:
Collection of topological cells Incidence relationship
14 / 44
Representation of space and structure Structure:
Collection of topological cells Incidence relationship
Data : associating values with topological cell
“escherichia” 0.123
`cell
λx.(x x)‘a’
2
5
4
λx.fold(…x…)
Data Structure:Topological Collections
15 / 44
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
Outline of the Presentation
16 / 44
Control Structures forthe Modeling and Simulation of
(DS)2
Specifying the evolution function: local evolution rules
L.h.s. of a rule specifies a set of elements in interaction, R.h.s. the result of the interaction
x, y / x > y y, x
Various kind of time evolution, for the same set of rules
Demonstration by induction, on the rules or on the derivations
2 3 6 73 2 7 61 4 5 8 1 4 5 8
17 / 44
Local Interactions of Entities
Decompose a system into sub-systems following the elements in interaction
a system in some state
part of the system that evolves
Can be identified by comparison with the previous global state
18 / 44
Local Interactions of Entities
Decompose a system into sub-systems following the elements in interaction
t = 1t = 2t = 3
19 / 44
Local Interactions of Entities
Decompose a system into sub-systems following the elements in interaction
Summarized
elementary parts of the system
each elementary part has its own local state
20 / 44
Control Structure: Transformation
patch
path
Pattern matching: specifying a sub-collection of elements Path transformation (path = sequence of neighbor elements)
Concise but limited expressiveness Patch transformation (arbitrary shape)
More verbose but higher expressiveness
Patt
ern
matc
hin
gS
ub
stitutio
n, su
rgery
21 / 44
Transformation: Rewriting Strategies
Multiple rewriting strategies Asynchronous with(out) priority Synchronous with(out) priority Stochastic (choice of the rule) Discrete-event oriented stochastic (choice of the
instance)
In MGS: `default = maximum parallel = sync. with priority on the order of rule def. `asynchronous = async. with priority on the order of rule def. `singleStochastic = sync. max. par. with random priority `multiStochastic = sync. max. par. without priority `stochastic = async. with implicit/explicit prob. on each rule `gillespie = async. following D.T. Gillespie’s [Gil77] discrete event algorithm
22 / 44
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
Outline of the Presentation
23 / 44
Implementation
Interpreters Amalgams: 10k lines of ML/C, client/server 81/2: 36k lines of ML/C, data-// virtual machine MGS: 50k lines of ML/C/libraries, 3rd version
Companion softwares Imoview, PatchGen, GBview…
Examples and applications
24 / 44
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
Outline of the Presentation
25 / 44
Rewriting and SimulationComplex systems Rewriting techniques
Modeling SpecificationState (space) Data structure
hierarchical organizations
arbitrary complex organizations
formal trees (or terms)
topological collection
Evolution function Set of rules
interaction evolution
local evolution laws
α β, α: pattern, β:expression
rewriting rules, transformations
Simulation ApplicationTrajectories
Time management
Derivations
Rule application strategy
discrete, event-based synchronous vs.
asynchronous
maximal parallel, sequential, deterministic, stochastic
26 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF
(following [Arulanandham et al. 2002])
27 / 44
Examples of MGS Programs
Parallel maximalrule application strategy
Stochasticrule application strategy
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth)
(inspired by [Rothemund 2004] DNA self assembly)
28 / 44
Examples of MGS Programs
4 steps of the Sierpinsky sponge
2 steps of the Menger sponge
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving)
29 / 44
Examples of MGS Programs
Butterfly
Kobbelt
Doo-Sabin(bevelled edges)
Loop
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
30 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph
(following Reynold’s steering boids)
31 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph Neurulation process on an
abstract chain(following [Odell et al. 1981] and [Nagpal 2001])
32 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph Neurulation process on an
abstract chain Diffusion-limited aggregation
33 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph Neurulation process on an
abstract chain Diffusion-limited aggregation Cell mobility on a Delaunay graph
(following [Bottino et al. 2002])
34 / 44
Examples of MGS Programs
David Bikard, Thomas Landrain, David Puyraimond, Eimad Shotar, Gilles Vieira,
Aurélien Rizk, David Guegan, Nicolas Chiaruttini, Thomas Clozel, Thomas
Landrain, Antoine Spicher
First price in the “fundamental research” category
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph Neurulation process on an
abstract chain Diffusion-limited aggregation Cell mobility on a Delaunay graph Synthetic biology: iGEM’07 Paris
35 / 44
Examples of MGS Programs
Algorithmics Bead Sorting on a GBF Self assembly (accretive growth) Self disassembly (carving) Surface subdivision
Modeling/Simulation Boids on a Delaunay Graph Neurulation process on an
abstract chain Diffusion-limited aggregation Cell mobility on a Delaunay graph Synthetic biology: iGEM’07 Paris Growth of the shoot apical
meristem
Image sequence showing cell division patterns via membrane-bound PIN1, in Shoot Apical Meristem (SAM), nearby floral meristems, and the boundaries between them. http://computableplant.ics.uci.edu/
Central zone
Primordia
MGS SimulationPierre Barbier de Reuille
36 / 44
Compiler/Tools/Interpreter
MGS
Formalization
Topological collections
Transformations
Form
aliz
atio
n
Implem
entation
Applications
Motivations: unconventional language
Space and fields representation
Modeling and simulation of (DS)²
Examples and use
Morphogenesis
Topological modifications
Self-assembly, SyntheticBiology
Programminglanguage
The Next Round
37 / 44
Perspectives Programming the small
Synthetic biology
Programming the large Autonomic computing
Common concerns: taking space into acount (localization) no global control (locality) unbounded and dynamic resources eternal systems articulation of local and global levels
Specify globallyCompute locally
38 / 44
Articulation of Local Global Levels
organization
time
L1L2L3
t+1 t+2t
global
local
population
individual
global
local
population
individual
L1
L2
Top-down, bottom-up or middle-out approach?
39 / 44
Autonomic Computing: Systemic Software Engineering
Software system = Dynamical system
Nominal behaviour = Steady-state
Self-* = Steady-state recovery after perturbation
nominal behaviorperturbation
viability domain
resilience(self-* properties)
faulty behaviorstructual change
40 / 44
Long-term Goal: Synthetic Biology
Programming biological processes
When biology meets engineering principles…
standardization (definition of functions, standards, libraries, …)
abstraction (organization of functions by levels)
decoupling (conception/realization)
…for the design of new biological functions by easy and standard composition of building-blocks
41 / 44
The MIT Hierarchy
DNA
Parts
Devices
Systems
abst
ract
ion
Nucleotides sequences
Promoters, operators, coding regions, …
Assemby of partsperforming a function
(inverters, oscillators, switch, …)
Long-term applications
42 / 44
Specify Globally, Compute Locally
Spatial computing: computing with fields,wave, gradients, etc.
Amorphous computing: programming with asynchronous, unreliable agent
Synthetic biology:cell and cell population
Global
“Bio-Brick”
Algebra of local operators
Abstract amorphous
medium
E. coli
Amorphous discretization
Compilation
Regulatory networksOptimization,
parameter identification
),(2 trDt
43 / 44
Summary
• Jean-Louis Giavitto• Students J. Cohen (Assistant Prof. Univ. Nantes) A. Spicher (Post-doc. LORIA) P. Barbier de Reuille, E. Delsinne, V. Larue, C. Boin, F. Letierce, B. Calvez, F. Thonerieux, D. Boussié, C. Kaleta, S. Outerbah and the others...
Acknowledgements
• Supervision of 2 Ph.D. students, 14 Masters students• Publication of 13 journal papers, 4 book chapters, 22 conference papers• Edition of 3 conference proceedings• Co-organization of the Unconventional Programming Paradigm conference (UPP’04)• Organization of JFLA’05• Grant ACI “NANOPROG”• Part of grant ACI “AUTOCHEM”