C ?? ou C++ ???

Fermé
claire - 12 sept. 2002 à 16:17
 claire - 17 sept. 2002 à 17:14
bonjour,

j aurais aimer que quelqu'un m'explique a quoi setr le C et le C++ et lequel de ces 2 langages il vaut mieux apprendre en 1er.

merci !!

8 réponses

marty25 Messages postés 56 Date d'inscription mercredi 1 août 2001 Statut Membre Dernière intervention 18 octobre 2002
12 sept. 2002 à 21:43
Salut claire,

bon alors le C++ est une version orientée objet du C. Selon moi, tu devrais commencer par le C pour connaitre les bases(qui fonctionnent en C++ pour la plus part) et en meme temps apprendre le concepte OBJET et ensuite attaquer les specificiter du C++ (voir en parallele avec le concepte objet).

Voila voila...

Bonne continuation.. :)

Marty(...)
0
Kuching Messages postés 2702 Date d'inscription jeudi 30 mai 2002 Statut Contributeur Dernière intervention 26 décembre 2007 157
13 sept. 2002 à 03:24
Salut,

Le principal interet du C aujourd'hui est qu'il est majoritairement utilise pour les systemes embarques avec contraintes temps reel.

As-tu deja une experience de l'algo et de la programmation?

Si oui commence par celui qui est utilise ds ton environnement profesionnel (ou l'env. que tu souhaites integrer).

Si la reponse est non je te conseillerai d'apprendre l'algo avant (si tu souhaites faires des prog propres, ce qui n'est plus tellement de mode aujourd'hui :-))

A+
K.
0
emm Messages postés 5057 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 3 décembre 2009 667
13 sept. 2002 à 04:58
Tu peux lire http://www.commentcamarche.net/c/cintro.php3
C a été créé par des jeunes fous il y a presque 30 ans. Il y a très longtemps, sur des machines rudimentaires avec très peu de ressources. On voulait écrire le code de façon la plus dense possible, bien avant l'apparition des disquettes avec des bandes de papier ou des cartes perforées. Dense à un point tel que parfois, même l'auteur doit s'y reprendre à deux fois pour comprendre ce qu'il a codé un mios plus tôt. Pour un nouveau processeur complètement nu, il est facile de modifier quelques librairies de gcc (gnu C compiler) pour créer un premier compilateur pour ce nouveau venu puis ensuite toute le série des outils d'un operating system unix.
De nombreux vieux programmes sont écrits en C. Pour réutiliser du code, on a été amené à définir des interfaces avec Ansi C, créer des librairies, de créer des objets raffinables par héritage et on a créé C++ mal greffé sur un langague très peu typé qu'est le C.

