#626 Le 07/10/2011, à 14:14
- The Uploader
Re : /* Topic des codeurs [6] */
o/
%{
#include <stdio.h>
%}
ligne : ligne affectation '\n'
|
;
affectation : VARIABLE '=' expr
expr : expr '-' produit
| expr '+' produit
| produit
;
produit : produit '*' terme
| produit '/' terme
| terme
;
terme : '(' expr ')'
| VARIABLE
;
calcul : y.tab.o lex.yy.o
gcc y.tab.o lex.yy.o -o calcul -ll -ly
lex.yy.o : lex.yy.c y.tab.h
gcc -c lex.yy.c
lex.yy.c : calcul.l
flex calcul.l
y.tab.o : y.tab.c
gcc -c y.tab.c
y.tab.c : calcul.y
bison calcul.y -o y.tab.c
y.tab.h : $(OUT).y
$(YACC) $(OUT).y -d -o y.tab.h
clean:
rm -f y.tab.* lex.yy.*
%token VARIABLE NUMBER
edit: HDP de ouf!
Dernière modification par The Uploader (Le 07/10/2011, à 14:14)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#627 Le 07/10/2011, à 14:21
- grim7reaper
Re : /* Topic des codeurs [6] */
Je me suis dis « WTF, c’est quoi ce truc », puis « Tiens, on dirait du lex ». Après j’ai scrollé et j’ai vu que j’avais raison ^^
T’as des cours de compil’ ?
Moi l’an dernier j’ai fait analyse lexicale et syntaxique, et cette année je fais l’analyse sémantique (là on en est à la vérification du typage lors de l’analyse statique, c’est intéressant mais niveau théorique j’ai connu plus fun ^^') et génération de code.
Édit : tiens, un exemple de truc qu’on pouvait interpréter avec notre bousin en flex/yacc de l’an dernier
i := 5;
read(j);
write(i);
write(j);
i := i + j;
write(i);
i := let x := i + j in
let x := x + 1 in 2 * x tel
+ x
tel;
write(i);
Perso, flex/yacc c’est bien mignon mais pour de vrai truc vaut mieux le faire à la main. C’est plus souple et plus maintenable, enfin ça dépend de ta grammaire en fait (mais quand tu sors du langage jouet c’est apparemment le cas).
Dernière modification par grim7reaper (Le 07/10/2011, à 14:25)
Hors ligne
#628 Le 07/10/2011, à 14:22
- The Uploader
Re : /* Topic des codeurs [6] */
Ouais j'suis en compil', mais je sais pas du tout si ce que j'ai recopié du prof est bon..
(on fait une calculatrice)
- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10
Hors ligne
#629 Le 07/10/2011, à 14:27
- Elzen
Re : /* Topic des codeurs [6] */
On fait toujours une calculatrice ^^
On pourrait me sortir que flex et yacc ne servent qu'à ça que ça ne m'étonnerait pas outre mesure ^^
Tiens, d'ailleurs, il faudrait que j'remette la main sur la mienne, surtout que j'en ai pas encore trouvé qui m'aille dans les dépôts… j'hésite entre reprendre le code C/flex/yacc/gtk+ que j'avais fait l'an dernier pour le rendre plus utilisable, ou recommencer un truc en PyGTK, ce qui serait plus simple au niveau graphique (le GTK en C, c'est moins fun, quand même) mais plus complexe pour le parsage (flex/yacc, ça simplifie quand même pas mal la vie).
Dans le second cas, j'pourrais l'intégrer à Touhy, vu que j'commence à mettre plein de logiciels bizarres dedans…
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#630 Le 07/10/2011, à 14:31
- helly
Re : /* Topic des codeurs [6] */
Bon, j’vais jouer avec procmail.
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#631 Le 07/10/2011, à 14:34
- Rolinh
Re : /* Topic des codeurs [6] */
@grim: comme toi, je m'étais concentré sur les open avant...
Sinon, j'ai aussi un cours de compilateurs et interprètes cette année. Le prof a écrit un langage de programmation (~50'000 lignes de code) pour lequel on va devoir chacun écrire un compilateur, un interpréteur et ajouter deux extensions au langage (les listes et autre chose de notre choix). Je sens que ça va être intéressant.
Hors ligne
#632 Le 07/10/2011, à 14:39
- grim7reaper
Re : /* Topic des codeurs [6] */
(flex/yacc, ça simplifie quand même pas mal la vie)
Ça, ça dépend vraiment de ta grammaire. Y’a des cas ou c’est plus chiant à faire en flex/yacc qu’a la main. Et puis y’a même des cas cas où flex/yacc bah ça fonctionne pas. Typiquement flex/yacc ne sait faire que du LL, enfin qu’une sous classe de LL => LL(1). Donc si ta grammaire est pas LL(1), soit tu passes par un autre outil (ANTLR) soit tu codes à la main (ce qui n’est pas insurmontable et pas forcément plus difficile (mais plus long oui)).
Bon, j’vais jouer avec procmail.
Tu veux faire quoi ?
Normalement c’est pas bien sorcier procmail.
Sinon, j'ai aussi un cours de compilateurs et interprètes cette année. Le prof a écrit un langage de programmation (~50'000 lignes de code) pour lequel on va devoir chacun écrire un compilateur, un interpréteur et ajouter deux extensions au langage (les listes et autre chose de notre choix). Je sens que ça va être intéressant.
Ouais ça peut être intéressant en effet. Vous allez partir d’un truc déjà existant (je suppose que le prof à déjà un bout de code pour analyser son langage) et/ou utiliser des outils (comme flex/yacc par exemple) ou tout faire from scratch à la mano ?
Dans le second cas c’est un sacré boulot donc ça m’étonnerait ^^
Édit : allez, encore une utilisation plus que douteuse du droit d’auteur pour faire chier le monde…
Risque d’y avoir des répercussions assez visible vu qu’il semblerait que Linux, Java, PHP, … se base là-dessus.
Dernière modification par grim7reaper (Le 07/10/2011, à 15:11)
Hors ligne
#633 Le 07/10/2011, à 16:05
- helly
Re : /* Topic des codeurs [6] */
Tu veux faire quoi ?
Normalement c’est pas bien sorcier procmail.
Trier mes mails :3.
Nan, c’est juste qu’à l’époque je l’avais fait assez salement et sans regex.
C’est (un peu) plus jôli maintenant.
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#634 Le 07/10/2011, à 16:53
- grim7reaper
Re : /* Topic des codeurs [6] */
Y’a pas un petit problème avec l’image de ta page d’erreur ?
Elle semble tassée, ça fait moche.
Hors ligne
#635 Le 07/10/2011, à 17:10
- HP
Re : /* Topic des codeurs [6] */
Accessoirement : http://validator.w3.org/check?uri=http% … ;verbose=1
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#636 Le 07/10/2011, à 17:45
- helly
Re : /* Topic des codeurs [6] */
@grim : oui j’ai juste changé l’image à la rache.
@HP : c’est une page par défaut du nas, du terrible php. J’touche pas à ça (et c’n’est pas d’ma faute )
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#637 Le 07/10/2011, à 17:50
- helly
Re : /* Topic des codeurs [6] */
Vala, déjà pour l’image c’est corrigé .
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#638 Le 07/10/2011, à 19:33
- helly
Re : /* Topic des codeurs [6] */
Dites les compilateurs de kernels, j’avais jamais remarqué, mais à côté des sources de kernel, y’a genre patch-3.0.6, je parie que c’est un patch qui permet de passer de 3.0.5 à 3.0.6, mais pour ça, y’a besoin de quoi ? Des sources de 3.0.5 ?
Et comment ça se passe pour passer de .5 à .6 ? QUelqu’un connaît la commande pour patcher ?
Si ça pouvait m’éviter de recompiler le kernel à chaque fois…
Mais en même temps, j’aime voir les lignes de code qui défillent, make qui fait son boulot, la CPU qui sature, le ventilo qui ronronne…
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#639 Le 07/10/2011, à 20:56
- :!pakman
Re : /* Topic des codeurs [6] */
Mais en même temps, j’aime voir les lignes de code qui défillent, make qui fait son boulot, la CPU qui sature, le ventilo qui ronronne…
C'est beau, l'informatique ! *yeux humides*
...
Hors ligne
#640 Le 07/10/2011, à 21:01
- tshirtman
Re : /* Topic des codeurs [6] */
si ton patch est sur les sources, tu devras recompiler de toutes façons, bon, par contre, il est possible que tu n'ai pas besoin de *tout* recompiler..
l'utilisation de patch est simple
patch -p0 < ficher.patch
-p0 est optionnel, et ça peut être autre chose que 0, une histoire de chemin, le man t'expliquera mieux que moi, j'ai mal à la tête...
Hors ligne
#641 Le 08/10/2011, à 18:56
- HP
Re : /* Topic des codeurs [6] */
Je me suis refait le lorem en Python) visible là : http://lorem.googlecode.com/files/lorem
J'avais des soucis avec l'encodage… en plus c'était difficilement maintenable, donc, je l'ai pratiquement complètement réécrit ; sortie de l'aide :
Usage: lorem [options]
Options:
-h, --help show this help message and exit
-n N generate N words
-l L generate L lines
-c C generate C chars
-s S generate S random sentences
-q Q choose quote by index Q (0-13)
Quotes:
0 Lorem Ipsum
1 Childe Harold's Pilgrimage
2 Decameron - Novella Prima
3 Faust. Der Tragödie erster Teil
4 In der Fremde
5 Le Bateau Ivre
6 Le Masque
7 Nagyon fáj
8 Ómagyar-Mária siralom
9 Robinsono Kruso
10 The Raven
11 Tierra y Luna
12 Hemsöborna
13 Emacs Spook + slight modifications
Faudrait que je rajoute la langue de chaque quote, mais je ne suis pas capable de toutes les identifier . Et, je suis assez satisfait de la fonction de génération de phrases aléatoires :
# time lorem -q 13 -s 10000 > /dev/null
real 0m1.299s
user 0m1.288s
sys 0m0.008s
moins de 2 secondes pour générer 10000 phrases de 2 à 30 mots, en Python 2. Et en Python 3, c'est encore mieux :
# time python3 $(which lorem) -q 13 -s 10000 > /dev/null
real 0m0.673s
user 0m0.632s
sys 0m0.032s
Bon, en plus, c'est pas comme si c'était pas un truc dont j'ai souvent besoin… à plus forte raison si ça peut sortir des caractères spéciaux dans des langues « exotiques ».
Dernière modification par HP (Le 08/10/2011, à 18:58)
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#642 Le 08/10/2011, à 20:00
- tshirtman
Re : /* Topic des codeurs [6] */
tiens je me suis enfin décider à utiliser des quicklists pour mes différents projets avec unity.
gabriel@knave:~$ cat launchers/dev.desktop
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=Terminal
Exec=gnome-terminal --disable-factory --sm-client-disable --class=Dev
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/usr/share/icons/hicolor/scalable/apps/ibus-setup.svg
StartupNotify=true
StartupWMClass=Dev
X-Ayatana-Desktop-Shortcuts=Usf;BPMN;
Name[fr_FR]=Dev Terminal
[Usf Shortcut Group]
Name=dev usf
Exec=gnome-terminal --working-directory=ultimate-smash-friends/ --disable-factory --sm-client-disable --class=Dev -x vim -S
TargetEnvironment=Unity
StartupWMClass=Dev
[BPMN Shortcut Group]
Name=dev bpmn
Exec=gnome-terminal --working-directory=bpmn/ --disable-factory --sm-client-disable --class=Dev -x vim -S
TargetEnvironment=Unity
StartupWMClass=Dev
Hors ligne
#643 Le 08/10/2011, à 20:11
- helly
Re : /* Topic des codeurs [6] */
Bon, assez glandouillé, demain j’me r’attaque à la trad du tuto haskell.
Si ça vous interesse, j’ai rendu le wiki un peu plus convival, on voit direct le résultat en html, par exemple :
http://coptere.dyndns.org/wiki/doku.php/haskell_index
Et mon wiki n’est pas spécialement lent .
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#644 Le 08/10/2011, à 22:45
- HP
Hors ligne
#645 Le 08/10/2011, à 22:51
- helly
Re : /* Topic des codeurs [6] */
ACHHHHHHHHHHHHHHHHTUNG !
…
Quelle belle langue ^^’
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#646 Le 08/10/2011, à 22:57
- HP
Re : /* Topic des codeurs [6] */
C'est encore plus joli quand les mots sont dans le désordre !
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#647 Le 08/10/2011, à 23:04
- helly
Re : /* Topic des codeurs [6] */
Je me répète sur un autre topic mais :
Avis aux pythonneux :
Vous connaîtriez un bon bouquin sur le python 3 avec exercices ?
J’ai introduction à Python 3 de Robert Cordeau, mais sans exercices, j’ai beaucoup de mal à réussir à trouver par quel bout appréhender la bête…
J’ai beaucoup de mal à apprendre en autodidacte un langage s’il n’y a pas quelques exos.
(un peu plus poussés qu’un compteur de mot ou un jeu du « plus ou moins » )
Dernière modification par helly (Le 08/10/2011, à 23:05)
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#648 Le 08/10/2011, à 23:14
- HP
Re : /* Topic des codeurs [6] */
Vous connaîtriez un bon bouquin sur le python […]
Avec, ou sans, exercices, je n'en connais pas…
Perso, j'ai appris Python en modifiant des programmes (j'ai commencé en 2008 avec Gmail Notifier) et en écrivant des scripts… j'ai fait pareil pour Bash/Sh, les Makefile, et aujourd'hui j'essaie de me mettre à Ruby.
cat /dev/urandom >/dev/null 2>&1 #github
Hors ligne
#649 Le 09/10/2011, à 12:10
- helly
Re : /* Topic des codeurs [6] */
Oui, c’est aussi comme ça que j’ai appris le bash : en bidouillant des scripts, mais y’a rien à faire : le python, naturellement, j’y arrive vraiment pas.
Y’a un truc (j’sais pas quoi) qui me bloque dans ce langage.
Pourtant j’met plein de bonne volonté pour essayer d’apprendre…
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne
#650 Le 09/10/2011, à 15:10
- helly
Re : /* Topic des codeurs [6] */
Hé bhé c’est mort ici…
Bon plop les gens, j’ai une ’tite question bash !
En fait, je cherche à faire une fonction pour créer une tâche dans un screen.
Voilà ce que j’ai fait
creer_screen() #$1 nom, $2… tâche
{
screen -fn -dmS $1 $2 $3 $4
}
$1 contient le nom de la tâche screen, mais comment faire proprement la suite ?
Là j’ai mis $2 $3 $4 pour être à peut près sûr que cette fonction va marcher avec les usages dont j’ai besoin, mais ça ne marchera pas par exemple si je veux faire
creer_screen L ls -al a b c d e
’fin vous comprendez le problème ?
Y’a une façon pour faire en sorte que dans ma fonction, $1 soit utilisé comme il est, que que tous les autres arguments soient mis à droite ?
C’est pas clair ?
Bon en gros, comment faire pour que cette fonction marche quel que soit le nombre d’arguments de la tâche que je veux mettre dans un screen ?
Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.
Hors ligne