IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Concepts en C - Cohérence, logique et fonctionnement du C [Tutoriel]


Sujet :

C

  1. #1
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut Concepts en C - Cohérence, logique et fonctionnement du C
    http://patrick-gonord.developpez.com...s/C/conceptsC/

    Ce document a pour objectif de présenter comment les éléments constituant un programme C sont conçus et interprétés par ce langage. Présentant parfois un coté abstrait, nécessaire pour mettre en évidence l'unité et la cohérence du langage, et ne présentant que peu d'exemples de code, ce document s'adresse plutôt à des lecteurs qui ont un début d'expérience pratique du langage C pour les aider à en dégager la logique et le fonctionnement...

    Vous pouvez laisser un commentaire à la suite !


    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Reçu de _Anne_

    Je voulais simplement vous féliciter pour votre document "Concepts en C" Comme je fais de l'analyse statique de programme C, je suis très sensibilisé à tous ces problèmes, et je sais par expérience que de nombreux programmeurs, même relativement expérimentés n'ont pas une vision aussi claire. Juste une petite remarque à propos des tableaux : je me demande s'il ne serait pas plus clair de dire explicitement que, hormis dans le cas des opérations particulières présentées en VI-B, l'utilisation d'une variable t est équivalente à l'expression &(t[0]). Je dois dire que j'ai un peu tiqué quand j'ai lu "les objets tableaux sont les seuls qui ont un type différent de celui de leur valeur". Mais c'est probablement par déformation professionnelle Par la suite, c'est fort bien expliqué.
    Encore bravo et merci : je recommanderai surement ce document à mes utilisateurs !
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    Dans cette conversation :

    lazakal :
    En tout les cas l'évolution des messages (et des clics...) m'amena au tuto de patrick Gonord "Concepts en C"; je le trouve de "haut niveau d'abstraction" et surtout trés bien conçu, Grand Merci P.G.
    ce qui fait bien plaisir.
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  4. #4
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    Bonsoir,

    J'ai particulièrement apprécié la rigueur de ce tutoriel, duquel je ne contesterai que les quelques remarques suivantes (seulement les deux premières parties, pour le moment).

    unsigned char (sur 8 bits)
    Il serait peut-être utile de préciser que ce n'est pas une généralité (la phrase porte un peu à confusion).

    Il n'est pas possible de modifier le type d'un objet : Le type de l'objet est fixé à sa création
    Mis à part le point manquant et la majuscule en trop, le terme de « création » me paraît assez abstrait, justement. Même si cela regroupe des notions qui n'ont pas encore été abordées, il est difficile de généraliser à ce sujet, dans le sens où les normes C89 et C99 diffèrent à ce sujet (notions de type déclaré et type effectif).

    L'opérateur sizeof et l'opérateur unaire & sont les seuls opérateurs définis pour tous les objets, quel que soit leur type.
    Ça me semble être une généralité trop importante : le cas des champs de bits et des objets des objets de classe de stockage registre en est un contre-exemple.

    Son information est initialisée par défaut par un code où tous les bits de la mémoire allouée à l'objet sont à 0
    Ce n'est pas tout à fait exact ; par exemple, un pointeur sera initialisé à NULL, qui ne possède pas forcément une représentation mémoire tous-bits à zéro.
    Il serait par ailleurs bon de noter que la partie en question contient beaucoup de généralités (pile, classement approximatif) qui sont, certes, très répandues, mais pas universelles (donc pas normalisées par les standards du C).

    les méthodes d'accès à leur information sont celles des tableaux
    Pour autant, l'opérateur d'indexage n'est au départ pas réservé à l'utilisation des tableaux. Je ne comprends pas forcément l'intérêt de la phrase de laquelle est issue la citation, en fait.

    Il ne sera détruit que sur la demande explicite du programmeur
    Ou par les systèmes d'exploitation conventionnels (bon, c'est pas très utile à incorporer, mais vu que le modèle mémoire présenté n'est pas universel...).

    Sur ce, bonne continuation !
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Kirilenko
    Ça me semble être une généralité trop importante : le cas des champs de bits et des objets des objets de classe de stockage registre en est un contre-exemple.
    Un champ de bits n'est pas un objet (la structure qui le contient oui) mais je suis d'accord pour la variable de classe register. Je ne pense pas qu'il y ait d'autre exception cependant, mais il faudra en effet le préciser.

    Citation Envoyé par Kirilenko
    Ou par les systèmes d'exploitation conventionnels
    A la fin du programme.

    Remarques très pertinentes et de qualité en tout cas, comme on aime bien sur Developpez .

  6. #6
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    Citation Envoyé par Melem
    Un champ de bits n'est pas un objet
    Pourtant, la définition d'un objet semble inclure les champs de bits :

    Citation Envoyé par n1570, § 3 Terms, definitions, and symbols
    object : region of data storage in the execution environment, the contents of which can represent values.
    De plus, la norme fait à de nombreuses fois référence à cette caractéristique, par exemple :
    Citation Envoyé par n1570, § 6.2.6.1 General
    Except for bit-fields, objects are composed of contiguous sequences of one or more bytes, the number, order, and encoding of which are either explicitly specified or implementation-defined.
    À moins que j'aie mal interprété cette remarque ?

    Citation Envoyé par Melem
    A la fin du programme.
    En effet, c'était sous-entendu, mais sans doute aurais-je dû préciser.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

  7. #7
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Ah bin c'est un objet dans ce cas. Je trouve d'ailleurs que c'est plus logique, en effet. Du coup j'ai rien dit .

Discussions similaires

  1. Logique de fonctionnement
    Par HadanMarv dans le forum Général Java
    Réponses: 8
    Dernier message: 09/08/2011, 18h45
  2. Réponses: 4
    Dernier message: 15/05/2010, 10h24
  3. [Conception] Fonctionnement du formulaire.
    Par ox@na dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/09/2006, 19h00
  4. [Conception] INSERT fonctionne a moitié, UPDATE Fonctionne, comprends pas?
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 06/09/2006, 18h22
  5. [Conception] Deux codes identique mais un qui fonctionne pas
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/08/2006, 18h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo