Notes et questions



sur la traduction DC vers SynDEx







Version 1.6 - Date 99/02/16 17:43:40
Collection de questions, réponses et notes sur la connexion entre les formats DC v1.2a et SynDEx v5. maintenue par Mihaela Sighireanu [MS] avec la participation de Alain Girault [AG], Christophe Lavarenne [CL], Annie Ressouche [AR], Yves Sorel [YS]. Pour tout commentaire, contactez TOLÈRE.

NEW La version 0.2 de l'outil DC2SDX pour la traduction DC vers SynDEx est disponible (voir 4).





Table of contents


1.
Notes et questions sur le format DC
1.1. Description de l'architecture en DC
1.2. Ordonnancement des définitions
1.3. Condition d'activation sur l'appel de procédure
1.4. Minimisation des définitions DC

2. Notes et questions sur l'outil et le format SynDEx v5
2.1. Définition du format SynDEx v5
2.2. Bibliothèque prédéfinie en SynDEx v5
2.3. Comment on exprime en SynDEx v5 les opérations conditionnelles
2.4. Unicité des identificateurs d'opérateurs, d'opérations etc.
2.5. Connexion des ports
2.6. Problème de granularité pour les descriptions SynDEx
2.7. Solutions pour réduire la granularité trop fine des descriptions SynDEx
2.8. Outil SynDEx : Menu File

3. Exemples et questions sur la traduction
3.1. Règles de traduction
3.2. Relation package (DC) et fichier (sdx)
3.3. Comment on traduit le "at: E" de DC en SynDEx v5
3.4. Comment générer les coordonnées SynDEx
3.5. Comment traduire les définitions "equ: F1 F2 at: @$1"
3.6. Comment traduire les flots d'entrée (inflows) et de sortie (outflows)

4. L'outil DC2SDX
4.1. Distribution
4.2. Description de la version 0.2
4.3. Contacts



1. Notes et questions sur le format DC


« 1.1. Description de l'architecture en DC


« 1.2. Ordonnancement des définitions


« 1.3. Condition d'activation sur l'appel de procédure


« 1.4. Minimisation des définitions DC

Le DC généré à partir d'une spécification Esterel simple comporte une partie "définition" assez importante. Ceci fait que la description SynDEx obtenue par traduction est également assez complexe, bien que les opérations impliquées soient très simples (opérations logiques and, or, etc.). Il résulte donc une granularité trop fine des descriptions SynDEx obtenue à partir des descriptions Esterel (voir 2.6).



2. Notes et questions sur l'outil et le format SynDEx v5


« 2.1. Définition du format SynDEx v5

Une grammaire BNF du format se trouve ici.


« 2.2. Bibliothèque prédéfinie en SynDEx v5

DC définit un ensemble de types, constantes et fonctions prédéfinis. Par exemple, pour les valeurs et les opérations booléennes.


« 2.3. Comment on exprime en SynDEx v5 les opérations conditionnelles

[CL] : La version 5.0 de SynDEx n'a pas de conditionnement (si ce n'est des "conditionnelles" qui sont considérées comme des opérations "normales" avec une sortie et trois entrées dont une booléenne, comme en Mustig par ex.), c'est-à-dire correspond à du DC sans autre "horloge d'activation" que l'horloge "la plus fine" (qui est implicite).

La version 5.1 de SynDEx, en cours de préparation, permettra de spécifier des horloges d'activation et, par étapes progressives, saura faire des optimisations sur les horloges d'activation (évaluation "paresseuse"/"demand-driven" des opérations "safe") qui permettront des spécifications plus légères (avec des horloges implicites).

En SynDEx 5.1, on ne "contrôlera" pas directement les connexions (les flots) mais on "conditionnera" une opération par l'intermédiaire de son port d'entrée "condition d'activation" (un nouveau port spécial introduit en SynDEx v5.1, en plus des ports d'entrée et sortie de l'opération de la v5.0). Il en va de même en DC où le "at" d'une "equ:" (ou d'un "proccall:") conditionne "l'exécution" de la fonction (ou de la procédure), c'est-à-dire la mise à jour du(des) flot(s) défini(s). En termes de génération d'exécutif, on conditionnera, au moyen d'un "jump conditionnel" (généré par une macro "if_" prenant en argument le tampon connecté au port d'entrée "condition d'activation"), l'exécution de la séquence d'instructions représentant l'opération (qui ne prendra en argument que les tampons représentant les ports d'entrée et de sortie).


« 2.4. Unicité des identificateurs d'opérateurs, d'opérations etc.


« 2.5. Connexion des ports

	function 270.500 270.500 and__27 b__and {bool !LF_30 bool ?LF_27 bool ?AUX_11}
	function 271.500 271.500 not__27 b__not {bool !AUX_11 bool ?AUX_12}
	constant 272.500 272.500 cst__27 b__false {bool !AUX_12}
Les connexions sont implicitement les suivantes :

	connect not__27 AUX_11 and__27 AUX_11 
	connect cst__27 AUX_12 not__27 AUX_12


« 2.6. Problème de granularité pour les descriptions SynDEx


« 2.7. Solutions pour réduire la granularité trop fine des descriptions SynDEx

Ces solutions ont été proposées lors de la réunion TOLÈRE du 11 février 1999.


« 2.8. Outil SynDEx : Menu File



3. Exemples et questions sur la traduction


« 3.1. Règles de traduction

DC
SynDEx
package XXXX fichier "XXXX.sdx"
table types rien (information sémantique)
table fonctions rien (information sémantique)
table procédures rien (information sémantique)
table constantes rien (information sémantique)
table noeuds description d'algorithme
définition une liste d'opérations et une liste de connexions


« 3.2. Relation package (DC) et fichier (sdx)

Normalement, un package (DC) doit correspondre à un fichier (sdx). Le problème semble être l'importation de packages (DC).


« 3.3. Comment on traduit le "at: E" de DC en SynDEx v5

Etant donné 2.3, il faut utiliser pour le moment des opérations conditionnelles et attendre SynDEx v5.1.


« 3.4. Comment générer les coordonnées SynDEx

DC ne contenant pas d'informations sur la représentation graphique du graphe de l'algorithme, le traducteur DC2SDX devra générer des coordonnées pour chaque sommet.

coordX(s) = max(coordX(pred(s))) + deltaX
où pred(s) est l'ensemble des prédécesseurs de s, hormis les sommets "memory". Pour coordY(s), je trie les sommets de même coordX par y(s)=moy(coordY(pred(s)) (moyenne arithmétique des coordY des prédécesseurs de s) croissante et les positionne dans la même colonne à intervalles réguliers.


« 3.5. Comment traduire les définitions "equ: F1 F2 at: @$1"


« 3.6. Comment traduire les flots d'entrée (inflows) et de sortie (outflows)



4. L'outil DC2SDX NEW


« 4.1. Distribution

Une distribution du traducteur DC vers SynDEx v5 est disponible. Cette version de DC2SDX contient :


« 4.2. Description de la version 0.2

Quelques caractéristiques de cette version (un rapport technique est en cours de préparation) :


« 4.3. Contacts

Pour toute information, suggestion, rapport de bogue, etc. contactez svp Mihaela Sighireanu à Mihaela.Sighireanu@inria.fr.


Copyright (C) INRIA 1998 -- Tous droits réservés -- All Rights Reserved.
Retour à la page d'accueil de l'action TOLERE