Add a summary of my programming projects.
This commit is contained in:
parent
cb56ede5c0
commit
c244d00f77
3 changed files with 104 additions and 0 deletions
45
bib/programming.bib
Normal file
45
bib/programming.bib
Normal file
|
@ -0,0 +1,45 @@
|
|||
@misc{Hurd,
|
||||
title = {GNU/Hurd homepage},
|
||||
howpublished = {\url{https://www.gnu.org/software/hurd/index.html}}
|
||||
}
|
||||
|
||||
@misc{unionmount,
|
||||
title = {Unionmount project for GNU/Hurd},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{https://github.com/scolobb/unionmount}}
|
||||
}
|
||||
|
||||
@misc{nsmux,
|
||||
title = {Namespaced-based translator selection for GNU/Hurd},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{https://github.com/scolobb/nsmux}}
|
||||
}
|
||||
|
||||
@misc{sympy,
|
||||
title = {SymPy homepage},
|
||||
howpublished = {\url{http://www.sympy.org}}
|
||||
}
|
||||
|
||||
@misc{categories,
|
||||
title = {A category theory module for SymPy},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{https://github.com/scolobb/sympy}}
|
||||
}
|
||||
|
||||
@misc{compdev,
|
||||
title = {Definitions of some basic computing devices},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{https://github.com/scolobb/computing-devices}}
|
||||
}
|
||||
|
||||
@misc{brsim,
|
||||
title = {A Basic Reaction System Simulator},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{https://github.com/scolobb/brsim}}
|
||||
}
|
||||
|
||||
@misc{brsimweb,
|
||||
title = {Web interface to the reaction system simulator},
|
||||
author = {Sergiu Ivanov},
|
||||
howpublished = {\url{http://combio.abo.fi/research/reaction-systems/reaction-system-simulator/}}
|
||||
}
|
|
@ -32,6 +32,7 @@
|
|||
\addbibresource{bib/psystems.bib}
|
||||
\addbibresource{bib/mcrs.bib}
|
||||
\addbibresource{bib/arrays.bib}
|
||||
\addbibresource{bib/programming.bib}
|
||||
|
||||
\newcommand{\targetname}{Université des Licornes Violettes}
|
||||
\newcommand{\targetnr}{1337}
|
||||
|
|
|
@ -380,5 +380,63 @@ avec les structures à membranes ; nous avons montré que ce genre de
|
|||
systèmes atteignent la complétude computationnelle avec des règles
|
||||
restreintes et avec deux membranes seulement.
|
||||
|
||||
\subsection{Projets de programmation}
|
||||
Lors de mon parcours universitaire et doctoral j'ai réalisé plusieurs
|
||||
projets de programmation aussi bien accessoires à mon activité de
|
||||
recherche qu'indépendants. J'ai notamment contribué au système
|
||||
d'exploitation libre à micro-noyau GNU/Hurd~\cite{Hurd}, qui est fondé
|
||||
sur le principe des translateurs ({\em translator}) --- des
|
||||
applications spéciales qui peuvent être installés par dessus certains
|
||||
fichiers pour offrir une vue modifiée du contenu. J'ai développe un
|
||||
translateur capable de monter plusieurs systèmes de fichiers sous un
|
||||
seul dossier (montage union)~\cite{unionmount} et j'ai aussi travaillé
|
||||
sur une extension du gestionnaire du système de fichiers qui
|
||||
permettrait d'installer des translateurs en utilisant une syntaxe
|
||||
étendue de chemins d'accès~\cite{nsmux}. Ce travail a été effectué
|
||||
lors de l'édition 2009 de «~Google Summer of Code~».
|
||||
|
||||
Je me suis aussi intéressé aux modèles d'interaction asynchrone en
|
||||
réseaux et je me suis proposé d'implémenter le modèle acteur ({\em
|
||||
actor model}). Les entités centrales de ce modèle sont les acteurs
|
||||
--- les processus qui s'exécutent en parallèle et qui possèdent des
|
||||
boîtes à messages. Les acteurs peuvent s'envoyer des messages de façon
|
||||
asynchrone, c'est-à-dire l'expéditeur n'attend pas que le message soit
|
||||
reçu. Afin de rendre mon implémentation plus succincte et flexible, je
|
||||
l'ai réalisée en le langage fonctionnel strictement typé Haskell.
|
||||
|
||||
Un autre projet de programmation non relié directement à mes pistes de
|
||||
recherche principales était ma contribution au système de calcul
|
||||
formel SymPy~\cite{sympy} qui à consisté à initier un module de
|
||||
théorie des catégories~\cite{categories}. Je me suis concentré sur la
|
||||
présentation informatique des diagrammes commutatifs --- un outil de
|
||||
base en algèbre abstraite --- et j'ai programmé la mise en page
|
||||
automatique d'un tel diagramme. J'ai travaillé ensuite sur un
|
||||
algorithme de déduction automatique de la commutativité d'un diagramme
|
||||
à partir d'un ensemble de diagrammes dits axiomes. Cette contribution
|
||||
a été faite lors de l'édition 2012 de «~Google Summer of Code~».
|
||||
|
||||
Un de mes premiers projets afférents aux domaines de recherche dans
|
||||
lesquels j'ai travaillé était le développement d'un simulateur de
|
||||
systèmes à membranes capable de représenter la plupart des variation
|
||||
du modèle en utilisant plusieurs moteurs de simulation. J'ai
|
||||
implémenté un moteur OpenCL qui s'exécutait sur la carte graphique et
|
||||
un autre, en Haskell, qui était moins performant mais offrait la
|
||||
possibilité de faire tourner le système simulé pas à pas.
|
||||
|
||||
Un autre projet était d'automatiser la construction des réseaux de
|
||||
Petri universels, ce qui m'a amené à la réalisation d'un ensemble
|
||||
d'outils pour la gestion informatique de ces objets, ainsi que de
|
||||
quelques autres objets connus de la théorie de la calculabité,
|
||||
notamment les machines à registres. Une partie de ces outils est déjà
|
||||
disponible en ligne~\cite{compdev} ; d'autres sont en état d'ébauche
|
||||
et seront disponibles au public dès leur finalisation.
|
||||
|
||||
Finalement, afin de faciliter la conception et la vérification de
|
||||
systèmes à réactions, j'ai implémenté un simulateur de ce modèle. Le
|
||||
code source du simulateur, ainsi qu'une documentation, est disponible
|
||||
en ligne~\cite{brsim}. J'ai aussi réalisé une interface
|
||||
Web~\cite{brsimweb} qui permet d'utiliser mon simulateur sans à avoir
|
||||
à télécharger et compiler le code.
|
||||
|
||||
\printbibliography
|
||||
\end{refsection}
|
||||
|
|
Loading…
Reference in a new issue