Adventik est une agence numérique à service complet. §1 Informations générales sur la langue. Étapes de conception du programme. Modèles de cycle de vie des applications Quand le langage C a-t-il été développé ?

Langage de programmation C++

Dernière mise à jour : 28/08/2017

Le langage de programmation C++ est un langage de programmation de haut niveau, typé statiquement, compilé et à usage général, adapté à la création d'une grande variété d'applications. Aujourd’hui, le C++ est l’un des langages les plus populaires et les plus répandus.

Il trouve ses racines dans le langage C, développé entre 1969 et 1973 aux Bell Labs par le programmeur Dennis Ritchie. Au début des années 1980, le programmeur danois Bjarne Stroustrup, qui travaillait alors aux Bell Labs, a développé le C++ comme extension du langage C. En fait, au début, C++ complétait simplement le langage C avec quelques capacités de programmation orientée objet. Et c’est pourquoi Stroustrup lui-même l’a initialement appelé « C avec classes ».

Par la suite, la nouvelle langue a commencé à gagner en popularité. De nouvelles fonctionnalités y ont été ajoutées, ce qui en fait non seulement un ajout au C, mais un tout nouveau langage de programmation. En conséquence, « C avec classes » a été renommé C++. Et à partir de ce moment-là, les deux langues ont commencé à se développer indépendamment l’une de l’autre.

C++ est un langage puissant, héritant des riches capacités de mémoire du C. Par conséquent, le C++ trouve souvent son utilisation dans la programmation système, notamment lors de la création de systèmes d'exploitation, de pilotes, de divers utilitaires, d'antivirus, etc. À propos, le système d’exploitation Windows est principalement écrit en C++. Mais l’utilisation de ce langage ne se limite pas à la programmation système. Le C++ peut être utilisé dans des programmes de tout niveau où la vitesse et les performances sont importantes. Il est souvent utilisé pour créer des applications graphiques et divers programmes d'application. Il est également particulièrement souvent utilisé pour créer des jeux avec une visualisation riche et riche. De plus, la direction mobile a récemment pris de l'ampleur, où le C++ a également trouvé son application. Et même dans le développement Web, vous pouvez également utiliser C++ pour créer des applications Web ou certains services de support qui servent des applications Web. En général, C++ est un langage largement utilisé dans lequel vous pouvez créer presque n’importe quel type de programme.

C++ est un langage compilé, ce qui signifie que le compilateur traduit le code source C++ en un fichier exécutable contenant un ensemble d'instructions machine. Mais les différentes plates-formes ont leurs propres caractéristiques, de sorte que les programmes compilés ne peuvent pas simplement être transférés d'une plate-forme à une autre et y être exécutés. Cependant, au niveau du code source, les programmes C++ sont largement portables à moins que certaines fonctions spécifiques au système d'exploitation ne soient utilisées. Et la disponibilité de compilateurs, de bibliothèques et d'outils de développement pour presque toutes les plateformes courantes vous permet de compiler le même code source C++ dans des applications pour ces plateformes.

Contrairement au C, le langage C++ vous permet d'écrire des applications dans un style orienté objet, représentant un programme comme un ensemble de classes et d'objets interagissant les uns avec les autres. Ce qui simplifie la création de grandes applications.

Principales étapes de développement

En 1979-80, Bjarne Stroustrup a développé une extension du langage C : « C with Classes ». En 1983, le langage a été renommé C++.

En 1985, la première version commerciale du langage C++ est sortie, ainsi que la première édition du livre "The C++ Programming Language", qui représente la première description de ce langage en l'absence de norme officielle.

En 1989, une nouvelle version du langage C++ 2.0 a été publiée, qui comprenait un certain nombre de nouvelles fonctionnalités. Par la suite, la langue s’est développée relativement lentement jusqu’en 2011. Mais parallèlement, en 1998, la première tentative de normalisation du langage a été faite par l'organisation ISO (Organisation internationale de normalisation). La première norme s'appelait ISO/IEC 14882:1998, ou C++98 en abrégé. Par la suite, en 2003, une nouvelle version du standard C++03 a été publiée.

En 2011, la nouvelle norme C++11 a été publiée, qui contient de nombreux ajouts et enrichit le langage C++ d'un grand nombre de nouvelles fonctionnalités. Suite à cela, un petit ajout à la norme, également connu sous le nom de C++14, a été publié en 2014. Et une autre version clé du langage est prévue pour 2017.

Compilateurs et environnements de développement

Pour développer des programmes en C++, vous avez besoin d'un compilateur : il traduit le code source en C++ en un fichier exécutable que vous pouvez ensuite exécuter. Mais il existe actuellement de nombreux compilateurs différents. Ils peuvent différer sur divers aspects, notamment dans la mise en œuvre des normes. Une liste de base des compilateurs pour C++ peut être trouvée sur Wikipédia. Il est recommandé pour le développement de choisir les compilateurs qui développent et mettent en œuvre toutes les dernières normes. Ainsi, tout au long de ce tutoriel, nous utiliserons principalement le compilateur g++ disponible gratuitement développé par le projet GNU.

Vous pouvez également utiliser des IDE tels que Visual Studio, Netbeans, Eclipse, Qt, etc. pour créer des programmes.

Langage C et UNIX

Langage de programmation AVEC(lire « C ») a été créé au début des années 70, lorsque Ken Thompson et Dennis Ritchie des Bell Labs ont développé le système d'exploitation UNDC. Ils ont d’abord créé la partie compilateur AVEC, puis je l'ai utilisé pour compiler le reste du compilateur AVEC et finalement utilisé le compilateur résultant pour compiler UNIX. Le système d'exploitation UNIX a été initialement distribué sous forme de code source pour AVEC entre universités et laboratoires, et le destinataire pourrait compiler le code source dans la langue AVEC en code machine à l'aide d'un compilateur approprié AVEC.

La distribution du code source a rendu le système d'exploitation UNIX unique ; le programmeur pourrait changer de système d'exploitation et le code source pourrait être transféré d'une plate-forme matérielle à une autre. Aujourd'hui, la norme POSIX définit l'ensemble standard d'appels système UNIX disponibles dans AVEC, qui doit être implémenté dans les versions d'UNIX compatibles POSIX. C était le troisième langage développé par Thomson et Ritchie lors de la création d'UNIX ; les deux premiers étaient, bien sûr, UN Et DANS.

Langage d'assemblage mobile C

Par rapport au langage antérieur - BCPL, langage AVEC a été amélioré en ajoutant des types de données de longueurs spécifiques. Par exemple, le type de données int peut être utilisé pour créer une variable avec un nombre spécifique de bits (généralement 16), tandis que le type de données long peut être utilisé pour créer une variable entière avec un grand nombre de bits (généralement 32). Contrairement à d'autres langages de haut niveau, AVEC pourrait fonctionner avec des adresses mémoire directement en utilisant des pointeurs et des références. Parce que le AVEC conserve la possibilité d’accéder directement au matériel, il est souvent classé comme langage de niveau intermédiaire ou appelé en plaisantant « langage d’assemblage mobile ».

C - langage de programmation structuré

Quant à la grammaire et à la syntaxe, alors AVEC est un langage de programmation structuré. Alors que de nombreux programmeurs modernes pensent en termes de classes et d'objets, les programmeurs AVEC penser en termes de procédures et de fonctions. DANS AVEC Vous pouvez définir vos propres types de données abstraits à l'aide du mot-clé struct. De même, vous pouvez décrire vos propres types entiers (énumérations) et donner d'autres noms aux types de données existants à l'aide du mot-clé typedef. Dans ce sens AVEC est un langage structuré avec les germes de la programmation orientée objet.

Standardisation du langage C

Langage répandu C sur différents types d'ordinateurs (parfois appelés plates-formes matérielles) a malheureusement conduit à de nombreuses variantes du langage. Ils étaient similaires, mais incompatibles les uns avec les autres. Il s'agissait d'un problème majeur pour les développeurs de logiciels qui devaient écrire des programmes compatibles pouvant fonctionner sur plusieurs plates-formes. Il est devenu évident qu'une version standard était nécessaire C. En 1983 L'ANSI (American National Standards Committee) a formé le comité technique X3J11 pour créer une norme linguistique C(pour "fournir une définition du langage sans ambiguïté et indépendante de la machine"). En 1989, la norme a été approuvée. L'ANSI s'est associée à l'ISO (Organisation internationale de normalisation) pour normaliser C internationalement; une norme commune a été publiée en 1990 et nommée ANSI/ISO 9899:1990. Cette norme est toujours en cours d'amélioration et est prise en charge par la plupart des sociétés de développement de compilateurs.

Naissance du C++

Bjarne Stroustrup libère le potentiel de l'orientation objet AVEC en transférant les capacités de classe Simulateur 67 V AVEC. Initialement, le nouveau langage portait le nom de « C avec classes » et ce n'est qu'alors qu'il a commencé à s'appeler C++. Langue C++ A gagné en popularité après avoir été développé aux Bell Labs, il a ensuite été transféré à d'autres industries et entreprises. Aujourd'hui, c'est l'un des langages de programmation les plus populaires (et faisant autorité) au monde. C++ hérite des bons et des mauvais côtés AVEC.

Révélations de Bjarna Stroustrup

Bjarne Stroustrup : « J'ai imaginé C++, a rédigé sa définition initiale et réalisé la première implémentation. J'ai sélectionné et formulé des critères de conception C++, a développé ses principales caractéristiques et était responsable du sort des propositions d'extension du langage au sein du comité de normalisation C++», écrit l'auteur du langage de programmation le plus populaire. - « Le langage C++ doit beaucoup à la langue C, et la langue C reste un sous-ensemble Langage C++(mais C++ a corrigé plusieurs défauts sérieux dans le système de types C). J'ai aussi économisé de l'argent C, qui sont suffisamment bas pour gérer les tâches système les plus critiques. Langue C, à son tour, doit beaucoup à son prédécesseur, BCPL ; À propos, le style de commentaire // est tiré de C++ de BCPL. Une autre source d'inspiration principale était la langue Simule67. Le concept de classes (avec classes dérivées et fonctions virtuelles) lui a été emprunté. Un moyen de surcharger les opérateurs et la possibilité de placer des annonces partout où une instruction peut être écrite. Algol68. "

Pourquoi C++

Nom C++ inventé par Rick Massitti. Le nom indique la nature évolutive de la transition vers celui-ci de C. "++" est une opération d'incrémentation dans C. Nom un peu plus court C+ est une erreur de syntaxe ; de plus, il a déjà été utilisé comme nom d’une langue complètement différente. Experts en sémantique C Trouve ça C++ pire que ++C. Titres D le langage ne l'a pas compris car il s'agit d'une extension de C et n'essaie pas de résoudre ses problèmes en supprimant diverses fonctionnalités.

Pourquoi le C++ était-il nécessaire ?

Initialement Langage de programmation C++ a été conçu pour que l'auteur et ses amis n'aient pas à programmer en assembleur, en C ou dans d'autres langages modernes de haut niveau. Son objectif principal était de rendre l'écriture de bons programmes plus facile et plus agréable pour le programmeur individuel. Plan de développement C++ n’a jamais existé sur papier ; la conception, la documentation et la mise en œuvre se sont déroulées simultanément. Bien entendu, l'interface externe C++ a été écrit dans C++. Il n'y a jamais eu de « projet C++ » ou de « comité de développement C++ ». C'est pourquoi C++ a évolué et continue d'évoluer dans toutes les directions pour faire face aux défis rencontrés par les utilisateurs et au fil des échanges entre l'auteur et ses amis et collègues.

Véritable C++ orienté objet

DANS Langage C++ Les principes de la programmation orientée objet sont pleinement pris en charge, y compris les trois piliers sur lesquels elle repose : l'encapsulation, l'héritage et le polymorphisme. Encapsulation dans C++ pris en charge via la création de types de données non standard (personnalisés) appelés classes. Langue C++ prend en charge l'héritage. Cela signifie que vous pouvez déclarer un nouveau type de données (classe) qui est une extension d'un type existant.

Bien que Langage de programmation C++à juste titre appelé une suite AVEC et tout programme réalisable dans la langue AVEC sera pris en charge par le compilateur C++, en passant de AVECÀ C++ Un pas très important a été réalisé. Langue C++ bénéficié de son affinité avec le langage AVEC depuis de nombreuses années, car de nombreux programmeurs ont constaté que pour tirer pleinement parti de Langage C++, ils doivent désapprendre certaines de leurs connaissances antérieures et en acquérir de nouvelles, à savoir apprendre une nouvelle façon de conceptualiser et de résoudre des problèmes de programmation. Avant de commencer à apprendre C++, Stroustrup et la plupart des autres programmeurs utilisant C++ envisager l'apprentissage des langues AVEC facultatif.

Langage de programmation C++ est actuellement considéré comme le langage dominant utilisé pour développer des produits commerciaux, 90 % des jeux sont écrits en C++ en utilisant DirectX.

Littérature

Sources:

  • HMDeitel, PJDeitel "Comment programmer en C++"
  • Bjarne Stroustrup "Le langage de programmation C++. 3e édition."
  • Simon Robinson, Ollie Cornes, Jay Glynn et d'autres. "C# pour les professionnels"
  • Jess Liberty "Apprenez-vous le C++ en 21 jours"
  • Stanislav Gornakov "DirectX, cours de programmation en C++"

C++ est un langage de programmation compilé à usage général qui combine les propriétés des langages de programmation de haut niveau et de bas niveau. Par rapport à son prédécesseur, le langage de programmation C, la plus grande attention est accordée à la prise en charge de la programmation orientée objet et générique. Le nom « langage de programmation C++ » vient du langage de programmation C, dans lequel l'opérateur unaire ++ désigne l'incrément d'une variable.

Le langage de programmation C++ est largement utilisé pour le développement de logiciels. A savoir, la création de divers programmes d'application, le développement de systèmes d'exploitation, de pilotes de périphériques, ainsi que de jeux vidéo et bien plus encore. Il a été créé au début des années 1980 par Björn Stroustrup. Il a proposé un certain nombre d'améliorations au langage de programmation C pour ses propres besoins. ceux. Au départ, il n’était pas prévu de créer le langage de programmation C++.

Il prend en charge des paradigmes de programmation tels que la programmation procédurale, la programmation orientée objet, la programmation générique, offre la modularité, la compilation séparée, la gestion des exceptions, l'abstraction des données, la déclaration des types d'objets (classes), les fonctions virtuelles.

