IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Smalltalk Discussion :

Programme qui intervient sur un Control and Data Flow Graph


Sujet :

Smalltalk

  1. #1
    Invité
    Invité(e)
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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}.
          ].
    ].
    Dernière modification par Alcatîz ; 10/04/2011 à 19h13. Motif: orthographe

  2. #2
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    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 ?
    [|]

  3. #3
    Invité
    Invité(e)
    Par défaut
    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 ).
    Dernière modification par Invité ; 13/06/2011 à 13h52.

  4. #4
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    Bonsoir,

    en fait tu veux qu'on t'écrive ton algo en Smalltalk ?
    [|]

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

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

    Cordialement.

  6. #6
    Membre éprouvé

    Homme Profil pro
    non
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : non

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 1 116
    Points
    1 116
    Par défaut
    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.
    [|]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 42
    Points
    42
    Par défaut
    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.

  8. #8
    Invité
    Invité(e)
    Par défaut
    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.
    Dernière modification par Invité ; 13/06/2011 à 13h52.

Discussions similaires

  1. Programme qui ecrit sur une page internet
    Par nasdaq dans le forum Général Python
    Réponses: 4
    Dernier message: 01/11/2011, 13h47
  2. Réponses: 2
    Dernier message: 24/05/2011, 12h46
  3. Réponses: 4
    Dernier message: 13/04/2007, 15h26
  4. Réponses: 8
    Dernier message: 08/05/2006, 20h40
  5. [VB.NET] Programmer une Application qui tourne sur un PDA?
    Par Bils dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2006, 04h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo