ChoixPC + LDLC = cadeau    /    Les sponsors : rôles et fonctionnements

[S'inscrire]  [Aide (FAQ)]  [Rechercher]
[Connexion]  [Posts récents]  [Messages privés]
[Votre profil]  [Vos préférences]  [Sujets déplacés]
[Liste des membres]  [Stats]  [Accueil Site]  [Générateur]
[Accueil Forum] - Datation serveur (UTC+1) : 12:19
Forum ChoixPC » » Archives : Divers - blabla et le reste - » » Les langages qui se décrivent eux mêmes
Aller directement à la page : ( 1 | 2 | 3 Page suivante )  Bas de page
Rechercher dans ce topic :
Mot clé :       Auteur :
Auteur Sujet : Les langages qui se décrivent eux mêmes
Tian
''Chevalier pourfendeur d'écrans bleus''


Inscrit: Oct 17, 2001
Messages: 7474
De: passage
Posté le: 04-10-2002 à 13:02  | N° d'ordre sur la page en cours : 1 / 15 | N° d'ordre sur le topic : 1 / 39
Salut,

Il s'agit d'une réflexion que je me suis faite un soir dans mon lit (je sais je réflechis trop )

Est ce que la faculté d'un langage à se décrire lui même est une propriété connue et qui porte un nom? Et cette notion a-t-elle un sens?

Je précise des exemples qui m'ont ammenés à cela.

La langue française peut se définir par des mots français. Un dictionnaire et un précis de grammaire donnent les règles et usage de celle-ci et ils sont rédigés en Français.

L'UML est un langage qui permet de décrire des concepts (éléments, processus,...) Et il me semble qu'il existe un modèle UML d'UML lui même.

Et est ce que le fait que l'on puisse écrire un compilateur C (par exemple, mais ce pourrait être un autre langage de programmation) en C constitue un autre exemple de l'application de cette propriété?

Merci à ceux qui aurait des éléments à apporter à ma réflexion personnelle (je ne serai pas étonné que Julien passe dans le coin )
_________________
Site d'Aide Informatique de Tian : Articles sur l'informatique en général et GNU/Linux.

Découvrez la CPC MozBar et GCstar, gestionnaire de collection


                                 --> Fct Warning : lire la FAQ svp.
le mérou
''Exorciseur de PC''


Inscrit: Jul 29, 2001
Messages: 3985
De: mon coin de paradis..
Posté le: 04-10-2002 à 13:15  | N° d'ordre sur la page en cours : 2 / 15 | N° d'ordre sur le topic : 2 / 39
salut Tian.

intéressante comme question...meme si je ne comprends que le début.

"Est ce que la faculté d'un langage à se décrire lui même est une propriété connue et qui porte un nom? Et cette notion a-t-elle un sens?"

tout le problème est de savoir sous quel angle tu souhaites "décrire" une langue?

décrire son sens? c'est la sémiologie ou sémantique.
décrire son fonctionnement?c'est la grammaire, l'orthographe,... que tu cites.
décrire son objet? la psychanalyse s'y efforce, d'un certain poit de vue ( Lacanien notemment)

suis je dnas le champ de réponse ou je n'ai pas saisi l'analogie informatique???


_________________
I'm dazed and confused, so?


                              --> Fct Warning : lire la FAQ svp.
Tian
''Chevalier pourfendeur d'écrans bleus''


Inscrit: Oct 17, 2001
Messages: 7474
De: passage
Posté le: 04-10-2002 à 13:53  | N° d'ordre sur la page en cours : 3 / 15 | N° d'ordre sur le topic : 3 / 39
Coucou le merou
Quote:

Le 04-10-2002 à 13:15, le mérou a écrit:
tout le problème est de savoir sous quel angle tu souhaites "décrire" une langue?

décrire son sens? c'est la sémiologie ou sémantique.
décrire son fonctionnement?c'est la grammaire, l'orthographe,... que tu cites.
décrire son objet? la psychanalyse s'y efforce, d'un certain poit de vue ( Lacanien notemment)


En fait je dois avouer que le fait justement de decrire un langage est assez flou, et je ne sais pas tres bien si une definition universelle existe.

Les domaines d'etude que tu cite se pratiquent dans la langue les concernant justement. Cela rejoint mes interrogations du depart. Et je me demande en fait si on peut considerer que ces descriptions faites dans le meme langage sont exhaustives et suffisantes.
_________________
Site d'Aide Informatique de Tian : Articles sur l'informatique en général et GNU/Linux.

Découvrez la CPC MozBar et GCstar, gestionnaire de collection


                                 --> Fct Warning : lire la FAQ svp.
Julien
''Exorciseur de PC''


Inscrit: Jan 04, 2002
Messages: 3227
De: /home/julien
Posté le: 04-10-2002 à 14:42  | N° d'ordre sur la page en cours : 4 / 15 | N° d'ordre sur le topic : 4 / 39
On m'appelle


Quote:

Le 04-10-2002 à 13:02, Tian a écrit:
Est ce que la faculté d'un langage à se décrire lui même est une propriété connue et qui porte un nom? Et cette notion a-t-elle un sens?


Le premier (à ma connaissance) à avoir théorisé cela est Roman Jakobson. Ca s'applique d'abord au langage humain . Grosso modo, le langage a 6 fonctions, toutes centrées sur un élément de la communication :

- l'émetteur (fontion émotive) le message sert à faire passer ses semtiments
- le récepteur (fonction conative) : le message sert à agir sur l'émetteur
- le message (fonction poétique) : on centre le message sur l'aspect esthétique (la forme)
- le contexte (fonction référentielle) : on fait référence au monde
- le canal de communication (fonction phatique) : on garde le contact

Et last but not least :
- le code : la fontion métalinguistique : la langue est utilisée pour parler d'elle-même.

On parle alors de métalangue (pour le français et les autres langues) et de métalangage en informatique (UML, XML, Rebol...). Tes exemples illustrent effectivement cette capacité qu'ont les langages de se définir eux-mêmes .

Quote:

Et est-ce que le fait que l'on puisse écrire un compilateur C (par exemple, mais ce pourrait être un autre langage de programmation) en C constitue un autre exemple de l'application de cette propriété?


Bonne question
A chaud, je dirais que non, car la propriété fondamentale du caractère métalangagier est qu'un langage se définit lui-même grâce à lui-même. Je sais qu'en Rebol tu peux créer des "dialectes" qui vont être utiles à une fin particulière en utilisant le langage lui-même. En fait tu définis du langage (le dialecte) par du langage (le rebol). C'est la même chose avec XML, où tu définis le XHTML sur la base du HTML en utilisant XML. Dans ton exemple du compilateur, tu ne *définis* pas du langage, tu *utilises* le langage, de manière cyclique, mais tu ne (re)définis rien. Donc je pense que ce n'est pas la même chose Mais je peux me tromper

N'hésite surtout pas si tu as d'autres questions de ce genre



_________________


[ Ce message a été modifié par: Julien le 04-10-2002 à 14:45 ]


                           --> Fct Warning : lire la FAQ svp.
kheldar
''En quête de stabilité sur le mont Asus''


Inscrit: Jan 10, 2002
Messages: 265
Posté le: 04-10-2002 à 14:48  | N° d'ordre sur la page en cours : 5 / 15 | N° d'ordre sur le topic : 5 / 39
Salut !

Un langage qui se décrit lui même est un Métalangage mais c'est vrai que le problème du contexte de définition est trés important.

L'étude la plus importante du métalangage c'est la logique, où l'on cherche à s'affranchir du contexte sémantique pour ne travailler que sur les relations logiques et les articulations du discours.

En fait ta question rejoint le paradoxe de Russel. Va sur cette page tu auras un bon aperçu
du métalangage (théorie symple des types)

http://membres.lycos.fr/villemingerard/Logique/Incompl.htm#Russel

En fait pour simplifier le métalangage sert à parler d'un domaine sans être dans ce même domaine.

Ex:

"La neige est blanche" devient "La neige est blanche est phrase vraie".

Cet exemple est trés simpliste mais le métalangage est le seul moyen d'éviter le paradoxe de Russel.

Mais la question que tu te pose sur le langage fait partie d'un ensemble de question qui constituent les problématiques fondamentales de la philosophie ananlytique (philosophie anglo-saxonne trés majoritaire actuellement).

Voici un lien:
http://membres.lycos.fr/philoanalytique/introduction.htm

Mais evidemment c'est une question qui est loin d'être résolue... et qui promet encore de nombreuses heures de réflexions nocturnes pour un grand nombre de gens


                              --> Fct Warning : lire la FAQ svp.
kheldar
''En quête de stabilité sur le mont Asus''


Inscrit: Jan 10, 2002
Messages: 265
Posté le: 04-10-2002 à 14:51  | N° d'ordre sur la page en cours : 6 / 15 | N° d'ordre sur le topic : 6 / 39
Oups croisements de posts avec Julien

Tiens voilà un bon exemple des façon trés différentes d'aborder le problème.


                              --> Fct Warning : lire la FAQ svp.
kheldar
''En quête de stabilité sur le mont Asus''


Inscrit: Jan 10, 2002
Messages: 265
Posté le: 04-10-2002 à 15:02  | N° d'ordre sur la page en cours : 7 / 15 | N° d'ordre sur le topic : 7 / 39
Sinon même si je m'y connais pas du tout en langage informatique je suis d'accord avec Julien pour dire que que le métalangage est le passage à un sur-ensemble, et que donc utiliser les propriétés d'un langage pour le décrire lui-même n'est pas du métalangage !

                              --> Fct Warning : lire la FAQ svp.
Tian
''Chevalier pourfendeur d'écrans bleus''


Inscrit: Oct 17, 2001
Messages: 7474
De: passage
Posté le: 04-10-2002 à 15:19  | N° d'ordre sur la page en cours : 8 / 15 | N° d'ordre sur le topic : 8 / 39
Oula, je ne pensais pas soulever un tel sujet derriere mon interrogation innocente

kheldar> Tres interessant tes liens Mais j'ai failli me faire un claquage neuronal en les lisant

Julien> En fait c'est dans un compilateur que l'on trouve la definition du langage. Si on souhaite en modifier la syntaxe ou l'etendre, c'est a ce niveau la qu'il faut le faire. On retrouve donc dans la compilateur la description exhaustive et extensible du langage. C'est ce qui m'avait ammene a vouloir adapter cette notion aux compilateurs. Mais effectivement ce n'est pas vraiment la meme chose.

Enfin, je continuerai d'y reflechir pendant mes insomnies avec ces nouveaux elements
_________________
Site d'Aide Informatique de Tian : Articles sur l'informatique en général et GNU/Linux.

Découvrez la CPC MozBar et GCstar, gestionnaire de collection


                                 --> Fct Warning : lire la FAQ svp.
Julien
''Exorciseur de PC''


Inscrit: Jan 04, 2002
Messages: 3227
De: /home/julien
Posté le: 04-10-2002 à 15:43  | N° d'ordre sur la page en cours : 9 / 15 | N° d'ordre sur le topic : 9 / 39
Quote:

Le 04-10-2002 à 15:02, kheldar a écrit:
Sinon même si je m'y connais pas du tout en langage informatique je suis d'accord avec Julien pour dire que que le métalangage est le passage à un sur-ensemble, et que donc utiliser les propriétés d'un langage pour le décrire lui-même n'est pas du métalangage !


J'ai pas dit ça
Le fait d'utiliser un langage pour le décrire lui-même, c'est précisément ça le métalangage Si je reprends ton exemple de la neige, quand on a "la neige est blanche est une proposition vraie", on utilise le langage (enfin la langue plus précisément) pour le décrire lui même : on dit que la valeur de vérité de l'énoncé "la neige est blanche" est vraie


Tian > épineux ton pb . Là je doute maintenant : en effet, vu comme ça, on peut dire que le compilateur, à un certain niveau d'abstraction, est une grammaire, en ce sens qu'il permet de générer du langage et rien que du langage (ainsi il va nous signaler toutes les erreurs syntaxiques, mais pas les erreurs logiques, qui elles sont des erreurs sémantiques (rien n'empêche de dire "la neige est blanche est une proposition fausse", bien que la valeur de vérité de cet énoncé soit fausse ). Si l'on modifie le compilateur, on va modifier la "grammaire du C" c'est bien ça? Par exemple, si on lui dit de remplacer les accolades {} par des crochets [], c'est dans le compilateur que ça va se passer, n'est-ce pas? Je pense que oui.
Dans ce cas, effectivement, ça ressemble à du métalangage, mais je ne suis pas sûr que ça en soit. Car si l'on veut modifier le compilateur (ex: remplacer les accolades par des crochets), on ne peut pas utiliser le compilateur pour s'autocompiler (si oui je crois qu'on aurait du vrai métalangage), mais si non, on est obligé d'utiliser une grammaire extérieure (un compilateur C non modifié) pour arriver à la nouvelle grammaire (le C avec crochets). Pour que ce soit un vrai métalangage, il faudrait que sa syntaxe soit auto-définitoire (la métaphore de l'autocompilation est assez bonne). Bon maintenant tu le sais, je connais peu le C, donc il y a pê qqch qui m'échappe qui ferait que c un métalangage. Mais je ne crois pas. En tous cas j'y réfléchirai ce we


_________________


                           --> Fct Warning : lire la FAQ svp.
Tian
''Chevalier pourfendeur d'écrans bleus''


Inscrit: Oct 17, 2001
Messages: 7474
De: passage
Posté le: 04-10-2002 à 15:58  | N° d'ordre sur la page en cours : 10 / 15 | N° d'ordre sur le topic : 10 / 39
Quote:

Le 04-10-2002 à 15:43, Julien a écrit:
Si l'on modifie le compilateur, on va modifier la "grammaire du C" c'est bien ça?


Enfin c'est vrai que c'est un peu particulier pour le C. Ce langage est defini par des normes. Donc un compilateur n'est qu'une implementation de la norme. C'est ce qui rend cet exemple un peu bancal.
Quote:

on ne peut pas utiliser le compilateur pour s'autocompiler


Si justement Et en fait dans le developpement d'un compilateur, c'est generalement le signe d'un niveau de maturite suffisante lorsqu'il arrive a se compiler lui meme.
Quote:

En tous cas j'y réfléchirai ce we


Je crois que moi aussi j'y ai assez reflechi pour cette fin de semaine
_________________
Site d'Aide Informatique de Tian : Articles sur l'informatique en général et GNU/Linux.

Découvrez la CPC MozBar et GCstar, gestionnaire de collection


                                 --> Fct Warning : lire la FAQ svp.
kheldar
''En quête de stabilité sur le mont Asus''


Inscrit: Jan 10, 2002
Messages: 265
Posté le: 04-10-2002 à 16:05  | N° d'ordre sur la page en cours : 11 / 15 | N° d'ordre sur le topic : 11 / 39
J'ai rien compris à votre jargon informatique !!

Julien> Tu ne m'as pas compris :

Au niveau de la logique le métalangage n'est pas seulement le fait qu'un langage se décrive lui même. SI on reste dans l'opposition ensemble qui se contiennent / ensemble qui ne se contiennent pas, on est toujours dans le paradoxe de Russel, et le seul moyen d'en sortir c'est de passer au métalangage au sens logique du terme.
Au niveau de la pure définition je suis d'accord pour dire que la phrase " la neige est blanche est une proposition vraie " contient la valeur de la phrase la neige est blanche, mais la phrase : " la neige est blanche est une proposition vraie " n'utilise pas la langue comme tu le dis.
Sinon le fait de dire la neige est blanche serait suffisant.
En rajoutant " la phrase... est une proposition vraie", on ne fait que définir la phrase en la plaçant dans les éléments des propositions vraies. C'est à dire que l'on fait référence à un systéme logique qui n'est pas décrit ni par la phrase ni par le langage en général... C'est à dire que le langage en lui même n'attribue aucun critère de vérité aux phrases qui l'utilisent.

Bon d'accord, j'avoue que je m'explique trés mal. Rien que de me relire je m'embrouille tout seul mais il y a ici une différence fondamentale dans l'utilisation du sens métalangage.

C'est pas clair ?


                              --> Fct Warning : lire la FAQ svp.
Julien
''Exorciseur de PC''


Inscrit: Jan 04, 2002
Messages: 3227
De: /home/julien
Posté le: 05-10-2002 à 08:44  | N° d'ordre sur la page en cours : 12 / 15 | N° d'ordre sur le topic : 12 / 39
Kheldar > En fait c'est pê moi qui me suis mal exprimé. Je ne veux pas dire que "la neige est blanche est une proposition vraie" contient la valeur de la phrase "la neige est blanche". En fait ces deux énoncés ont la même valeur de vérité, à savoir que tant que l'un sera vrai l'autre le sera aussi. Je comprends (enfin j'en ai l'impression ) ce que tu dis à propos de ensembles, mais en linguistique (et pour autant que je sache) en informatique, on parle de métalangue/métalangage quand un langage (et une langue, mais c'est une propriété intrinsèque des langues que de pouvoir fonctionner au niveau métalinguistique) se définit lui-même. En langue naturelle, quand tu dis "le cheval est un animal" tu utilises la langue pour (re)définir une partie d'elle-même. C'est la même chose avec certains langages informatiques où tu peux utiliser la syntaxe du langage pour le redéfinir lui-même. La notion d'ensemble est non définitoire (de ce point de vue ), et de toute manière il faudrait fonctionner sur des ensembles ouverts (possibilité d'extension des langues naturelles et des langages informatiques). Je sais pas si c'est compréhensible


Tian > J'y ai réfléchi
OK, le compilateur peut s'autocompiler , c'est merveilleux le C . Bon tu vas croire que j'en ai après ce langage , mais en m'endormant j'y ai repensé : tout d'abord le caractère métalinguistique n'est pas en tout ou rien : il y a du plutôt métalinguistique, du franchement métalinguistique, du pas du tout métalinguistique... Pour UML, XML et Rebol, je suis sûr de moi (parce que je l'ai lui qq part), ce sont bien des métalangages. Mais si on considère les structures en C, finalement on redéfinit une partie de la syntaxe, en construisant avec la syntaxe de base un nouvel élément de la grammaire. Compare ces exemples en langue naturelle et en C :
- le choupatal est un oiseau bleu à trois pattes.
- struct date ... (c'est bien comme ça qu'on crée une structure, j'ai oublié )

Dans les deux cas, on définit à partir des éléments du langage une partie du langage (respectivement le choupatal et la structure date), donc on peut dire que le C est de ce point de vue métalangagier Et tous les langages doivent être à un certain niveau métalangagier.
Cependant, il me semble (mais je m'y connais pas assez, désolé ), que l'histoire du compilateur c'est autre chose. Bon c'est qu'une intuition, mais ça me semble pas tout à fait pareil. Le truc, c'est qui me chifonne, c'est que même si on admet que le compilateur peut se compiler lui-même, il va perdre sa syntaxe d'origine, non? Dans mon mauvais exemple d'hier, {} devient [] et on perd {}. En fait, pour que ce soit métalangagier, il faudrait qu'on définisse [] dans le langage sur la base de {}, mais qu'on garde {}. Il y a encore un truc qui me chiffonne à propos de ce compilateur, mais j'arrive pas à me l'expliquer clairement. Si j'y parviens je te tiens au courant.


_________________


                           --> Fct Warning : lire la FAQ svp.
micol
''Apprenti dompteur de configuration''


Inscrit: Sep 20, 2001
Messages: 1249
De: Villeurbanne (Rhône)
Posté le: 05-10-2002 à 13:42  | N° d'ordre sur la page en cours : 13 / 15 | N° d'ordre sur le topic : 13 / 39
Quote:
Il y a encore un truc qui me chiffonne à propos de ce compilateur, mais j'arrive pas à me l'expliquer clairement

Bonjour,

Ce qui me chiffonne dans cette comparaison, c'est que le compilateur a d'abord dû être compilé par un autre compilateur avant de pouvoir être exécuté la première fois.

Qu'il puisse ensuite servir à compiler ses versions successives ne change rien ce fait.

Bien sûr, une version peut se recompiler elle-même, mais il aura d'abord fallu qu'elle soit compilée par une autre.
_________________
*** resolutly politically NOT correct *** J'ai acheté un alcootest électronique. Je préfère donner 7€ à un marchand asiatique que 2€ au salopard français qui a corrompu assez de députés pour nous


                              --> Fct Warning : lire la FAQ svp.
Julien
''Exorciseur de PC''


Inscrit: Jan 04, 2002
Messages: 3227
De: /home/julien
Posté le: 05-10-2002 à 14:01  | N° d'ordre sur la page en cours : 14 / 15 | N° d'ordre sur le topic : 14 / 39
Bien vu Micol, mais le pb c'est que ça n'a pas d'importance. La genèse d'un langage n'est pas à prendre en compte, du moins ce n'est pas pertinent pour l'analyse. C'est un peu comme le bigbang, on n'a pas à savoir ce qu'il y avait avant et ce qui l'a déclenché (enfin c'est Stephen Hawking qui dit ça (pour le bigbang), je fais que répéter ), il suffit d'expliquer ce qui se passe à partir de l'explosion originelle.

En fait ce qui me gêne, c'est que l'autorecompilation du compilateur va faire évoluer (au sens neutre du terme ) le langage. Or, ça s'apparente ni plus ni moins à l'évolution d'une langue, ce qui n'a rien de métalangagier. Donc je me suis égaré avec cette histoire d'autocompilation. Je poursuis mon investigation du côté de XML pour arriver expliquer à peu près clairement ce que je veux faire comprendre


_________________


                           --> Fct Warning : lire la FAQ svp.
Julien
''Exorciseur de PC''


Inscrit: Jan 04, 2002
Messages: 3227
De: /home/julien
Posté le: 05-10-2002 à 14:14  | N° d'ordre sur la page en cours : 15 / 15 | N° d'ordre sur le topic : 15 / 39
Quote:

Le 04-10-2002 à 13:53, Tian a écrit:
je me demande en fait si on peut considerer que ces descriptions faites dans le meme langage sont exhaustives et suffisantes.


En fait là je crois que ça va vraiment dépendre du champ disciplinaire dans lequel tu te situes, et peut-être même dans la théorie dans laquelle tu te places. Kheldar nous dira peut-être ce qu'il en est pour la philosophie logique .

Pour ce qui est de la langue naturelle, je pense pouvoir dire que ces définitions ne seront jamais exhaustives ni suffisantes. La première raison c'est que la grammaire G(L) d'une langue L est la somme de toutes les grammaires individuelles In, soit :
G(L) = G(I1)+ G(I2)...+ G(In)
et donc ce qui est vrai dans une grammaire G(I1) ne l'est pas forcément dans G(I2) .

Ensuite, une langue est (considérée comme) une structure, et tous ses éléments n'ont de sens que les uns par rapport aux autres. Donc toute définition est relative et non absolue . Maintenant, ça ne s'applique qu'au langage humain , je sais pas ce qu'il en est des langages informatiques . Il faudrait peut-être regarder du côté des théories sémiotiques.



_________________


                           --> Fct Warning : lire la FAQ svp.
Forum ChoixPC » » Archives : Divers - blabla et le reste - » » Les langages qui se décrivent eux mêmes Haut de page | Posts récents

Aller directement à la page : ( 1 | 2 | 3 Page suivante )