Richard Stallman annonce le manuel de référence du langage GNU C
Le 2022-09-08 14:57:33, par Sandra Coret, Communiqués de presse
Voici le message d'annonce de Richard Stallman :
Voici des versions directement consultables : Manuel d'introduction et de référence du langage GNU C ( pdf ) , Dépot Github Markdown et PDF.
Source : Richard Stallman
Et vous ?
Qu'en pensez-vous ?
Lire aussi en Français :
Cours et tutoriels C
La FAQ C
Le forum d'entraide C
Source : Richard Stallman
Et vous ?
Lire aussi en Français :
-
Sve@rExpert éminent séniorBonjour
Premier exemple: fonction Fibonacci écrite sous sa forme récursive. Voilà, tu veux apprendre le C, hé bien mange !!!
Après ok l'exemple est expliqué en détail et la mayonnaise peut prendre. Donc bon ben un tuto de plus, écrit peut-être de façon peu orthodoxe mais ça reste un tuto donc ça ne peut pas faire de mal et peut-être en complément d'un cours plus classique ça peut faire une bonne combinaison...le 09/09/2022 à 13:16 -
GuessetExpert confirméBonjour Sve,
Je ne suis pas sûr que d'utiliser une forme récursive qui génère une séquence profonde et linéaire d'appels (comme n!) soit l'emploi du siècle. Une simple boucle fera largement mieux le boulot. Et ce qui est pire ici est d'utiliser une forme arborescente qui doit générer de l'ordre de 2n-2 appels. En travaillant avec la mémoire du fn-1 on relinéarise la chaîne d'appels soit de l'ordre de n (et une occupation en 2*n). Proposition de code non testé :
Code C : 1
2
3
4
5
6int fib (int n, int *f1) { if (n <= 2) return 1; int * f2; *f1 = fib(n-1, f2) return *f1 + *f2; }
Code C : 1
2
3
4
5
6
7
8int fib(int n) { int u = 1, v = 1 for(;n > 2; --n) { u += v; v = u - v; } return u; }
) d'appels sont plus intéressants et sollicitent moins la pile (les tours de Hanoï par exemple).
L'excuse pédagogique ne devrait pas inciter à mésuser des possibilités d'un langage. Enfin, c'est mon avis et je le partage
Salutle 11/09/2022 à 9:55 -
Sve@rExpert éminent séniorHey
Déjà ce n'est pas moi qui l'ai écrite et surtout ma remarque préalable était ironique. On ne balance pas une fonction récursive comme tout premier exemple d'un langage qu'on désire enseigner (en plus de la syntaxe il faut aussi appréhender la notion de récursivité). Surtout une fonction aussi mal foutue que Fibonacci (pour calculer f(10) elle calculera f(9), deux fois f(8), trois fois f(7), cinq fois f(6) et etc etc). D'ailleurs on ne balance pas non plus comme premier exemple un code non fonctionnel parce que sans main. Le K&R commence par afficher "Hello World".
Après le reste ce sont de vrais avis. Ok ça reste un tuto de plus donc ok dans le pire des cas ça ne peut pas faire de mal et oui si on le complète par d'autres enseignements il peut apporter des choses.le 11/09/2022 à 10:08 -
GuessetExpert confirméBonjour,
Il n'a pas de chance avec cet exemple, même les explications sont fausses. Dans le §2.3, il écrit :
Code C : if(n <= 2) // If n is 1 or 2
Par ailleurs, on pourrait discuter sur la définition de récurrence qui peut prolonger les valeurs en positif comme en négatif (-13,8,-,5,-3,2,-1,1,0,1,1,2,3,5,8,13...), avec n >= 0, fib(-n) = fib(n) si n pair et -fib(n) si n impair.
Sinon, le document n'est pas mal, même sil la multiplication des tables de matières partielles est un peu fatigante.
Salutationsle 12/09/2022 à 16:30 -
GuessetExpert confirméRebonjour Sve,
Je l'avais bien compris mais je craignais que ton coté pince-sans-rirepuisse être interprété comme "il commence fort !" alors que c'est plutôt "Regardez tous, je fais ce qu'il ne faut pas faire et j'en suis fier !"
Salutle 11/09/2022 à 10:58 -
JPLAROCHEMembre expérimentéJe le trouve facile à lire, simple.
Quant au premier exemple, c'est juste une présentation, l'exemple complet là uniquement pour le bon fonctionnement et l'inclusion du main() ....
Il y a des bonnes choses, cela a le mérite d'être gratuit et à la portée de tous.
Un PDF que je garderai.le 11/09/2022 à 11:50 -
JitouMembre confirméVoilà 44 ans après le "Kernighan et Ritchie" le bouquin de mes années d'étudiant on sort un nième manuel sur le C ?le 05/10/2022 à 16:10
-
thamnMembre avertiÇa permet de poser la limitation de la pile je crois, juste après il en cause et présente la version itérative de l'algo. Je trouve que c'est pas si mal, parce que après l'implementation recursive, tu peux passer a l’implémentation non récursive pour aborder la boucle for, me semble qu'en terme de complexité ça se tient, c'est progressif et ça permet de construire du narratif par dessus ça et garder tous les élements liés entre eux, peut être pratique pour mémoriser. Ah je pensais aussi au visite d'arbre, plus amusant pour des exercices ou tu dois éviter la récursivité.le 04/10/2022 à 23:12