# Programming

## Mathematical programming

Within the context of the Morphex European project, I developed C++ tools dedicated to the identification and automatic reformulation (linearisation, approximation, ...) of optimisation problems formulated by nonlinear mathematical programming.

## Parser

Another contribution for the Morphex project has been the writing of a parser for the modeling meta-language CSM used to describe the biological systems. I provided a program enabling the automatic translation of any CSM file into its corresponding XML document which is the entry format of the simulation platform. The generation of the parser was made by the use of the ANTLR software whose language for describing the grammar is plateform neutral.

## Self-assembling

As an application of the algorithm presented in
*Self-assembling graphs*,
I wrote a program in
Ocaml
allowing to test the distributed assembling of a given graph.

The procedure consists in two steps. First, one has to describe the target graph(s) and all the subgraphs allowed during the construction. Then the program generates the interaction rules as described in the paper. One can eventually look at an evolution of a group of agents whose behaviour is defined by the generated rules. The key point is that the exact same rules are used by any agent.

It is possible to download the code of the program or look at some animated examples presenting several runs.

## DiCouèbe

During an internship under the supervision of Sylvain Kahane at the linquistics laboratory Lattice, I took part in the design of a software processing a dictionnary of french lexical units. This dictionnary was based on the DiCo database and relied mainly on the Meaning-Text Theory developed in particular by Igor Mel'čuk.

An online version of this software is now available.