Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4983 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  5651  5652  5653  ..  26991  26992  26993  26994  26995  26996
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°899191
Lam's
Profil: bas.
Posté le 15-11-2004 à 17:27:04  profilanswer
 

Reprise du message précédent :

chrisbk a écrit :

nan mais la je suis outré, genre [:mlc]
modifié les mots clés a la volée, voila qui va a l'encontre d'une belle grammaire bien propre [:mmmfff]


 
Le C n'est de toute façon pas parsable directment avec une grammaire LALR (même en faisant abstraction du préprocesseur, évidemment).

mood
Publicité
Posté le 15-11-2004 à 17:27:04  profilanswer
 

n°899192
chrisbk
-
Posté le 15-11-2004 à 17:29:11  profilanswer
 

Lam's a écrit :

Le C n'est de toute façon pas parsable directment avec une grammaire LALR (même en faisant abstraction du préprocesseur, évidemment).


 
ah tiens ? me semblait pourtant avoir vu des grammaires yacc/bison pour le C.  
 
edit : A part le cast bien merdique a faire, y'a quoi de pas LALR1 dans le C ?
 
Anyway et dans tous les cas, c'est pas une raison pour faire une cochonnerie pareille


Message édité par chrisbk le 15-11-2004 à 17:32:10

---------------
NP: HTTP Error 764 Stupid coder found
n°899194
urd-sama
waste of space
Posté le 15-11-2004 à 17:32:30  profilanswer
 

drasche a écrit :

T'as pas pu t'empêcher de lui rentrer dans le lard à la pauvre noisette là [:ddr555]


ouais mais bon, c'est trop quoi [:dawa]
c'est comme si kadreg disait: "comme je suis HEUREUX [:dawa]"

n°899195
drasche
Posté le 15-11-2004 à 17:33:34  profilanswer
 

urd-sama a écrit :

ouais mais bon, c'est trop quoi [:dawa]
c'est comme si kadreg disait: "comme je suis HEUREUX [:dawa]"


Je lui souhaite qu'un jour, il puisse le dire et le penser vraiment.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°899198
Lam's
Profil: bas.
Posté le 15-11-2004 à 17:36:58  profilanswer
 

chrisbk a écrit :

ah tiens ? me semblait pourtant avoir vu des grammaires yacc/bison pour le C.
 
Anyway et dans tous les cas, c'est pas une raison pour faire une cochonnerie pareille


Bah, rien que les commentaires, t'as tout intérêt à les consommer à la main dès que tu trouves le /* d'ouverture, sinon t'es partir pour avoir une regexp de folie pour les définir.
Mais le C n'est pas déterministe: ta grammaire se change au fur et à mesure où tu parses (tu inclues les symboles dedans). Les .yacc ou .bison que tu as vu étaient là pour simplifier grandement le parsing, mais ce n'était pas du 100% LALR.
 
Kad simplifie un peu le fonctionnement de Gcc, mais ça reste vrai dans le fond. Dans la mesure où il y a un seul espace de nommage pour tout en C (stat est à la fois un type, un nom de fonction, et peut être un nom de variable ou de label), ça donne des trucs qui sont hyper dépendant du contexte (donc de la définition connue de chaque token). Si gcc ne sait pas ce qu'est un mot, il ne va donc même pas chercher à savoir ce que ça veut dire.  

n°899199
chrisbk
-
Posté le 15-11-2004 à 17:37:34  profilanswer
 

Et, Bon Dieu de Merde, quelle etait l'idée geniale qui a pousser les concepteurs du C a n'autoriser les decls de variables qu'en debut de block ???


---------------
NP: HTTP Error 764 Stupid coder found
n°899200
chrisbk
-
Posté le 15-11-2004 à 17:40:40  profilanswer
 

Lam's a écrit :

Bah, rien que les commentaires, t'as tout intérêt à les consommer à la main dès que tu trouves le /* d'ouverture, sinon t'es partir pour avoir une regexp de folie pour les définir.


 
oué ca je sais, c'est comme ca que je fais. (D'ailleurs quitte a faire on peut meme rebricoler un coup le lexer pour qu'il accepte les commentaires imbriqués, ca coute pas cher et c'est pratique)
 

