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

Langages fonctionnels Discussion :

Lambda-calcul typé (système F) : algorithme de substitution


Sujet :

Langages fonctionnels

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut Lambda-calcul typé (système F) : algorithme de substitution
    Bonjour à tous,

    quelqu'un peut me donner en détails l'algorithme de substitution qu'on applique dans le système F?

    Merci d'avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Je connais Système F mais je ne comprends pas ta question. Qu'est-ce qui te pose problème et qu'est-ce que tu attends de nous ?

    gorgonite > ce cours est intéressant mais je ne pense pas que ce soit une bonne source pour Système F, qui y est essentiellement décrit comme un cas particulier de Pure Type System. C'est puissant et abstrait, mais pas le plus intuitif ou clair quand on débute...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Ton message m'y fait penser: j'ai écris des notes sur les lambda-calculs typés pour un exposé à une groupe de travail de logique, qui présentent le lambda-calcul, Système F et Système Fomega de façon relativement vulgarisée -- mais plutôt pour des logiciens que pour des informaticiens.
    Si ça intéresse quelqu'un, c'est ici :
    http://gdt.ludics.eu/images/5/58/Type_theory_course.pdf

    Bien sûr c'est un document de présentation/vulgarisation, en une dizaine de pages, pas du tout un cours ayant vocation d'être complet sur le sujet. Ça ne peut certainement pas remplacer un document comme le cours de Dowek, mais à mon avis c'est plus accessible pour une première approche.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut
    Merci à tous pour ces explications.

    Je trouve que ce document est très intéressant.

    Ma question est:

    est ce qu'il y a une différence entre l'algorithme de substitution dans le lambda calcul pure et l'algorithme de substitution dans le système F?

    je sais que dans le système F on doit gérer deux types de substitutions:

    la substitution des termes
    la substitution des types

    Je voudrais savoir est ce que c'est le même algorithme qu'on doit appliquer dans les deux substitutions ou pas?


    Je vous remercie tous.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    832
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 832
    Par défaut
    Je pense que tu peux répondre toi-même à ta question en définissant ces deux algorithmes de substitution pour les comparer. L'idée d'un algorithme de substitution est assez simple: on remplace les variables, et on substitue récursivement les sous-termes d'une expression un peu compliquée, en faisant attention à gérer les conflits de variables au niveau des lieurs (lambda, let, etc.) qui définissent de nouvelles variables (ayant peut-être le même nom que la variable substituée).

    Comment définis-tu ces deux substitutions ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 11
    Par défaut
    Pour la substitution des termes, je pense qu'il faut appliquer l'algorithme classique, càd:

    -si t est une variable, alors t[x/u]=u si x=t et t sinon

    -si t est une application (vw)alors t[x/u]=v[x/u]w[x/u]

    -si t est une abstraction (lambda y.v) alors t[x/u]=lambda y.(v[x/u]) si x est différent de y sinon t.

    Mais la question se complique au niveau des types.

Discussions similaires

  1. [Idée]Lambda-calcul non typé 100% graphique
    Par SpiceGuid dans le forum Langages fonctionnels
    Réponses: 4
    Dernier message: 11/05/2013, 17h07
  2. Lambda-calcul simplement typé : terminaison assurée ?
    Par Ekinoks dans le forum Langages fonctionnels
    Réponses: 7
    Dernier message: 11/09/2010, 22h25
  3. Lambda calcul + Ocaml
    Par binous_ dans le forum Caml
    Réponses: 4
    Dernier message: 12/03/2007, 17h04
  4. Parseur de lambda calcul
    Par davcha dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 27/04/2006, 22h05
  5. Réponses: 5
    Dernier message: 30/11/2005, 11h54

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