Programmation en C

Posté par  . Modéré par Fabien Penso.
Étiquettes :
0
2
mai
2001
Lug
Parinux organise en collaboration avec Placenet une conférence intitulée 'Introduction au langage C'. La conférence aura lieu le jeudi 10 mai 2001 à 20h dans les locaux de Placenet (Paris 11, métro 'les boulets de montreuil', 21 ter rue Voltaire). Si vous vous sentez une âme de programmeur, n'hésitez pas...

Aller plus loin

  • # C ???

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Et pourquoi pas une introduction au C++ après tout, les encapsulations des fonctions C en C++, ça existe pas peut-être ?
    • [^] # Re: C ???

      Posté par  . Évalué à 1.

      Je ne sais pas si c'est mieux.
      Dans bien des cas, la programmetion objet n'est pas indispensable (programmation système, systèmes embarqués "légers"...). Vouloir se restreindre au C permet d'aprofondir certains concept un peu "rudes". La programmation C++ necessite en outre un apprentissage de la conception objet, qui n'est pas naturelle pour beaucoup de monde.
      • [^] # Re: C ???

        Posté par  (site web personnel) . Évalué à 1.

        > Dans bien des cas, la programmetion objet n'est pas indispensable

        Rien n'est indispensable, juste plus ou moins utile.

        > (programmation système, systèmes embarqués "légers"...).

        Non, on peut faire ca en POO (on le fait meme assez souvent je crois), c'est tres bien aussi.

        > La programmation C++ necessite en outre un apprentissage de la conception objet

        Pas forcement... S'en servir simplement comme d'un C avec un type vector<> et un type string en plus, c'est deja une immense amelioration.

        En plus pour apprendre la POO, le C++ n'est vraiment pas le meilleur choix.
        • [^] # Re: C ???

          Posté par  . Évalué à 1.

          >> (programmation système, systèmes embarqués "légers"...).

          >Non, on peut faire ca en POO (on le fait meme assez souvent je crois), c'est tres bien aussi.

          Bha les modules Linux sont programmés en C non ?
          En ce qui concerne les systèmes embarqués "légers", bien souvent le microcontrolleur ne posséde pas la memoire suffisante pour coder en objet. Exemple : un 68hc811E2 posséde 256 OCTETS de RAM. Impossible de faire de l'objet dans ces conditions.

          >> La programmation C++ necessite en outre un apprentissage de la conception objet

          >Pas forcement... S'en servir simplement comme d'un C avec un type vector<> et un type string en plus, c'est deja une immense amelioration.

          Pas sur. En utilisant le type string et les vector<>, tu occulte des choses trés importante, au nivo de la gestion de la memoire par exemple.
          • [^] # Re: C ???

            Posté par  (site web personnel, Mastodon) . Évalué à 1.

            >Pas sur. En utilisant le type string et les vector<>, tu occulte des choses trés importante, au nivo de la gestion de la memoire par exemple.
            Ben ouais mais il y a déjà des gens qui se sont fait chier avec la gestion de la mémoire. Recoder ce genre de truc, c'est s'exposer à des bugs déjà rencontrés. De même, le genre de truc comme déréférencer une variable pour la recaster dans un autre type, c'est plutôt dégueulasse et c'est pas portable du tout (because taille des types entre deux plateformes par ex)
          • [^] # Re: C ???

            Posté par  (site web personnel) . Évalué à 1.

            > Bha les modules Linux sont programmés en C non ?

            Oui, et alors ?

            > En ce qui concerne les systèmes embarqués "légers", bien souvent le microcontrolleur ne posséde pas la memoire suffisante pour coder en objet.

            Si tu as la place pour une struct et des fonctions associees, tu as la place pour un objet.

            > En utilisant le type string et les vector<>, tu occulte des choses trés importante, au nivo de la gestion de la memoire par exemple.

            Dans la majorite des cas tu n'as rien a foutre de ce genre de details.
            Il vaut mieux avoir quelques bases sur malloc/free, juste pour savoir que ca existe et comment s'en servir si tu es oblige, et utiliser des classes (ou carrement un langage) qui ne te fasse pas chier avec, plutot que de s'empetrer dedans et de croire qu'on ne peut pas programmer sans.

            Il y a deja assez de jeunes couillons scleroses dans le C comme ca, pas la peine d'en former d'autres.
            • [^] # Explications

              Posté par  . Évalué à 1.

              Si j'ai posté ce message, c'est pour repondre a Blackknight qui avait l'air de penser que le C n'était plus utilisé (et qu'il n'était pas utile de faire une conference a ce sujet). Ce n'était en aucun cas pour critiquer le C++ et glorifier le C. Je voulais simplement montrer que dans certain cas, il est utile (voir indispensable, n'en deplaise à certains) de savoir programmer en C à partir de rien (c'est a dire sans aucune libs). Je reprend mes exemples. La programmation de modules : on ne peut pas ( a ma connaissance) utiliser la STL pour coder un module. On est donc obligé de passer par des malloc/free(ou variantes). En ce qui concerne les systemes embarqués légers, dans bien des cas il n'existe pas de compilateur C++ pour ce type de plateforme. Le C est donc fréquement utilisé.
              • [^] # Re: Explications

                Posté par  (site web personnel) . Évalué à 1.

                Ah, dans ce cas on est d'accord :-).
              • [^] # Re: Explications

                Posté par  (site web personnel, Mastodon) . Évalué à 1.

                Je n'ai pas dit que le C n'était plus utilisé. Simplement, l'utilisation du C++ est plus modulaire, maintenable sans effort aussi important que pour le C. De toutes façons, je suis d'accord que pour certains sytèmes, la programmation en C est indispensable mais cela vient de leur architecture même. Un exemple sur les modules : en Linux, et oui, c'est du C et on est obligés de faire des malloc/free. Mais BeOs est un OS codé en C++. De même, tu peux utiliser du C++ pour faire des appels proches de la machine puisque rien ne t'empêche de mettre de l'assembleur directement dans ton code.
                Pour ce qui est des systèmes embarqués légers, il n'existe pas de compilateur C++ mais c'est sutout historique, tout comme il n'existe pas de langage unifié pour les automates Téléméca ou autre.
                Dans les systèmes embarqués légers, tu trouves maintenant (je pense aux téléphones portables) du Java (ce qui était son but à sa création).
                Il faut savoir que je ne craches absolument pas sur le C et que donc tout ceci n'est pas un troll (je veux pas me faire allumer).
      • [^] # Bof ....

        Posté par  . Évalué à 0.

        #1
        Le concept d'objet est une invention de l'esprit humain qui crée des associations entres elements differents (pas les memes atomes).
        Par exemple, lorsque l'on voit deux stylos, on associe tout de suite la notion de STYLO a ces 2 elements alors qu'il sont totalement differents. L'esprit crée donc automatiquement des classes d'objets. Si l'un troisieme stylo est un feutre, l'esprit percoit qu'il y a des ressemblances et des differences. Si on lui demande un stylo, il repondra aussi feutre pourant si on lui demande un feutre il ne donne pas les stylo, ... ainsi le concept d'heritage est créé ;) Tout le reste de la programmation objet n'est que temps d'observation du comportement humain :)

        Il est donc de-facto naturel pour TOUT le monde ;)

        Mais bien sur, toute personne ayant apprit à programmer d'un autre façon (strucurer sa penser pour mieux créer un element comprehensible par une machine: ASM, C, ... ) devra des-apprendre et retrouver la notion natuelle de modelisation et structuration objet.

        Pourtant meme si la programmation objet reflete ce que pense un humain, elle ne peut en decrire l'ensemble des dessins ... pour cela il faut utiliser des techniques telles que UML par exemple ;)

        #2

        L'objet n'est pas indispensable, il EST .
        Il est et nait dans l'esprit de l'homme et pour cela est indissociable de toute pensée

        #3

        Ta remarque de concepts "rude" sous entends que il y aurrait les "vrai" et "purs" programmeurs qui ferait du C et seraient confrontés à la "vrai" réalité et les autres ... cliché !

        Si bcp de systemes temps réels sont fait en C c'est simplement que etant présent depuis plus longtemps on dispose de plus de recul et plus de maitrise sur ce langage (le fameux EXISTANT) ! D'autre par, comme tu le sait certainement le C++ n'est rien d'autre qu'un bricolage (proche du #define) au dessus du C (cf les passages de contexte et parametres).

        Il faut savoir que de plus en plus de systemes temps réels proposent des API C++ et meme Java (cf WindRiverSystems par ex) ... car pourqu'un programme soit temps réel il faut d'abord que l'OS le soit ;)

        Ainsi si Java et souvent decrié comme n'etant pas temps réel, c'est tout simplement par ce que les OS sur lequel il tourne generalement ne le sont pas et que son thread de GC n'a pas comme priorité d'etre exact (temps réel) mais rapide !

        L'ordonancement temps reel et la rapidité pure sont bel et bien ennemi, et un bon OS temps réel essayera de concilier les 2 sans jamais s'ellogner du premier (www.jbed.com cf. par exemple).

        Ainsi meme Java peut etre utiliser dans un contexte temps réel et embarqué ;)

        3hck
        • [^] # Re: Bof ....

          Posté par  (site web personnel) . Évalué à 1.

          > D'autre par, comme tu le sait certainement le C++ n'est rien d'autre qu'un bricolage (proche du #define) au dessus du C

          Cliche aussi :-).
        • [^] # Re: Bof ....

          Posté par  (site web personnel) . Évalué à 1.

          La programmation Objet n'est qu'une approche plus ou moins réussi de l'appréhension du monde par les humains.

          De plus, quand l'homme modélise et schématise son environnement, il (enfin moi) le fait aussi avec la mathématique, et la logique.

          Les approches fonctionnelle (Lisp, ...) et logique (Prolog) sont très intéressantes de ce point de vue.
          Il existe des langages qui permettent à la fois l'approche fonctionnelle et l'approche Objet (comme Ruby, et d'une certaine manière Lisp).

          Il en va de même pour la modélisation.
          Tout le monde aujourd'hui veux faire de l'objet (UML, etc...), alors que c'est si simple avec Mersise (attention hein ! ça dépend des objectifs et des contraintes techniques).

          Bref, la programmation Objet (ou Orientée Objet), n'est pas forcément ce qu'il y a de mieux.

          Qu'un stylo soit un objet, personne ne le nie.
          Par contre, si je veux faire un calcul distribué, à quoi me sert l'approche objet ?
          • [^] # Re: Bof ....

            Posté par  (site web personnel) . Évalué à 1.

            > La programmation Objet n'est qu'une approche plus ou moins réussi de l'appréhension du monde par les humains.

            Non, c'est l'evolution naturelle de la programmation structuree, de la meme facon que celle-ci est l'evolution de if/goto.

            Des que tu commences a manipuler des structs et des fonctions, tot ou tard les bases de la POO vont apparaitre.


            > Par contre, si je veux faire un calcul distribué, à quoi me sert l'approche objet ?

            A organiser un peu mieux ton code.
    • [^] # T'y es fou toi ... ;-)

      Posté par  . Évalué à 0.

      Le C++ c'est trop evolué ....
      pourquoi pas faire du Java aussi !

      Nan vraiment ya que le bon vieux C (version K&R bien sur et pas ANSI) ca c'est fait pour les bons programmeurs !

      T'immagine pas, leur apprendre à faire de la programmation objet non plus ?!

      L'objet ca sert à rien : c'est une invention qui va de toute façon disparaitre ... non mais est-ce qu'on a deja vu des objets ? alors que des bons traitements avec des variables ca c'est efficace et ca produit du bon code de qualité sans aucuns bugs !

      Moi, j'vous dis messieux dames, si ca continue on sera plus obligé de taper nos programes avec Vi ou edlin !
      Nan vraiment, il etait beau le temps des perforatrices ... ca au moins c'etait de la programmation !

      Mais oui mon bon monsieur, aujourd'hui les jeunes il savent plus rien faire ! un scandale mon bon môsieur ...!

      ...................

      (Euh bien sur c'etait au ((*(x+24)++)<<2)*8 éme degrés !)

      3hck
    • [^] # Re: C ???

      Posté par  . Évalué à 0.

      Do not feed the trolls !
      • [^] # Re: C ???

        Posté par  . Évalué à 0.

        J'aime bien les trolls :)

        (ou comment lancer un auto-troll ...)
  • # Des oggs !

    Posté par  . Évalué à 0.

    Une bonne ame pour enregistrer la conf ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.