Lam's a écrit :


Mais le C n'est pas déterministe: ta grammaire se change au fur et à mesure où tu parses (tu inclues les symboles dedans). Les .yacc ou .bison que tu as vu étaient là pour simplifier grandement le parsing, mais ce n'était pas du 100% LALR.


 
Ca par contre je comprends pas ?
 
si ma grammaire me dit (en gros)
 

Code :
  1. declarationVariable : type nom ';'
  2. ;
  3. type : string
  4. ;
  5. nom : string
  6. ;


 
bin elle change pas ? jbalance les symboles trouvés dans la table du meme nom, certes, mais je fais pas bouger ma grammaire (apres par contre je verifie tout ca soigneusement (ce que je dois faire de toute facon), mais apres seulement, une fois le parse fini)
 
 
 
 


---------------
NP: HTTP Error 764 Stupid coder found
n°899201
red factio​n
Posté le 15-11-2004 à 17:40:42  profilanswer
 

ptain ya des gens balaise qd mm pour ecrire des compilos si javais un peu de temps jme ferais bien ca moi  :o


Message édité par red faction le 15-11-2004 à 17:42:27
n°899205
Lam's
Profil: bas.
Posté le 15-11-2004 à 17:43:42  profilanswer
 

chrisbk a écrit :

ah edit : A part le cast bien merdique a faire, y'a quoi de pas LALR1 dans le C ?


 
A (*p);
 
Ca peut être la déclaration d'une fonction p qui retourne un A,  
 
ou bien ça peut être l'appel de la fonction A en déréférencant p.


Message édité par Lam's le 15-11-2004 à 17:44:30
n°899206
urd-sama
waste of space
Posté le 15-11-2004 à 17:44:04  profilanswer
 

drasche a écrit :

Je lui souhaite qu'un jour, il puisse le dire et le penser vraiment.


ouais mais voilà, pas en 1 mois quoi [:dawa]
 
(et puis va chier pour ton post qui mets toute ma crédibilité à la poubelle :o)
 
ps: je parle un peu gras non?

mood
Publicité
Posté le 15-11-2004 à 17:44:04  profilanswer
 

n°899208
schnapsman​n
Zaford Beeblefect
Posté le 15-11-2004 à 17:44:32  profilanswer
 

kadreg a écrit :

Le lexer fait tout à la bite et au couteau et converti le fichier dans un état permettant d'utiliser une grammaire LALR.


 
l'analyseur lexical du C sépare les tokens en utilisant "plus" que des expressions régulières???
 
remarque en C++ à cause des token "angle bracket" pour les templates, il sont peut être obligés de faire plus qu'un simple lexer à regex [:gratgrat]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°899210
drasche
Posté le 15-11-2004 à 17:47:35  profilanswer
 

urd-sama a écrit :

ouais mais voilà, pas en 1 mois quoi [:dawa]


Bah, si, en un mois ça me paraît crédible. Il peut se passer un tas de choses en un mois: un collègue a décidé de se marier avec une femme rencontrée 15 jours auparavant, ils sont toujours ensemble, ont une fille très intelligente (et prometteuse: veut faire ingénieur en informatique et un doctorat en maths)
 

urd-sama a écrit :

(et puis va chier pour ton post qui mets toute ma crédibilité à la poubelle :o)


[:ddr555]
 

urd-sama a écrit :

ps: je parle un peu gras non?


Pas selon mes critères ;)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°899212
chrisbk
-
Posté le 15-11-2004 à 17:49:47  profilanswer
 

red faction a écrit :

ptain ya des gens balaise qd mm pour ecrire des compilos si javais un peu de temps jme ferais bien ca moi  :o


 
fait gaffe on y perd rapidement sa sanity [:icon9]


---------------
NP: HTTP Error 764 Stupid coder found
n°899213
chrisbk
-
Posté le 15-11-2004 à 17:50:43  profilanswer
 

Lam's a écrit :

A (*p);
 
Ca peut être la déclaration d'une fonction p qui retourne un A,  
 