Le nom du langage résultant provient de l'opérateur d'incrémentation unaire postfix C++ (augmentant la valeur d'une variable de un). Le nom C+ n'a pas été utilisé car il s'agissait d'une erreur de syntaxe en C et aussi parce que le nom était occupé par un autre langage. Le langage n'a pas non plus été nommé D car il "est une extension de C et ne tente pas de résoudre les problèmes en supprimant des éléments de C".

Avantages de la langue :

1. Évolutivité. Les programmes sont développés en C++ pour une grande variété de plates-formes et de systèmes.

2. Capacité à travailler à bas niveau avec la mémoire, les adresses, les ports.

3. La capacité de créer des algorithmes généralisés pour différents types de données, leur spécialisation et leurs calculs au stade de la compilation à l'aide de modèles.

4. Multiplateforme. Des compilateurs sont disponibles pour un grand nombre de plateformes et des programmes sont développés en C++ pour une grande variété de plateformes et de systèmes.

5. Efficacité. Le langage est conçu pour donner au programmeur un contrôle maximal sur tous les aspects de la structure du programme et de l'ordre d'exécution.

Inconvénients de la langue :

1. La présence de nombreuses fonctionnalités qui violent les principes de sécurité des types conduit au fait que des erreurs subtiles peuvent facilement s'infiltrer dans les programmes C++.

2. Mauvaise prise en charge de la modularité. La connexion de l'interface d'un module externe via l'insertion par le préprocesseur d'un fichier d'en-tête (#include) ralentit sérieusement la compilation lors de la connexion d'un grand nombre de modules.

3. Le langage C++ est difficile à apprendre et à compiler.

4. Certaines conversions de types ne sont pas intuitives. En particulier, une opération sur un nombre non signé et un nombre signé produit un résultat non signé.

5. Certaines personnes considèrent l'absence d'un système de récupération de place intégré comme un inconvénient du langage C++. D'un autre côté, C++ dispose de suffisamment d'outils pour éliminer presque l'utilisation de pointeurs dangereux ; il n'y a pas de problèmes fondamentaux dans l'implémentation et l'utilisation du garbage collection (au niveau de la bibliothèque, pas au niveau du langage). L'absence de garbage collection intégré permet à l'utilisateur de choisir sa propre stratégie de gestion des ressources.

Pourquoi C++

C++ est actuellement considéré comme le langage dominant utilisé pour développer des produits logiciels commerciaux. Ces dernières années, cette domination a légèrement vacillé en raison des affirmations similaires d'un langage de programmation comme Java, mais le pendule de l'opinion publique a basculé dans l'autre sens, et de nombreux programmeurs qui ont abandonné le C++ pour Java se sont récemment précipités vers son ancienne affection. Dans tous les cas, les deux langues se ressemblent tellement qu’une fois qu’on apprend l’une, on maîtrise automatiquement 90 % de l’autre.

C# est un nouveau langage développé par Microsoft pour la plateforme réseau. Essentiellement, C# est une variante du C++, et malgré un certain nombre de différences fondamentales, les langages C# et C++ sont identiques à environ 90 %. Il faudra probablement beaucoup de temps avant que C# rivalise sérieusement avec C++ ; mais même si cela se produit, la connaissance du langage C++ constituera un avantage non négligeable.

C++ est un langage de programmation à usage général. Son domaine naturel d’application est la programmation système, entendue au sens large du terme. De plus, le C++ a été utilisé avec succès dans de nombreux domaines d’application qui dépassent largement ce cadre. Les implémentations de C++ sont désormais disponibles sur toutes les machines, des micro-ordinateurs les plus modestes aux plus grands superordinateurs, et sur pratiquement tous les systèmes d'exploitation.

L'émergence et l'évolution du langage C++

Bjarne Stroustrup est le développeur du langage C++ et le créateur du premier traducteur. Il est employé du centre informatique de recherche des laboratoires AT&T Bell à Murray Hill (New Jersey, États-Unis). Il est titulaire d'une maîtrise en mathématiques et en informatique de l'université d'Aarus (Danemark) et d'un doctorat en informatique de l'université de Cambridge (Angleterre). Il se spécialise dans les systèmes distribués, les systèmes d'exploitation, la modélisation et la programmation. Avec M. A. Ellis, il est l'auteur du guide définitif du langage C++, The Annotated C++ Manual.

Bien entendu, le C++ doit beaucoup au langage C, qui en reste un sous-ensemble. Tous les outils C de bas niveau conçus pour résoudre les problèmes les plus urgents de programmation système ont également été préservés. Le C, quant à lui, doit beaucoup à son prédécesseur, le langage BCPL. Le commentaire du langage BCPL a été restauré en C++. Une autre source d'inspiration était le langage SIMULA-67 ; c'est à elle que fut emprunté le concept de classes (ainsi que les classes dérivées et les fonctions virtuelles). La capacité du C++ à surcharger les opérateurs et la liberté de placer des déclarations partout où un opérateur peut apparaître rappellent le langage ALGOL-68.

Des versions antérieures du langage, appelées « C avec classes », ont été utilisées à partir de 1980. Ce langage est apparu parce que l'auteur avait besoin d'écrire des programmes de simulation pilotés par interruption. Le langage SIMULA-67 est idéal pour cela, efficacité mise à part. Le langage C avec classes a été utilisé pour de gros problèmes de modélisation. À cette époque, les possibilités d'écrire des programmes pour lesquels le temps et les ressources mémoire étaient critiques étaient soumises à des tests stricts. Ce langage manquait de surcharge d'opérateurs, de références, de fonctions virtuelles et de nombreuses autres fonctionnalités. C++ a été publié pour la première fois en dehors du groupe de recherche de l'auteur en juillet 1983, mais de nombreuses fonctionnalités de C++ n'avaient pas encore été développées.

Le nom C++ (C plus plus) a été inventé par Rick Mascitti à l'été 1983. Le nom reflète la nature évolutive des changements intervenus dans le langage C. La notation ++ fait référence à l'opération de croissance du C. Le nom légèrement plus court C+ est une erreur de syntaxe. De plus, il a déjà été utilisé comme nom d’une langue complètement différente. Les experts en sémantique C trouvent le C++ pire que le ++C. Le langage ne s'appelle pas D car il s'agit d'une extension de C et ne tente pas de résoudre aucun problème en éliminant les fonctionnalités de C. Une autre interprétation intéressante du nom C++ peut être trouvée dans l'annexe de .

C++ a été conçu à l'origine pour que l'auteur et ses amis n'aient pas à programmer en langage assembleur, en C ou dans d'autres langages modernes de haut niveau. Son objectif principal est de simplifier et de rendre le processus de programmation plus agréable pour le programmeur individuel. Jusqu’à récemment, il n’existait aucun projet de développement C++ sur papier. La conception, la mise en œuvre et la documentation se sont déroulées en parallèle. Il n'y a jamais eu de « projet C++ » ou de « comité de développement C++ ». Le langage a donc évolué et continue d’évoluer de manière à surmonter tous les problèmes rencontrés par les utilisateurs. Les discussions de l’auteur sur tous les problèmes avec ses amis et collègues servent également d’impulsion au développement.

Depuis la publication de la première édition de ce livre, le langage C++ a subi d'importants changements et améliorations. Cela concerne principalement la résolution d’ambiguïté en matière de surcharge, de liaison et de gestion de la mémoire. Cependant, des modifications mineures ont été apportées pour augmenter la compatibilité avec le langage C. Certaines généralisations et extensions significatives ont également été introduites, telles que l'héritage multiple, les fonctions membres avec des spécifications statiques et const, les membres protégés, les modèles de type et la gestion des situations spéciales. Toutes ces extensions et améliorations visaient à faire du C++ un langage dans lequel des bibliothèques peuvent être créées et utilisées. Tous les changements sont décrits dans .

Autres extensions introduites entre 1985 et 1991 (tels que l'héritage multiple, les fonctions membres statiques et les fonctions virtuelles pures) sont issus de la généralisation de l'expérience de programmation C++ plutôt que d'autres langages.

Les extensions de langage réalisées au cours de ces six années visaient principalement à accroître l'expressivité du C++ en tant que langage d'abstraction de données et de programmation orientée objet en général, et en tant que moyen de créer des bibliothèques de haute qualité avec des types de données définis par l'utilisateur en particulier.

Vers 1987, il est devenu évident que les travaux de normalisation du C++ étaient imminents et qu’ils devaient commencer immédiatement.

Les laboratoires AT&T Bell ont été un contributeur majeur à ces travaux. Une centaine de représentants d'une vingtaine d'organisations ont examiné et commenté ce qui est devenu la version moderne du manuel de référence et le matériel source pour la normalisation ANSI. C++. Enfin, à l'initiative de Hewlett-Packard, le comité X3J16 est constitué au sein de l'ANSI en décembre 1989. Il est prévu que les travaux de normalisation ANSI (American Standard) pour C++ fassent partie des travaux de normalisation ISO (Organisation internationale de normalisation).

Le C++ s'est développé simultanément avec le développement de certaines classes fondamentales.

Quand votre réputation travaille à votre profit

Gestionnaire de communauté

Création du ton de la voix. Traitement rapide des commentaires négatifs et positifs de la part de la marque. Gestion de la communication selon des scénarios spécifiés. Traduction des problèmes problématiques au client.

Agents d'influence

Création et mise en place de « virtuels » sur les forums et réseaux sociaux. Il existe une base de données de comptes mis à niveau et en direct sur plus de 300 sites.

Travailler avec des avis

Rédaction, coordination et publication d'avis sur la marque sur les principales plateformes et sites d'avis. Traiter et couvrir les commentaires négatifs par des commentaires positifs. En conséquence, la négativité est progressivement exclue des résultats de recherche.

Surveillance des médias sociaux

Travailler avec les systèmes Youscan, IQbuzz, Brand Analytics. Contrôle des mentions de marque. Identifier les informations clés et répondre rapidement à la négativité. Un outil indispensable pour suivre les retours clients.

Analyse et recherche

Analyse du champ informationnel, recherche de la catégorie de produits et des principaux concurrents de la marque. Cet outil couvre des tâches allant de la surveillance de la réputation et du marketing en temps réel à la recherche approfondie.

SERM

Analyse détaillée des résultats de recherche pour les mots-clés sélectionnés. Collecte de références sur le client sur les réseaux sociaux, forums et sites d'actualités. Élaborer une stratégie pour gérer les informations négatives. Le client reçoit une livraison entièrement contrôlée dans le TOP10.