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 :

Réfléxivité et VM


Sujet :

Smalltalk

  1. #1
    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 Réfléxivité et VM
    Bonjour,

    Je cherche à éclaircir un peu ma compréhension du concept de réflexivité en Smalltalk.

    Au delà des définitions qu'on peut trouver dans divers ouvrages, auriez-vous des exemples de situations de programmation "courantes" en ST qui illustreraient ce concept et son utilité?

    Est-ce qu'une VM est considérée comme réflective (question peut être vague ou non pertinente?)

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Ook ;-)

    Sans doute un grand débat.
    Tout dépend de comment on comprend les définitions en question.
    La signification de base de la réflexivité c'est la possibilité d'écrire du code capable de s'automodifier (voir les le wikipedia pour plus de détails).

    Concrètement, ça sert dans les environnements Smalltalk à écrire les outils directement en Smalltalk (browsers, inspecteurs, debugger, ...).
    Il est alors possible d'aller consulter le code d'un outil comme le browser et de le modifier pour ajouter un menu, un contrôle, ou un nouveau concept.

    La plupart des utilisateurs de Smalltalk utilisent cet aspect pour adapter l'environnement à leurs besoins et écrire toute sorte d'outils facilitant le codage, l'analyse ou la génération de code.

    L'autre grande utilisation consiste à modifier le système pour ajouter de nouveaux concepts. Un des exemples de VisualWorks illustre l'outil ParserCompiler en ajoutant la possibilité de coder une syntaxe SQL directement dans le browser. Ca permet d'écrire des systèmes comme Neopus, Actalk ou SOUL (les universitaires allongeront certainement cette liste). Les possibilités de modifications de Smalltalk sont quasiment infinies.

    C'est une des forces et des faiblesses de Smalltalk (on peut tout faire et du coup n'importe qui peut faire n'importe quoi, ce qui n'est pas pour rassurer les responsables informatiques).

    Par contre, pour ce qui concerne la VM, elle ne fait pas partie du langage (même si Squeak dispose d'un mécanisme permettant d'écrire la VM en Smalltak pour la compiler ensuite). Il faut considérer la VM comme l'élément vital animant le monde Smalltalk. Il n'y a pas vraiment d'accès et de modification du code de la VM par le code Smalltalk en train de s'exécuter.

  3. #3
    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
    Bonjour,

    Merci beaucoup pour la réponse. Le concept reste assez complexe à saisir, mais offre apparemment en effet des possibilités immenses!


    PS: concernant "Ook" de l'Orang Outang bibliothécaire de Pratchett, j'avais lu que quelqu'un avait conçu un langage de programmation entiérement fondé sur "Ook" (mais je préfère le ST à la vue de l'exemple qui suit )

    Hello world en Ook :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook! Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook? Ook. Ook. Ook! Ook. Ook. Ook? Ook! Ook.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Points : 13
    Points
    13
    Par défaut
    Oui, il s'agit d'un dérivée du BrainFuck (ce magnifique langage que tout le monde devrait commencer par apprendre pour revenir aux fondements de l'informatique).

    Pour le concept de réflexivité, je pense que c'est comme beaucoup de concept un peu évolué : il faut commencer par comprendre les bases et se construire un socle de compréhension solide avant de monter la pyramide, sinon elle s'écroule.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par Mustrum_Ridculle Voir le message
    Bonjour,

    Je cherche à éclaircir un peu ma compréhension du concept de réflexivité en Smalltalk.

    Au delà des définitions qu'on peut trouver dans divers ouvrages, auriez-vous des exemples de situations de programmation "courantes" en ST qui illustreraient ce concept et son utilité?

    Est-ce qu'une VM est considérée comme réflective (question peut être vague ou non pertinente?)

    Merci d'avance.
    Je te conseille pour en savoir plus sur la réflexivité en Smalltalk de lire le chapitre 12 sur la question dans le livre "Squeak par l'exemple" :
    http://squeakbyexample.org/fr/

Discussions similaires

  1. Réfléxivité en javascript
    Par fats1 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2013, 15h05
  2. Problème avec la réfléxivité getMethod(setter, paramType)
    Par peofofo dans le forum Général Java
    Réponses: 4
    Dernier message: 12/07/2012, 09h54
  3. Utilisation de la réfléxivité sur arrays ou listes
    Par Astro-Péptio dans le forum Général Java
    Réponses: 2
    Dernier message: 02/08/2011, 14h56

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