ou bien ça peut être l'appel de la fonction A en déréférencant p.


 
Stun peu le meme souc que le cast, ca, non ?


---------------
NP: HTTP Error 764 Stupid coder found
n°899215
Terminapor
I'll see you rise.
Posté le 15-11-2004 à 17:51:51  profilanswer
 

b'jour [:aimeric_1]

n°899216
Lam's
Profil: bas.
Posté le 15-11-2004 à 17:51:55  profilanswer
 

schnapsmann a écrit :

l'analyseur lexical du C sépare les tokens en utilisant "plus" que des expressions régulières???


Oui, largement:
 - il mange les chaînes de caractères, et les commentaiers plutôt que de se taper des regexps à la con de 3 Kms
 - il utilise la table des symboles pour décider ce que chaque symbole est (sinon yacc n'en sortirait pas)
 - il utilise ça pour essayer de déméler un peu ce qui se passe et savoir si un mot est un type, un nom de fonction, une valeur, etc.
 
Typiquement, comme je l'ai dit, va faire un parser juste pour ça:
 

Code :
  1. printf("%d"
  2. " %d\n", sizeof stat, sizeof(stat) );


n°899217
the real m​oins moins
Posté le 15-11-2004 à 17:52:12  profilanswer
 

ha ha.

n°899219
the real m​oins moins
Posté le 15-11-2004 à 17:52:27  profilanswer
 

[:icon12]

n°899221
schnapsman​n
Zaford Beeblefect
Posté le 15-11-2004 à 17:53:49  profilanswer
 

Lam's a écrit :

A (*p);
 
Ca peut être la déclaration d'une fonction p qui retourne un A,  
 
ou bien ça peut être l'appel de la fonction A en déréférencant p.


 
mais une déclaration n'est pas un "statement".
Une decl de fonction ne peut apparaitre dans un corps de fonction et au contraire un appel de fonction ne peut apparaitre que dans le corps d'un fonction.
Donc au priori le distingo decl/appel doit pouvoir se faire dans la grammaire non?
 
par ex:
 
global -> definitions de fonctions | declaration de fonctions | ...
 
definitions -> signature + corps  
 
corps -> ensemble de statements | statement
 
statement -> appel de fonction | ...


Message édité par schnapsmann le 15-11-2004 à 18:01:09

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°899222
chrisbk
-
Posté le 15-11-2004 à 17:56:39  profilanswer
 

schnapsmann a écrit :

mais une déclaration n'est pas un "statement".
Une decl de fonction ne peut apparaitre dans un corps de fonction et au contraire un appel de fonction ne peut apparaitre que dans le corps d'un fonction.
Donc au priori le distingo decl/appel doit pouvoir se faire dans la grammaire non?


 
disons alors
 
A(*p)();
 
soit tu declares un ptr sur fonction, soit tu appeles A() en dereferencant P et tu rapelles ce que A te renvoie.
 


---------------
NP: HTTP Error 764 Stupid coder found
n°899225
Lam's
Profil: bas.
Posté le 15-11-2004 à 17:58:33  profilanswer
 

chrisbk a écrit :

Et, Bon Dieu de Merde, quelle etait l'idée geniale qui a pousser les concepteurs du C a n'autoriser les decls de variables qu'en debut de block ???


 
Tiens, j'ai pas répondu à ça.  
 
De cette manière, toutes tes variables sont en début de pile, et tu ne te fais pas chier à intercaler des push/pop pour ton code avec des push/pop pour tes données.  
 
En plus, ça te permet d'éviter des trucs vicieux à parser comme:
if (1)
  int j;
else if (int x)  
  int i;
 
Bref, le principe même du C, c'est que tout ce qui n'est pas une déclaration est une instruction, non ?
 
Donc, au prix d'une légère lourdeur syntaxique (devoir rajouter des blocks à la main), tu simplifies grandement la définition du langage.

n°899229
uriel
blood pt.2
Posté le 15-11-2004 à 18:02:51  profilanswer
 

Lam's a écrit :


Mais il vaut mieux débuter avec MySQL que prendre des sales habitudes avec Access (et ne pas avoir de Procédures stockées, triggers, etc. non ? )


 
moi je le trouve bien MySQL, suffit de pas s'en servir betement  [:spamafote]


---------------
IVG en france
n°899230
chrisbk
-
Posté le 15-11-2004 à 18:03:22  profilanswer
 

Lam's a écrit :

Tiens, j'ai pas répondu à ça.  
 
De cette manière, toutes tes variables sont en début de pile, et tu ne te fais pas chier à intercaler des push/pop pour ton code avec des push/pop pour tes données.  


 
bin la, pas trop d'accord, vu que j'ai le droit d'ecrire :
 

Code :
  1. int a = 20 + 12 + c * d;
  2. int b = roger(pomme, truite, carpe);


 
la difference entre ca et  
 

Code :
  1. int a;
  2. a = 20 + 12 + c*d;
  3. int b;
  4. b = roger(pomme, truite, carpe);


 
ne me saute pas trop aux yeux ?
(en plus bon, de ce que j'ai lu et de ce que j'ai fait, un compilo rajoute une chié de var temporaire a chaque expression. La != entre var temporaire et var de l'utilisateur n'existe pas, ou peu (genre pour le debug))
 
 
 
 


---------------
NP: HTTP Error 764 Stupid coder found
n°899231
schnapsman​n
Zaford Beeblefect
Posté le 15-11-2004 à 18:03:43  profilanswer
 

chrisbk a écrit :

disons alors
 
A(*p)();
 
soit tu declares un ptr sur fonction, soit tu appeles A() en dereferencant P et tu rapelles ce que A te renvoie.


 
ouais c'est vrai que déjà à cause de ça il faut faire un lookup dans la tables des fonctions déjà définies.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°899232
the real m​oins moins
Posté le 15-11-2004 à 18:03:49  profilanswer
 

une chiéE [:aloy]

n°899235
uriel
blood pt.2
Posté le 15-11-2004 à 18:06:53  profilanswer
 

skoi ce smiley tout moche qui merite a peine le nom 'smiley'


---------------
IVG en france
n°899236
schnapsman​n
Zaford Beeblefect
Posté le 15-11-2004 à 18:07:17  profilanswer
 

kadreg a écrit :

Là, tagueule (putain, trois semaines sur cette conneire ...)


 
raconte [:cupra]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°899237
Lam's
Profil: bas.
Posté le 15-11-2004 à 18:08:12  profilanswer
 

chrisbk a écrit :

bin la, pas trop d'accord, vu que j'ai le droit d'ecrire :
 

Code :
  1. int a = 20 + 12 + c * d;
  2. int b = roger(pomme, truite, carpe);




Et tu justifies d'ailleurs par là même l'existence de l'opérateur ternaire: tu as le droit d'appeller des fonctions, mais tu ne peux pas mettre de blocs ou de structure dans ta déclaration.  
Donc:

Code :
  1. int a=roger()?robert():ronald();


mais pas:

Code :
  1. int a=if(roger) while(ronald()) robert();


 
M'enfin, je suis très très loin d'être un spécialiste, je sais juste que c'est très dur, et qu'il y a plein de complications, c'est tout.  
Pour le reste, vous demandez à Kad ou Taz, ou vous allez sur usenet, sur fr.comp.lang.c++.  :)