Pauvre monde, du C et du C++ embarqué. Ils sont mal embarqués. Des sociétés entières ont été broyées sur l'hotel du C++, ne parvenant jamais au temps réel, à cause des liens dynamiques, des allocations/désallocation de mémoire, du manque de garbage collection, de l'interception des erreurs, des memory leakage...
On y a préféré RTL/2, Fortran, puis Ada (voir http://www.adaic.org/ et http://www1.acm.org/sigs/sigada/education/). Ada est le premier langage ayant englobé la notion de taches parallèles et de synchronisation. En cela il est beaucoup plus intéressant à enseigner que le C++ ou le fortran il a été choisi comme premier langage par de nombreuses universités.
Java en est l'évolution la plus efficace. Plus sûr que C++, il est plus verbeux et typé comme Ada, mais combien plus clair à lire, à écrire, à documenter et à entretenir que C++.
Etudie dont le C en vitesse en diagonale, saute l'étape du C++ à moins qu'on ne te le demande avec un job à la clé.

Passe alors du temps à maîtriser Java dont les caractéristiques couvrent totalement C++ et Ada et sont beaucoup plus larges encore.
Ainsi donc, tu gagnes du temps à ne pas voir le C++ puisque connaissant Java tu comprendras plus vite tous les autres langage et les trouveras désuets. Avenir assuré en Java dans les grandes entreprises, sans trop de maux de tête et moins d'angoisse qu'en C. (On a vu beaucoup de grands projets s'enliser en C++, cent fois moins souvent qu'en Java).

L'avenir sourit au Java dans tous les secteurs de l'informatique, pour tous les grands projets industiels ou bancaires. il tourne sur toutes les plateformes grâce à une Java Virtual machine qui a été imposée à Microsoft lorsqu'ils ont signé un accord avec les créateur Sun Microsystems. S'en est suivi un dialecte Microsoft combattu violemment lors qu'un procès retentissant. une application développée en Java se verra portée sur Unix, Linux, MacOS ou Windows facilement, un gage pour l'avenir, Babel du 21 siècle.

Ada est encore utilisé dans les secteurs bancaire, le ferroviaire, le spatial (Ariane 5) et le militaire dont il est issu. Mais le coût des formations Ada et des compilateurs repoussent les patrons à choisir Java. Il existe un compilateur Ada du domaine public ( http://www.gnat.com).

Bye
0
Je recommanderais de commencer par le C++, car le passage C -> C++ et nettement plus douloureux que C++ -> C.

Et tu pourrais même commencer par d'autres langages comme Delphi ou Turbo Pascal.

Tout dépend de tes buts...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kuching Messages postés 2702 Date d'inscription jeudi 30 mai 2002 Statut Contributeur Dernière intervention 26 décembre 2007 157
13 sept. 2002 à 10:06
Emm : java successeur de ADA?
Depuis quand java permet-il de gerer de vrais contraintes temps reel? As-tu des lien s la-dessus? (ca m'interesse).

Un code quel que soit le langage est illisible si le codeur ne respecte pas des regles de base (indentation, commentaires) et les regles de codage de sa societe ca ne tient pas au langage lui-meme.

J'aime bcp TP et j'ai meme bosse en RT avec, c'est sympa tout plein (a part la gestion des pointeurs ...)

A+
K.
0
emm Messages postés 5057 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 3 décembre 2009 667
14 sept. 2002 à 03:09
Attention, fermez les yeux et sautez mon texte, ceci est destiné à Kuching. Cela t'intéresse ?
Bah, on se pose toujours la question de la finesse requise pour ce temps réel. Est-ce un truc qui doit allumer ton feu rouge quand tu pousses sur le frein ou le machin qui doit faire exploser ton airbag dès que tu as subi un choc ?Est-ce un calcul matriciel gigantesque mais qui doit plusieurs fois par seconde calculer la position des tuyères d'une fusée pour respecter sa trajectoire théorique ?

Suffira-t-il de faire la preuve mathématique que toutes les tâches cycliques seront rencontrées, Ce sujet a fait couler beaucoup d'encre. (Il suffit de rechercher les mots clés realtime, Lui, Sha, Lehoczksy, Goodenough, RMA (rate monotonic scheduling)
( voir http://www.sei.cmu.edu/str/descriptions/rma.html), sujet qui n'a pas vraiment convaincu, car il a fallu introduire des priorités dynamique (priority ceiling) dans les compilos Ada pour éviter les deadlocks dans les rendez-vous synchrones des tâches Ada. Et ce qui a fait fuire les décideurs, c'est qu'avec un séquenceur cyclique du type RMA, si on instrumente le code, il faut bien dire qu'il y voient du battement qui ne leur plait pas, même si on leur prouve que toutes les contraintes sont rencontrées. Ariane 4 a été bâti avec un séquenceur sans priorité en insérant juste le code par tronçon dans un ordre précis et répété. Pour essayer de faire mieux, on a essayé mille trucs. Sur ariane on en est venu à utiliser un sous-ensemble d'Ada en perdant toutes les nuveautés pour bien évacuer les angoisses. Si on énumère les cointraintes de deadtime dans des diagrammes de Gantt ou dec Perth on arrivera à une solution statique. Si on veut bâtir un grand machin plus adaptable, on met un processeur beaucoup plus rapide, on laisse un tiers de temps CPU libre par tranche horaire et on se lance... Sans parler du temps de changement de contexte au task switching, à l'échelle microscopique le temps requis pour un branchement en assembleur dépend de ce qui est déjà en cache secondaire sur les processeurs modernes, générant une certaine inconnue sur l'instant du traitement d'une donnée électronique acquise cycliquement.
Et comme les gars y branchent encore des oscilloscopes pour tout vérifier, il leur manque le top de synchro pour y voir quelque chose et sont horrifiés de ne pouvoir observer la scène comme ils le faisaient avec une image TV.
Alors, la preuve mathématique a priori, ils n'y croyaient pas du tout ! Je ne sais pas ce qu'il en est aujourd'hui à Toulouse. Et cela m'intéresserait de la savoir.

En java se greffe l'hiatus du garbage collection...

Voici quelques liens à propos de Java realtime:
http://www.sun.com/books/catalog/dibble/index_Table+of+Contents.html
http://doc.ece.uci.edu/~corsaro/jRate/docs/api/ et
http://www.embedded.com/story/OEG20010304S0004
http://www.ajile.com/papers.htm (Ajile qui vend des solutions hard/soft)
0
Kuching Messages postés 2702 Date d'inscription jeudi 30 mai 2002 Statut Contributeur Dernière intervention 26 décembre 2007 157
14 sept. 2002 à 09:57
Salut,

Merci pour les liens et les infos, je vais jeter un coup d'oeil.

A+
K.
0
merci a tous pour vos reponses :-)
0