Précédent   Forum des professionnels en informatique > Autres langages > Autres langages > Smalltalk
Smalltalk Forum d'entraide sur la programmation en Smalltalk
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/03/2011, 11h28   #1
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
Par défaut Programme qui intervient sur un Control and Data Flow Graph

SVP j'ai besoin d'aide pour écrire un programme en Smalltalk.

Ce programme intervient sur un CDFG (Control and Data Flow Graph), qui est un graphe représentant des programmes écrits sur un outil de synthèse d'architecture reconfigurable.

L'algorithme prend en Input un CDFG G = (N, E, s, e), un treillis complet de valeurs D, les fonctions de transfert tf : E → D → D et la valeur initiale i <appartient à> D de s. Il renvoie en Output les valeurs abstraites v de chaque nœud dans D (v : N → D). L'algorithme est donné ci-après contenant des parties synthétisées de manière algébrique (point fixe, élargisseur et rétrécisseur).
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
N do : [ :n |
      v(n) := nil.
].

v(s) := i.
workset := {n | (s ,n) appartient à E}.

(workset isEmpty) whileFalse : [
      e := workset at : 1.
      workset removeAt : 1.
      X := ⊔{tf(e) (v(m)) | e = (m, n) appartient à E}.
      X := v(n) ∇ X.
      (X = v(n)) ifTrue : [
            v(n) := X.
            workset add : {m | (n ,m) appartient à E}.
      ].
].
(workset isEmpty) whileFalse : [
      e := workset at : 1.
      workset removeAt : 1.
      X := ⊔{tf(e) (v(m)) | e = (m, n) appartient à E}.
      X := v(n) ∆ X.
      (X = v(n)) ifTrue : [
            v(n) := X.
            workset add : {m | (n ,m) appartient à E}.
      ].
].
hector20102010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 19h24   #2
Membre éclairé
 
Avatar de maske
 
Homme
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 204
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2008
Messages : 204
Points : 398
Points : 398
C'est quoi la question ?

Admettons que ça ne soit pas "Pouvez-vous faire mon devoir pour mon cours d'informatique ?" : ce qui est posté est un code à trou, il suffit de remplacer les formules par le code adéquat.

Pour aider, j'en reviens au point suivant : c'est quoi la question ?
__________________
[|]
maske est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 23h35   #3
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
Merci maske pour ta réponse, la quéstion c'est pas de faire mon devoir mais c'est que j'auré à écrire un algorithme en Smalltalk (pour la première fois, donc c'est pas évident ) et j'auré à l'exécuter sur un environnement comme VisualWorks.
L'appartenance : (s ,n) appartient à E veut dire qu'il ya un arc allant de s vers n.
Le point fixe : ⊔{tf(e) (v(m)) | e = (m, n) appartient à E} représente le plus petit majorant de l'ensemble des fonctions de transfert (valeurs portées par les arcs allant de m vers n).
L'élargisseur : il s'applique sur des intervalles, la syntaxe est comme suit
X ∇ ⊥ = X (tel que ⊥ est le plus grand minorant du Domaine D)
[l0, u0] ∇ [l1, u1] = [–∞ si l1 < l0, sinon l0]
[+∞ si u1 > u0, sinon u0]
Le rétrécisseur : comme l'élargisseur, la syntaxe est
X ∆ ⊥ = ⊥
[l0, u0] ∆ [l1, u1] = [l1 si l0 = –∞, sinon l0]
[u1 si u0 =+ ∞, sinon u0]

Ci-joint un fichier donnat plus de détail sur l'algorithme.
J'éspére que j'ai bien exprimer mon problème, et je vous remercie d'avance pour votre aide (merci particuliérement à maske ).
hector20102010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2011, 22h59   #4
Membre éclairé
 
Avatar de maske
 
Homme
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 204
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2008
Messages : 204
Points : 398
Points : 398
Bonsoir,

en fait tu veux qu'on t'écrive ton algo en Smalltalk ?
__________________
[|]
maske est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/04/2011, 10h33   #5
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
Bonjour,

Merci maske, en fait oui j'aimerai avoir une première version, je vous serai très reconnaissant maske.

Cordialement.
hector20102010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 23h09   #6
Membre éclairé
 
Avatar de maske
 
Homme
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 204
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : mai 2008
Messages : 204
Points : 398
Points : 398
Citation:
Envoyé par hector20102010 Voir le message
Bonjour,

Merci maske, en fait oui j'aimerai avoir une première version, je vous serai très reconnaissant maske.

Cordialement.
Pourquoi ne pas essayer de nous proposer une première version, afin que nous puissions ensuite aider ?

Personnellement je voudrais savoir dans quel contexte tu as besoin d'écrire ce programme ?

D'autre part, une partie du code est déjà écrite dans l'algorithme (qui reprend la syntaxe Smalltalk). Il reste à implémenter ce qui manque - en particulier déclarer les variables, récupérer les inputs quelque part (il faut bien que ça vienne de quelque part, quitte à utiliser des valeurs factices pour pouvoir tester) et à traduire les parties algorithmiques en Smalltalk.
__________________
[|]
maske est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 12h03   #7
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 34
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 34
Points : 30
Points : 30
D'accord avec Maske, merci de préciser le contexte et de proposer un premier code.

De manière très générale, et sans offense aucune, les forums ne sont pas des lieux où on demande aux autres de faire son travail. On peut demander de l'aide sur un problème précis, un renseignement, poser une question sur point donné, mais en prenant d'abord le temps de chercher soit même à résoudre le problème. Donc les demandes du genre: "Pouvez vous m'écrire un code à partir d'un cahier des charges ou d'un énoncé de devoir ?" sont à proscrire (si on veut une réponse).

Cordialement.
Mustrum_Ridculle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 17h28   #8
Invité de passage
 
Homme
Ingénieur systèmes et réseaux
Inscription : mars 2011
Messages : 4
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
Bonjour,

Je veux écrire cet algorithme en Smalltalk dans le cadre d'un travail que j'effectue sur un outil qui prend en entré des programme en Smalltalk, ci-joint un fichier récapitulant mon contexte du travail et donnant plus de détail sur le sujet.

Je vous remercie pour votre aide.
hector20102010 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h48.


 
 
 
 
Partenaires

Hébergement Web