#151 Le 03/03/2011, à 00:42
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
Et bonne chance pour demain !
Merci.
Maitre du C vous pensez quoi de ce bouquin
http://framabook.org/c20h.html
Après un rapide survol, je dirais qu'il y a des trucs plutôt sympa qu'on ne retrouve pas dans beaucoup de bouquins/tutos comme l'utilisation de puts pour une simple chaîne, conseil de remettre le pointeur à NULL après une libération, utilisation d'un debugger. Pas mal de pratique, c'est aussi un bon point. Sinon ça semble pas trop mal expliqué
Par contre, gros carton rouge sur le
int main()
tout le long du livre
Il faut mettre void quand il n'y a pas d'arguments dans un prototype en C, c'est en C++ que l'on peut mettre une liste vide (encore un article que je dois écrire d'ailleurs).
Donc à part cette grosse erreur (très répandu d'ailleurs), le livre me semble plutôt bon (2-3 trucs discutables par endroit, mais pas faux non plus.) J'ai juste fait un rapide survol donc je ne garantit rien mais il me donne une bonne première impression (si on fait abstraction du prototype de main bien sûr).
Ah, oui, je vois : c'est une macro. Ça explique le unsigned long qui se balade tout seul en temps qu'argument…
Et nous avons un gagnant \o/.
Quand je dis qu'il n'y a pas de miracle , mais félicitations quand même : tu as vite compris.
aujourd'hui, quelques articles m'ont donnés envie de me mettre au lisp
Où est le mal ?
C'est très bien les langages fonctionnels.
Bon moi le Lisp j'ai pas accroché (typage dynamique + abus de parenthèses), mais c'est un très bon langage.
[troll]Tu pourras quitter Vim pour Emacs après [/troll]
Raaah, qu'est ce que je fiche là !
Hors ligne
#152 Le 03/03/2011, à 00:48
- tshirtman
Re : /* Topic des codeurs couche-tard [4] */
C'est ce qui m'embète oui (enfin, entre autres), un bon moyen de me mettre au lisp serait de passer à emacs
aussi, ça semble puissant, mais j'ai vraiment peur de prendre gout à un truc aussi ésotérique…
enfin… comme on dit "tout programme complexe en C ou fortran, contient une large portion d'une implémentation lente et buggée de lisp"
Hors ligne
#153 Le 03/03/2011, à 01:16
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
Ouais, c'est vrai que faire du Lisp sous Emacs c'est le pied (on faisait nos TP de Scheme sous Emacs on avait, entre autre, l'interpréteur intégré dans Emacs). Pour avoir tenté sous Vim, c'était un peu moins Lisp-friendly (mais j'ai pas cherché longtemps non plus).
Et puis le fait qu'Emacs se configure en Lisp le rend bien plus configurable que Vim, c'est un fait (que je reconnait, tout vimiste que je suis).
Et puis la communauté Lisp, c'est quelque chose aussi. Il y a pas mal de hackers qui en font partie, le niveau moyen là-bas est très bon du coup on apprend vite beaucoup de choses intéressante.
Si tu accroches au langage, je pense qu'il serait dommage de s'en priver à cause de son « ésoterisme ». D'ailleurs je ne le trouve pas plus ésotérique que ça : c'est juste une approche de la programmation moins commune, mais pas moins puissante (loin de là). Son aspect ésotérique vient du fait que l'on est pas habitué à aborder les problème sous l'angle fonctionnel.
Hors ligne
#154 Le 03/03/2011, à 01:22
- Pylades
Re : /* Topic des codeurs couche-tard [4] */
(Enfin, Vim est quand même hautement configurable, avec des centaines (milliers ?) d'options ; même si la configuration par défaut est très bien.)
Dernière modification par Pylade (Le 03/03/2011, à 01:23)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#155 Le 03/03/2011, à 01:29
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
Oui bien sûr, je ne dis pas le contraire.
Mais Emacs c'est un autre niveau quoi, il y a un « vrai » langage derrière, totalement intégré au logiciel.
Dans Vim tu peux aussi scripter en Perl et Python, entre autre, mais pas de base (et je ne sais pas jusqu'a quel point c'est intégré). Et le langage de base pour la config', même s'il est très puissant pour un langage de config', ne supporte pas la comparaison avec un truc de la trempe du Lisp.
Dernière modification par grim7reaper (Le 03/03/2011, à 01:30)
Hors ligne
#156 Le 03/03/2011, à 01:36
- Pylades
Re : /* Topic des codeurs couche-tard [4] */
Oui, je suis d'accord ; mais c'était juste pour contrebalancer le peu de cas qui était fait de Vim dans ton message précédant : je n'aime pas que ce merveilleux logiciel — quand je me demande quel est le meilleur logiciel au monde, c'est toujours le seul qui me vient à l'esprit ; même si toute comparaison est stupide — ne reçoive pas toutes les éloges qu'il devrait.
Dernière modification par Pylade (Le 03/03/2011, à 01:37)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#157 Le 03/03/2011, à 01:50
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
Ouais, c'est vrai qu'il reste un excellent éditeur bien au dessus de la moyenne.
Ptain, je viens de relire ma fonction générique et je l'ai encore optimisé (après consultation du draft pour être sûr de pas faire une connerie) : maintenant elle ne prend plus qu'un seul paramètre (plus besoin de filer le type).
Si j'avais réfléchi avant de poster, je t'aurais mis ça
generic_next_highest_power_of_2(777);
generic_next_highest_power_of_2(131030U);
generic_next_highest_power_of_2(4398046511062UL);
et là tu aurais eu plus de mal à trouver que c'était une macro
Ça m'apprendra a poster trop vite >_<"
Le seul inconvénient c'est que gcc me lance 2 warnings avec ma ligne de compil', mais dans le cas présent il n'y a aucun risque (mais ça il ne peut pas le deviner)
Dernière modification par grim7reaper (Le 03/03/2011, à 02:01)
Hors ligne
#158 Le 03/03/2011, à 01:58
- Rolinh
Re : /* Topic des codeurs couche-tard [4] */
Par contre, gros carton rouge sur le
int main()
tout le long du livre
A tous les coups, l'auteur a commencé par le C++... J'ai déjà rencontré ça plus d'une fois (dans le code de Zathura notamment) mais dans un livre comme ça, ça ne le fait pas...
Mais je vais y jeter un œil aussi tiens
@grim: qu'est-ce que tu fais encore là? Allez, hop, dodo pour être en forme pour l'exa!
Hors ligne
#159 Le 03/03/2011, à 02:01
- nesthib
Re : /* Topic des codeurs couche-tard [4] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#160 Le 03/03/2011, à 02:04
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
@Rolinh : Bah ça va, l'exam est de 17h30 à 19h30 et j'ai que ça dans la journée (du moins officiellement, car il faut aussi que je bosse sur mon compilateur avant les vacances). Du coup je peux reviser tard et bien dormir quand même
Et puis j'ai révisé là, il me reste juste l'oral à préparer…
Hors ligne
#161 Le 03/03/2011, à 02:09
- Rolinh
Re : /* Topic des codeurs couche-tard [4] */
@grim: Rhô, petit joueur va. Je pensais qu'il était au moins à 8h
Compilateur quoi?
Hors ligne
#162 Le 03/03/2011, à 02:28
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
@grim: Rhô, petit joueur va. Je pensais qu'il était au moins à 8h
Compilateur quoi?
Langage maison (c'est bien pour ça que j'écris un compilateur d'ailleurs ^^).
C'est un langage de description comportemental multiplateforme pour différents robots (d'où le multiplateforme).
Je compile mon langage en C qui est ensuite compilé par le compilo de la plateforme (en général, compilo proprio bien sûr…).
Au début j'étais super motivé et j'avais prévu beaucoup de choses, mais la réalité m'a vite rattrapée : 80% du temps du projet passé sur des putains de problèmes techniques souvent dû au vieux matos : problème de compatibilité (genre le vieux compilo sur disquette seulement compatible avec DOS ou Win95), matos qui lâche (pour certains les boîtes ont coulé depuis le temps, donc le support on oublie…), documentation parfois à pleurer ou autres joyeusetés…
Du coup, j'ai dû revoir mes ambitions à la baisse vu le temps qu'il me reste pour boucler le truc (genre j'aurais eu 2 mois pour faire un projet où j'en avait presque 6 à la base…).
Un exemple de programme que je compile
Comportement
Var obstacle;
Var foo = 42;
Var bar = -1 * foo;
obstacle = sensor(infrared);
If(obstacle == True)
Then
{ On recule
- et on tourne. }
bar = bar + 1;
move(-5, 2);
turn(30);
Else
{ On continue d'avancer. }
foo = bar / -2 * (42 + 77);
move(5, -1);
EndIf
EndComportement;
J'ai fait un parseur par analyse descendant récursive, du coup il a fallu que je fasse gaffe à ce que ma grammaire soit LL(1) (donc suppression des ambiguïtés et des récursivités à gauche).
Dernière modification par grim7reaper (Le 03/03/2011, à 02:29)
Hors ligne
#163 Le 03/03/2011, à 02:42
- Rolinh
Re : /* Topic des codeurs couche-tard [4] */
GG. T'as du courage. Écrire un compilo veut dire s'amuser avec la sémantique et ça... très peu pour moi (du moins dans sa forme la plus formelle).
Hors ligne
#164 Le 03/03/2011, à 02:46
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
C'est cool la théorie des langages (c'est avec ça qu'on écrit les moteurs de regexp et les compilateurs ).
Bon c'est vrai que la partie théorique est moins drôle, mais ça reste très intéressant.
Et puis comme j'ai dit, là je fait un truc pas trop complexe vu le temps qu'il me reste (pas d'optimisation du code généré, pas de récupération sur erreur, etc).
Mais c'est vrai qu'il y a quand même de quoi occuper
Dernière modification par grim7reaper (Le 03/03/2011, à 03:04)
Hors ligne
#165 Le 03/03/2011, à 03:01
- Pylades
Re : /* Topic des codeurs couche-tard [4] */
Ah ouais, pas mal. Tu t'en sors beaucoup mieux que les autres ; t'as souvent des projets intéressants, je trouve.
Bon, de mon côté il faudrait que je termine Libstropt, il ne reste plus beaucoup de boulot, là. Demain, je vais essayer de finir l'interface.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#166 Le 03/03/2011, à 03:08
- Rolinh
Re : /* Topic des codeurs couche-tard [4] */
Oh, je pense que c'est intéressant, c'est juste que j'ai été traumatisé par un cours de sémantique purement théorique et abstrait...
Faudrait aussi que je commence mon projet de semestre...
Hors ligne
#167 Le 03/03/2011, à 03:14
- nesthib
Re : /* Topic des codeurs couche-tard [4] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#168 Le 03/03/2011, à 03:31
- samυncle
Re : /* Topic des codeurs couche-tard [4] */
.
Hello world
Hors ligne
#169 Le 03/03/2011, à 07:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [4] */
Scores totaux, depuis le début :
1) 2700 nesthib
2) 2549 samuncle
3) 2156 Pylade
4) 1744 Кຼزດ
5) 1450+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
6) 1307 cm-t
7) 926 :mad: ✰ :бешеный: ✰ :mad:
8) 837 helly
9) 802 \\Ouranos//
10) 659 gnuuat
11) 542 Lagierl
12) 442 tshirtman
13) 263 Rolinh
14) 233 The Uploader
15) 220 Kanor
16) 196 Askelon
17) 172 nathéo
18) 121 ǤƦƯƝƬ
19) 93 petifrancais
20) 82 kamui57
21) 81 :!pakman
22) 78 edge_one
22) 78 pierguiard
24) 70 gulp
25) 39 Le Rouge
26) 37 ilagas
27) 30 keny
28) 28 xapantu
29) 26 gustare
29) 26 d10g3n
31) 25 GentooUser
31) 25 Morgiver
33) 24 ไ୦บเઢ'
33) 24 Steap
35) 20 CROWD
36) 18 Ph3nix_
37) 15 timsy
38) 14 kouskous
39) 12 stratoboy
39) 12 sailing
39) 12 sakul
42) 11 alexises
42) 11 Crocoii
44) 10 Toineo
44) 10 NutMotion
44) 10 pseudovingtcinqcaracteres
44) 10 pfriedZ
44) 10 CasseTaTele
44) 10 Zeibux
50) 8 Mornagest
51) 7 Vista
52) 6 ubuntlin
52) 6 asma.geek
54) 5 tendances-tdct
54) 5 kinouchou
56) 4 danychou56
56) 4 Neros
56) 4 Biaise
56) 4 totoflute
56) 4 pinballyoda ㋛
56) 4 NLS le pingouin
62) 3 Revan26914
63) 2 SoJaS
63) 2 ceric
65) 1 geenux
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#170 Le 03/03/2011, à 07:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [4] */
Scores de la période en cours :
1) 20 Pylade
2) 16 nesthib
2) 16 samuncle
4) 15 Rolinh
5) 13 grim7reaper
6) 8 Кຼزດ
7) 5 cm-t
7) 5 tshirtman
9) 4 The Uploader
10) 3 Kanor
11) 2 :mad: ✰ :бешеный: ✰ :mad:
12) 1 helly
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#171 Le 03/03/2011, à 12:40
- Kanor
Re : /* Topic des codeurs couche-tard [4] */
merci grim7reaper pour ton point de vue
j'ai piqué ta ligne gcc
gcc -ansi -pedantic -Wall
et j'ai pas d'erreur avec le void manquant c'est normal ?
Hors ligne
#172 Le 03/03/2011, à 12:40
- grim7reaper
Re : /* Topic des codeurs couche-tard [4] */
Hello World!
Ah ouais, pas mal. Tu t'en sors beaucoup mieux que les autres ; t'as souvent des projets intéressants, je trouve.
L'an dernier je m'en étais bien tiré c'est vrai, il y avait des sujets moyennements sympa et j'ai réussi à avoir un truc plutôt cool. Par contre cette année ça va, quasiment tous les sujets pour les projets étaient cool : développement de driver USB, quadrocopter (projet qui se poursuit d'année en année, cette année ils bossent sur la stabilisation en vol), etc.
Après, en système embarqué, on a mit un serveur Boa sur une carte (où l'on a installé un Linux) pour contrôler un capteur de température (relié par le port série) via une interface web.
Et en design électronique, on fait un tracker GPS => code + circuit. Bon pour le circuit,on ne va pas le faire en vrai on va juste faire le typon (ça reviendrait un peu cher sinon ^^).
Bon, de mon côté il faudrait que je termine Libstropt, il ne reste plus beaucoup de boulot, là. Demain, je vais essayer de finir l'interface.
Bientôt une release ?
Oh, je pense que c'est intéressant, c'est juste que j'ai été traumatisé par un cours de sémantique purement théorique et abstrait...
Ouais trop de théorie tue la théorie (surtout si c'est trop abstrait , je comprends que ça puisse dégoûter)
Faudrait aussi que je commence mon projet de semestre...
C'est quoi le sujet ?
merci grim7reaper pour ton point de vue
j'ai piqué ta ligne gcc
gcc -ansi -pedantic -Wall
et j'ai pas d'erreur avec le void manquant c'est normal ?
Ma vraie ligne est un peu plus violente ^^, mais celle-ci est très bien pour commencer.
C'est normal que tu n'aies pas de warning, il apparaît avec l'option -Wstrict-prototypes.
En fait, la liste d'arguments vide n'est pas une erreur en C. C'est juste que ça n'a pas la signification que l'on pourrait attendre.
Ça ne veux pas dire « cette fonction ne prend pas d'arguments » (comme en C++), mais « cette fonction prend un nombre indéterminé d'arguments de type indéterminés ».
Voilà le genre de code que ça peut donner
void foo()
{
/* Do something. */
}
int main(void)
{
short bar[42];
foo(42, 'a', "foo", NULL, 42.0, bar);
return 0;
}
Ce code compile sans souci avec
gcc -Wall -pedantic -Wextra -ansi
Avec un void, tu auras bien une erreur à la compilation.
J'ai prévu de faire un article là-dessus (vu que ça fait partie des erreurs couramment rencontrées).
Dernière modification par grim7reaper (Le 03/03/2011, à 12:54)
Hors ligne
#173 Le 03/03/2011, à 15:32
- tshirtman
Re : /* Topic des codeurs couche-tard [4] */
Chapter 16 shows how to use macro-defining macros to make Lisp write your programs for you.
^^
Hors ligne
#174 Le 03/03/2011, à 16:07
- Rolinh
Re : /* Topic des codeurs couche-tard [4] */
C'est quoi le sujet?
Il n'est pas encore définit dans les détails mais en gros:
construction du noyau, avec le choix des modules, dynamiques ou non
Noyau Linux s'entend
Après il faut que je vois avec le prof ce qu'il attend exactement mais je crois que je vais notamment passer du temps à compiler et recompiler le kernel avec différentes options (-> vive ABS )
Bon, c'est un petit projet qui est censé être un projet de recherche au sens bibliographique du terme.
Les vrai projets sont ceux du bachelor, master et évidemment doctorat.
Hors ligne
#175 Le 03/03/2011, à 16:09
- tshirtman
Re : /* Topic des codeurs couche-tard [4] */
vachement passionnant…
lire des tonnes de docs pour savoir si on doit cliquer "oui" ou "non" (ou peut-être) >_<
Hors ligne