<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.bht.fr/index.php?action=history&amp;feed=atom&amp;title=Data_Flow_Generator_-_Historique</id>
	<title>Data Flow Generator - Historique - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bht.fr/index.php?action=history&amp;feed=atom&amp;title=Data_Flow_Generator_-_Historique"/>
	<link rel="alternate" type="text/html" href="https://wiki.bht.fr/index.php?title=Data_Flow_Generator_-_Historique&amp;action=history"/>
	<updated>2026-08-09T07:30:03Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.36.1</generator>
	<entry>
		<id>https://wiki.bht.fr/index.php?title=Data_Flow_Generator_-_Historique&amp;diff=4988&amp;oldid=prev</id>
		<title>WikiAdmin : 1 version importée : dfg</title>
		<link rel="alternate" type="text/html" href="https://wiki.bht.fr/index.php?title=Data_Flow_Generator_-_Historique&amp;diff=4988&amp;oldid=prev"/>
		<updated>2026-07-24T17:08:47Z</updated>

		<summary type="html">&lt;p&gt;1 version importée : dfg&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 24 juillet 2026 à 17:08&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;fr&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Aucune différence)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
	<entry>
		<id>https://wiki.bht.fr/index.php?title=Data_Flow_Generator_-_Historique&amp;diff=4987&amp;oldid=prev</id>
		<title>toross&gt;WikiAdmin : 1 révision importée</title>
		<link rel="alternate" type="text/html" href="https://wiki.bht.fr/index.php?title=Data_Flow_Generator_-_Historique&amp;diff=4987&amp;oldid=prev"/>
		<updated>2020-01-03T15:10:50Z</updated>

		<summary type="html">&lt;p&gt;1 révision importée&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{IntroductionDFG}}&lt;br /&gt;
{{proj_p|Je tiens à apporter des éclaircissements du discours donné à Samuel et Olivier vendredi dernier, car j'ai l'impression que je les ai un peu choqué. Je me rend compte que tout le monde n'est pas forcément au courant de ce qu'est Data Flow Generator qui est intimement lié au langage pivot. Il a été déjà présenté à I2A et je remercie Pierre pour cela, c'est la seule fois où l'on m'a permis d'en parler devant le groupe. Aussi vous y verrez quelques {{m|alertes|#FF8080}} disséminé ici et là.}}&lt;br /&gt;
{{proj_p|D'abord il faut distinguer le {{m|langage pivot}}({{clink|langage pivot}}), {{m|le moteur de simulation par évènement discret}}({{clink|Une simulation à événements discrets}}) et {{m|les outils de génération de codes}} que j'ai nommé {{m|Data Flow Generator}} noté {{m|DFG}} dont la version est 0.X.X (http://dfg.bht.fr/). Je le développe depuis des années. Aujourd'hui je le présente sous le nom de {{m|Discrete Event Simulator Generator}} - noté {{m|DisEvtSimGen}} ou {{m|DFG1}} dont version est 1.X.X - car je lui ai adjoint le moteur de simulation par évènement discret, &lt;br /&gt;
{{Rq|On peut lui adjoindre une infinité de moteurs en réalité, notamment mon futur simulateur de combat aérien, histoire de se faire plaisir sur le plan technique.}}&lt;br /&gt;
Ces générateurs de code (DFG) n'appartiennent pas à EDF, je pense même qu'ils sont interdits d'existence en son sein. En effet j'ai au moins 3 fois proposé de faire leur développement au sein d'EDF, dans le cadre des 5% d’innovation par exemple, ou dans un projet, mais j'ai eu à chaque fois un refus non expliqué. &lt;br /&gt;
&lt;br /&gt;
Depuis je ne propose plus rien, d'autant plus que le projet {{m|FAROS}}(http://www2.lifl.fr/faros/) a été arrêté pour la partie EDF, un projet dont l'objectif était de fournir justement un langage pivot. &lt;br /&gt;
&lt;br /&gt;
Notre langage pivot va peut être sauver ForCity (je l'ai cru entendre un jour, j'ai dû rêvé) ! Mais soyons modeste et surtout miséreux; le projet ForCity va être une réussite et j'en suis sûr grâce à COSMO. &lt;br /&gt;
&lt;br /&gt;
Je serai même content si on ne parle plus de langage pivot dans ce projet car sinon j'ai l'impression que je vais avoir des problèmes. J'ai accepté cet exercice en me servant de mes outils pour aller très vite, parce que David me l'a demandé et David est quelqu'un de bien ou du moins jusqu'à présent. &lt;br /&gt;
&lt;br /&gt;
En tout cas ce n'est pas moi qui irai le crier sur le toit pour l'utiliser dans tout projet quel qu’il soit.}}&lt;br /&gt;
{{proj_p|La spécification du {{m|langage pivot}} sous forme d'un document (note H SINETICS) sera fourni au projet, c'est le travail prioritaire qui m'a été demandé depuis mi-juillet par David. &lt;br /&gt;
&lt;br /&gt;
Une version plus short incluant les API du moteur, maintenant qu'il est stabilisé, sera fournie le 10 octobre 2012.}}&lt;br /&gt;
{{Rq|Pour concevoir le moteur j'ai été grandement aidé par Olivier, le grand gourou du domaine, en échangeant beaucoup sur {{m|Sim-Diasca}} depuis octobre 2011 (http://innovation.edf.com/recherche-et-communaute-scientifique/logiciels/sim-diasca-80703.html). Aussi les échanges avec Jingxuan et Samuel ont permis de compléter les réflexions. Des réflexions qui ont même conduit à une évolution de {{m|Sim-Diasca}} (exemple : le temps fuji).}}&lt;br /&gt;
{{proj_p|Les sources du {{m|moteur de simulation par évènement discret}} sera forcément fourni au projet !}} &lt;br /&gt;
{{RqI|On peut difficilement dissocier le moteur du {{m|langage pivot}} qui forcément utilise son API. Et de plus et c'est le plus important, le langage doit fournir l'API requis du moteur. Sinon on revient au cas des langages généraux tels que c++ auxquels on associerait un digramme de classes et c'est le cas de COSMO avec des inconvénients en plus.}}&lt;br /&gt;
{{Rq|Dailleurs je ne comprends pas comment {{m|COSMO}} peut prétendre définir un langage de simulation des systèmes complexes (de même nature qu'un langage pivot) sans fournir au moins un exemple de moteur de simulation (ce que nous appelons dans le projet {{m|scheduler}}). De plus c'est nous qui devons spécifier ce moteur en sachant beaucoup moins que les experts de COSMO (on n'est même pas encore formé). Je souhaite bien du courage à Samuel. Pour le rédiger il faut d'abord parfaitement maitriser leur langage de conception COSMO et surtout {{m|leurs paradigmes de programmation}} sinon on va aller vers de gros problèmes plus tard. &lt;br /&gt;
&lt;br /&gt;
Le risque de non applicabilité à l'existant sera très grand, sauf si l'on veut tout refaire.}}&lt;br /&gt;
{{RqI|Souvent quand on parle de simulateur on parle de moteur de simulation. Et ce qui fait sa valeur c'est surtout son moteur. Achèteriez vous une voiture sans moteur ?}} &lt;br /&gt;
{{proj_p|{{m|DFG}} n'est pas open source ni même gratuit, par contre les sources générées par DFG le sont sous la licence http://www.mozilla.org/MPL. Même si j'avais la volonté de le rendre open source, il ne serait pas présentable de toute façon; pas le temps chez moi d'appliquer des règles d'assurance qualité quand il s'agit de développer dans l'urgence, dans un temps limité et ponctuellement au fil de bon nombre d'années. Par contre une interface web permet gratuitement de générer des sources, autant qu'il le faut ; voir http://dfg.bht.fr et celui du pivot avec le moteur sur http://dfg1.bht.fr, en bonus sur http://at.bht.fr/ vous trouverez mes dessins et photos.&lt;br /&gt;
&lt;br /&gt;
Voici (documentation non mise à jour par rapport à la version actuelle, elle le sera peut être pendant mes futures vacances ou RTT) :&lt;br /&gt;
* Manuel d'utilisation de DFG http://wiki.bht.fr/index.php/Manuel_d%27utilisation_de_Data_Flow_Generator ;&lt;br /&gt;
* Manuel de référence de la grammaire de DFG  http://wiki.bht.fr/index.php/Manuel_de_r%C3%A9f%C3%A9rence_de_la_grammaire_de_Data_Flow_Generator ;&lt;br /&gt;
* Manuel de référence des fichiers au format XML utilisés par les drivers générés par DFG http://wiki.bht.fr/index.php/Manuel_de_r%C3%A9f%C3%A9rence_des_fichiers_au_format_XML_utilis%C3%A9s_par_les_drivers_g%C3%A9n%C3%A9r%C3%A9s_par_Data_Flow_Generator .&lt;br /&gt;
}}&lt;br /&gt;
{{Rq|N'oublions pas que {{m|DFG}} génère aussi du C++ utilisant {{m|XERCES}} pour parser le XML (voir la possibilité de génération en ligne sur http://dfg.bht.fr). XERCES m'a été imposé dans le projet {{m|PARAD}}, proposition de Stéphane PLOIX, pour lequel il n'était pas le plus compétent d'après moi et ils n'ont pas pensé me consulter ou même consulter I2A. Par contre moi, j'ai même consulté les experts C++ de I2A, l'un d'entre eux avait déjà testé {{m|XERECES}} et il me l'avait fortement déconseillé. Et pour cause l'API XERCES ne faisait pas appel à c++ mais du c version pointeur de chaine de caractère 16 bits, à la mode des années 80! Or j'ai rejoint ce projet dans l'urgence et il fallait fournir rapidement les pilotes; j'aime ce genre de défit dans lequel j'ai toutes les excuses pour moi. &lt;br /&gt;
&lt;br /&gt;
Et c'est pour éviter d'utiliser l'API XERCES directement que j'ai pensé utiliser mes outils de génération de code pour générer son wrapping (une couche d'encapsulation c++, à l'époque mes outils  étaient dans un état primaire, aujourd'hui je ne suis pas loin de finir mon parseur/compilateur universel …)). &lt;br /&gt;
{{Ex|Il faut dire que j'avais une première expérience dans le projet {{m|PERFECT}}. Contraint par des conditions similaires, en 2005, j'ai écrit un générateur d'intégration de solveurs, que j'ai appelé {{m|PERFECT_Maker}}, dans le projet {{m|SALOME}} ; voir http://www.irisa.fr/orap/Forums/Forum18/programme.html le pdf http://www.irisa.fr/orap/Forums/Forum18/Expo_Torossian_EDF.pdf. &lt;br /&gt;
&lt;br /&gt;
Je remercie Jean-Yves BERTHOU  pour m'avoir demandé de faire cette présentation. &lt;br /&gt;
&lt;br /&gt;
Une approche et des idées qui se retrouvent plus tard dans {{m|YACS}} de SALOME développé par André (SINETICS-I2A) (http://www.salome-platform.org/about/yacs) et le {{m|Wrappeur de OpenTurn}} développé par Ivan (SINETICS-I2A) (http://doc.openturns.org/openturns-latest/html/WrapperGuide/cid3.xhtml).}}&lt;br /&gt;
Quelques mois après, la société de sous traitement du projet PARAD a adopté {{m|DFG}} pour produire les sources des classes et leur structure c++ de la partie métier de la radio protection. Je remercie ce projet pour m'avoir forcé à donner naissance à {{m|DFG}}. Merci, merci, merci, …}}&lt;br /&gt;
{{RqI|Pourquoi faire ce petit REX historique ? En fait, {{m|l'agent EDF qui j'étais, était devenu le sous-traitant}} de notre sous traitant pour ce travail. Et le constat le plus grave est que ce sous traitant {{m|faisait plus confiance à moi}} que les responsables du projet et je pourrai même dire qu'en général on fait plus confiance à un sous traitant qu'à un agent EDF, la non prise en compte de notre note sur notre position sur COSMO en est un très bon exemple !? Dans le cadre du projet ForCity j'ai l'impression que nous vivons la même histoire mais à la puisse 10. Pour pouvoir développer et maintenir du code dans COSMO dans des temps acceptables, j'ai dit dès le début que je génèrerai le code COSMO (le code généré par DFG est fait pour être maintenu manuellement aussi, ainsi on ne peut faire la différence entre un code écrit manuellement). L'idée du langage pivot est venu à ce moment. Et depuis Olivier a fortement diffusé cette idée je ne sais pour quelle raison.}}&lt;br /&gt;
{{RqI|Sans l'existence préalable de  {{m|DFG}}, le {{m|langage pivot}} ne pouvait pas être mis au point en quelques mois, il n'est qu'une copie du méta modèle (avec un renommage des tags plus règlementaire) de {{m|DFG}}. Par contre le temps passé a permis de mettre {{m|rapidement}} au point le {{m|le moteur de simulation par évènement discret}}. Je défis quiconque, sous traitant ou pas, de fournir l'équivalent en si peu de temps. Nous pouvons donc remercier TheArthurCompany pour avoir offert le langage pivot au projet {{m|ForCity}} ainsi que bon nombre de lignes de code généré gratuitement pour le projet {{m|PARAD}} et son sous traitant. Et je fournirai l'exemple du distributeur de soda en ne chiffrant pas le temps qu'il faut pour le réaliser; je vous laisserai la bonne surprise quand vous aurez vu son modèle. Le simulateur simplifié des transports aérien sera fourni à titre d'exemple sur http://dfg1.bht.fr}}  &lt;br /&gt;
{{Def|Le langage pivot est un langage permettant d'écrire un programme en le projetant vers un langage cible tel que le c++, en partant de modèles de conception faisant appel par exemple au langage {{m|UML}}. Dans notre cas le programme est à priori un programme de simulation des villes de type simulation de systèmes complexes contraint par le choix de {{m|COSMO}}.|langage pivot|langage pivot}}&lt;br /&gt;
{{Def|Une simulation à événements discrets est une modélisation informatique où l'état d'un système est représenté par une séquence chronologique d'événements discrets. Chaque événement arrive à un instant donné et modifie l'état du système (source http://fr.wikipedia.org/wiki/Simulation_%C3%A0_%C3%A9v%C3%A9nements_discrets).|Une simulation à événements discrets|Une simulation à événements discrets}}&lt;/div&gt;</summary>
		<author><name>toross&gt;WikiAdmin</name></author>
	</entry>
</feed>