n°899238
masklinn
í dag viðrar vel til loftárása
Posté le 15-11-2004 à 18:08:15  profilanswer
 


oui mais la non, ton message sert à rien et ton smiley est ultramoche (genre pire que le mien)
 [:lorilll] [:nero27] [:lorilll] [:nero27] [:lorilll]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°899239
Terminapor
I'll see you rise.
Posté le 15-11-2004 à 18:09:23  profilanswer
 

uriel a écrit :

skoi ce smiley tout moche qui merite a peine le nom 'smiley'


C'est le mien [:petrus75]

n°899240
the real m​oins moins
Posté le 15-11-2004 à 18:10:50  profilanswer
 

KQMOUASLLOOOSKKK §§ç@#!!&!

n°899241
chrisbk
-
Posté le 15-11-2004 à 18:11:51  profilanswer
 

Lam's a écrit :

Et tu justifies d'ailleurs par là même l'existence de l'opérateur ternaire: tu as le droit d'appeller des fonctions, mais tu ne peux pas mettre de blocs ou de structure dans ta déclaration.  
Donc:


 
d'accord mais ca repond pas a ma question [:joce]


---------------
NP: HTTP Error 764 Stupid coder found
n°899242
masklinn
í dag viðrar vel til loftárása
Posté le 15-11-2004 à 18:12:25  profilanswer
 

the real moins moins a écrit :

KQMOUASLLOOOSKKK §§ç@#!!&!


 [:calin]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°899244
uriel
blood pt.2
Posté le 15-11-2004 à 18:13:16  profilanswer
 

terminapor a écrit :

C'est le mien [:petrus75]


 
sale fourbe, tu as efface ton post :O


---------------
IVG en france
n°899248
masklinn
í dag viðrar vel til loftárása
Posté le 15-11-2004 à 18:19:51  profilanswer
 

uriel a écrit :

sale fourbe, tu as efface ton post :O


j'lai quoté [:necris]  
 
le drap nettoyé, les traces restent quand même [:youpi]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°899249
Lam's
Profil: bas.
Posté le 15-11-2004 à 18:20:46  profilanswer
 

chrisbk a écrit :

d'accord mais ca repond pas a ma question [:joce]


Bah oui, je sais, et c'est pas pour rien que le C++ rajoute ça. Moi je te donnes juste des raisons historiques. Au niveau du parser, si tu peux avoir la garantie qu'il n'y a pas de déclaration de variable dans un bloc complexe (ainsi que la réciproque), alors tu t'enlève une jolie épine du pied.  
 
D'autre part, ça te permet de connaître efficacement la position de chaque variable par rapport au début du cadre de pile (en ASM: push ESP dans l'appellant, POP EBP dans l'appellé, ou un truc dans le genre). Tu sais que la variable a sera toujours à EBP+4, et b sera toujours à EBP+6, indépendemment des calculs en cours, de l'appel de fonctions ou autres. Alors que en déclarant au milieu de ton code, tu n'as pas la garantie que tu n'as pas déjà empilé une dizaine de registres pour faire un calcul compliqué. Ca t'oblige alors à reserver de l'espace pour la future variable.

n°899252
Terminapor
I'll see you rise.
Posté le 15-11-2004 à 18:29:36  profilanswer
 

uriel a écrit :

sale fourbe, tu as efface ton post :O


 :lol:  
:D

n°899254
the real m​oins moins
Posté le 15-11-2004 à 18:32:19  profilanswer
 

au s'cours, quoi.

n°899262
Terminapor
I'll see you rise.
Posté le 15-11-2004 à 18:39:14  profilanswer
 
n°899265
uriel
blood pt.2
Posté le 15-11-2004 à 18:43:00  profilanswer
 

Citation :


You want to go where you never went before
you want me to bring you to something new
my smile is all i have to offer you
maybe i'm just dumb...
 
I think i have a problem with myself
i'm sure you'll be fine with someone else
a beer is all i have to offer you
am i drinking too much?
 
Don't have anything ot do... with you
you won't have good things to do with you
we fell to that art to be affraid with you
do you want to sun?


 
[:necris]


---------------
IVG en france
n°899269
urd-sama
waste of space
Posté le 15-11-2004 à 18:49:19  profilanswer
 

Citation :


Love is a catastrophe
Look what it's done to me
Brought me down here so low
stranded, nowhere to go
 
No concentration
just rerunning conversation
Trying to understand
how I fell into this quicksand
 
What happens next?
With life I'm unimpressed
Pain like a cutter's knife
Never been lonelier in my life
 
Who issued the instruction
for this mad act of destruction?
An end to equilibrium
Fate laughs:
Look what we've done to him!
 
High wind through the trees
Falling November leaves
A weak sun hanging low
Summer seems so long ago
 
All my former dreams
tender romantic schemes
revealed as so naive
To think I could believe
 
In love as the kindest law
not as a declaration of war
on my life and sanity
Now I know at last for me
love is a catastrophe


[:mad_overclocker]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  5651  5652  5653  ..  26991  26992  26993  26994  26995  26996

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)