II.5 Classification des Langages de Programmation10 La
figure 2.4 montre la classification des langages
Figure.2.4 classification de langag
Dans la classification, nous distinguons plusieurs types de
langages :
> Langages Impératifs: Langages
incluant des moyens pour le programmeur d'attribuer des valeurs à des
locations (Variables) en mémoire.
> Langages Déclaratifs: Langages
pour lesquels le programmeur réfléchit en terme de valeurs des
fonctions et de relations entre entités diverses. Il n'y a pas
d'attribution de valeurs aux variables.
> Programmation Procédurale: Le
programme est divisé en blocs qui peuvent contenir leurs propres
variables ainsi que d'autres blocs.
> Programmation Orientée Objet:
Programmation qui supporte l'interaction d'objets. Un objet contient des
données ainsi que des fonctions qui peuvent s'appliquer a ces
données.
> Programmation Concurrente: Langages de
programmation qui s'appliquent à plusieurs CPU 's qui opèrent en
parallèle. Les données peuvent être partagées ou
non.
> Programmation Fonctionnelle: Un
programme est un appel de fonction avec un certain nombre de paramètres,
qui eux-mêmes peuvent être des appels à d'autres fonctions.
Le programme renvoie donc un seul résultat, qui peut être assez
complexe.
10 J.-L. LAURIERE, Eléments de programmation
dynamique, Collection Programmation, Ed. Gauthier-Villars, Paris, 1979.
--' 21 --' II.6 Langage de programmation C++
II.6.1 Introduction11
Le C++ est un langage de programmation permettant la
programmation sous de multiples paradigmes comme la programmation
procédurale, la programmation orientée objet et la programmation
générique.
C++ est actuellement le 3e langage le plus
utilisé au monde. Le langage C++ n'appartient à personne et par
conséquent n'importe qui peut l'utiliser sans besoin d'une autorisation
ou obligation de payer pour avoir le droit d'utilisation.
II.6.2 Histoire
Bjarne Stroustrup a développé C++ au cours des
années 1980, alors qu'il travaillait dans le laboratoire de recherche
Bell d'AT&T. Il s'agissait en l'occurrence d'améliorer le langage C.
Il l'avait d'ailleurs nommé C with classes (<< C avec des
classes »). Les premières améliorations se
concrétisèrent donc par la prise en charge des classes, ainsi que
par de nombreuses autres fonctionnalités comme les fonctions virtuelles,
la surcharge des opérateurs, l'héritage (simple ou multiple), les
<< templates », la gestion des exceptions, etc.
Le langage C++ est normalisé par l'ISO. Sa
première normalisation date de 1998 (ISO/CEI 14882:1998), sa
dernière de 2003 (ISO/CEI 14882:2003). La normalisation de 1998
standardise la base du langage (Core Language) ainsi que la bibliothèque
standard de C++ (C++ Standard Library).
En langage C, ++ est l'opérateur
d'incrémentation, c'est-à-dire l'augmentation de la valeur d'une
variable de 1. C'est pourquoi C++ porte ce nom : cela signifie que C++ est un
niveau au-dessus du C. Il existe de nombreuses bibliothèques C++ en plus
de celle qui est incluse dans la norme. Par ailleurs, C++ permet l'utilisation
de l'ensemble des bibliothèques C existantes.
11 Bjarne Stroustrup, Le langage C++,
Pearson, 2000 [détail de l'édition]
La figure 2.4 montre Bjarne Stroustrup, l'inventeur de C++
Figure24 Bjarne Stroustrup, linventeur d 2.6.3 Histoire
de C++
Stroustrup a commencé à travailler sur C avec
classes en 1979. L'idée de créer un nouveau langage vient de
l'expérience en programmation de Stroustrup pour sa thèse de
doctorat. Stroustrup trouvait que Simula avait des fonctionnalités
très utiles pour le développement de gros programmes mais qu'il
était trop lent pour être utilisé en pratique (cela
était dû à un problème d'implémentation du
compilateur Simula), tandis que BCPL était rapide mais de trop bas
niveau et non adapté au développement de gros logiciels. Quand
Stroustrup commença à travailler aux laboratoires Bell, on lui
demanda d'analyser le noyau UNIX en vue de faire du calcul distribué. Se
rappelant sa thèse, Stroustrup commença à améliorer
le langage C avec des fonctionnalités similaires à celle de
Simula. C fut choisi parce qu'il est rapide, portable et d'usage
général. En outre, il était une bonne base pour le
principe original et fondateur de C++ : << vous ne payez pas pour ce que
vous n'utilisez pas ». Dès le départ, le langage ajoutait
à C la notion de classe (avec encapsulation des données), de
classe dérivée, de vérification des types renforcés
(typage fort), d'<< inlining », et d'argument par
défaut.12
Comme Stroustrup développait C avec classes, il
écrivit CFront, un compilateur qui générait du code source
C à partir de code source C avec classes. La première
commercialisation se fit en octobre 1985.
En 1983, le nom du langage passa de C avec classes à
celui de << C++ ». Parmi les nouvelles fonctionnalités qui
furent ajoutées au langage, il y avait les fonctions virtuelles, la
surcharge des opérateurs et des fonctions, les références,
les constantes, le contrôle du typage amélioré et les
commentaires en fin de ligne. En 1985 fut publiée la première
édition de The C++ programming Language, apportant ainsi une
référence importante au langage qui n'avait pas encore de
standard officiel. En 1989, c'est la sortie de la version 2.0 de C++. Parmi les
nouvelles fonctionnalités,
il y avait l'héritage multiple, les classes abstraites,
les fonctions membres statiques, les fonctions membres constantes, et les
membres protégés. En 1990, The Annotated C++ Reference
Manual (« ARM ») fut publié apportant les bases du futur
standard. Les ajouts de fonctionnalités tardifs qu'il comportait
couvraient les modèles, les exceptions, les espaces de noms, les
nouvelles conversions et le type booléen.
Comme le langage C++ évoluait, la bibliothèque
standard évoluait de concert. La première addition à la
bibliothèque standard de C++ concernait les flux
d'entrées/sorties qui apportaient les fonctionnalités
nécessaires au remplacement des fonctions C traditionnelles telles que
printf et scanf. Ensuite, parmi les additions les plus importantes, il y avait
la Standard Template Library.
Après des années de travail, un comité
réunissant l'ANSI et l'ISO standardisa C++ en 1998 (ISO/CEI 14882:1998),
l'année où le comité de standardisation se
réunissait à Sophia Antipolis dans le sud de la France. Pendant
quelques années après la sortie officielle du standard, le
comité traita le rapport de problèmes et publia une version
corrigée du standard C++ en 2003.Personne ne possède le langage
C++. Il est libre de droit. Le document de standardisation n'est quant à
lui pas disponible gratuitement.
2.6.4 La bibliothèque standard (C++ standard
library)
La Bibliothèque standard du C++ est en grande partie un
sur-ensemble des fonctions disponibles dans la bibliothèque standard du
C. Elle englobe la Standard Template Library (STL) qui met à la
disposition du programmeur des outils puissants comme les collections
(conteneurs) et les itérateurs.
À l'origine, la STL était une
bibliothèque développée par Alexander Stepanov qui
travaillait pour Hewlett-Packard. Dans la norme, celle-ci n'est pas
appelée STL, car elle est considérée comme faisant partie
de la bibliothèque standard du C++. Toutefois, beaucoup de personnes
l'appellent encore de cette manière pour distinguer d'une part, les
fonctions d'entrées/sorties comprises dans cette bibliothèque et,
d'autre part, celles fournies par la bibliothèque C. Comme en C,
l'utilisation d'une bibliothèque se fait par l'intermédiaire de
la directive #include (suivie du nom du fichier d'en-tête).
2.6.5 Fonctionnalités introduites par C++
On peut considérer que C++ « est du C » avec
un ajout de fonctionnalités. Une remarque importante est à faire
cependant : certains programmes syntaxiquement corrects en C ne le sont pas en
C++.
~ 24 ~
Les fonctionnalités ajoutées sont :
· les déclarations reconnues comme instructions
(repris dans C99) ;
· les opérateurs new et delete pour la gestion
d'allocation mémoire ;
· le type de données bool (booléen) ;
· les références ;
· le mot clé const pour définir des
constantes (repris par C à la fin des années 1980) ;
· les fonctions inline (repris dans C99) ;
· les paramètres par défaut dans les
fonctions ;
· les référentiels lexicaux (Espace de noms)
et l'opérateur de résolution :: ;
· les classes, ainsi que tout ce qui y est lié :
l'héritage, les fonctions membres, les fonctions membres virtuelles, les
constructeurs et le destructeur ;
· la surcharge des opérateurs ;
· les templates ;
· la gestion d'exceptions ;
· l'identification de type pendant l'exécution (RTTI
: run-time type identification) ;
· le commentaire de fin de ligne introduit par « //
» (existant dans BCPL, repris dans C99).
La compilation d'un programme en C++ effectue également
un contrôle plus minutieux sur le typage.
2 .6.6 La programmation orientée objet en
C++13
C++ utilise les concepts de la programmation orientée
objet et permet entre autres :
· La classification,
· L'encapsulation,
· La composition de classes,
· L'association de classes,
· L'héritage, qui permet le polymorphisme,
· L'abstraction,
· La généricité,
· La méta-programmation
13 Aurélien Geron, Fatmé Tawbi,
Pour mieux développer avec C++, Edition DUNOD 1999, (ISBN
978-2-10-007348-1)
L'encapsulation en C++
L'encapsulation permet de faire abstraction du fonctionnement
interne (c'est-à-dire, la mise en oeuvre) d'une classe et ainsi de ne se
préoccuper que des services rendus par celle-ci. C++ met en oeuvre
l'encapsulation en permettant de déclarer
les membres d'une classe avec le mot réservé
public, private ou protected. Ainsi, lorsqu'un membre est déclaré
:
· public, il sera accessible depuis n'importe quelle
fonction.
· private, il sera uniquement accessible d'une part,
depuis les fonctions qui sont membres de la classe et, d'autre part, depuis les
fonctions autorisées explicitement par la classe (par
l'intermédiaire du mot réservé friend).
· protected, il aura les mêmes restrictions que s'il
était déclaré private, mais il sera en revanche accessible
par les classes filles.
C++ n'impose pas l'encapsulation des membres dans leurs
classes. On pourrait donc déclarer tous les membres publics, mais en
perdant une partie des bénéfices apportés par la
programmation orientée objet. Il est de bon usage de déclarer
toutes les données privées, ou au moins protégées,
et de rendre publiques les méthodes agissant sur ces données.
Ceci permet de cacher les détails de la mise en oeuvre de la classe.
Une importante notion de C++ est les espaces de noms (names
paces). Dans un espace de noms sont définis des noms de fonctions et de
variables. Ce mécanisme permet de résoudre les
ambiguïtés lorsque plusieurs variables provenant de
différents composants sont homonymes. Pour recourir à une
fonction d'un espace de nom, l'opérateur de résolution de
portée est utilisé.
La figure 2.5 présente l'interface utilisateur de l'IDE
code bloc Dev-C++
La figure 2.5 l'interface du l'IDE Dev-C++
Dev-C++ est un environnement de développement
intégré (IDE) permettant de programmer en C et en C++. Il semble
être abandonné mais une équipe de développement a
repris le projet sous le nom WxDev-C++. Dev-C++ est disponible uniquement sous
Microsoft Windows.
Il utilise la version MinGW du compilateur GCC (GNU Compiler
Collection) (venu du monde du logiciel libre) et permet d'exporter ses projets
sous fichiers .dev. Dev-C++ peut aussi être utilisé en
combinaison avec Cygwin ou tout autre compilateur basé sur GCC.
Cet IDE complet comprend entre autres un «
répertoire de classes », servant à localiser facilement les
fonctions, classes et membres du code source, un « répertoire de
fonctions incluses », fonctionnant comme le répertoire de classes
mais pour chercher dans les fichiers inclus (header), et un débogueur
qui permet de surveiller l'état des variables pendant l'exécution
du programme. Il souffre en revanche de l'absence d'un éditeur de
ressources, ce qui rend la conception d'applications délicate si on ne
fait pas appel à un outil externe.
Visual C++
Visual C++ est un environnement de développement
intégré pour Windows, conçu par Microsoft pour les
langages de programmation C et C++ et intégrant différents outils
pour développer, compiler, déboguer un programme en C++
s'exécutant sur Windows, ainsi que des bibliothèques comme les
MFC.
Il a par la suite été intégré au
Framework Visual Studio, qui constitue ainsi un cadre unique aux divers
environnements de développements de Microsoft. Le terme de Visual C++
est toutefois toujours employé pour désigner l'ensemble
constitué par Visual Studio configuré pour C et C++.
2.6.7 Visual Basic 1.
Introduction
Cette partie concerne le langage Visual Basic,
commercialisé avec Microsoft Visual Studio 6.0 et antérieur. Pour
la version de Visual Basic commercialisée avec Microsoft Visual Studio.
Nous pourrons éventuellement le doter d'un numéro de série
"intelligent" permettant de créer une protection logicielle assez
sophistiquée pour rebuter la majorité des casseurs de code.
Quoique cette première tâche soit légère, elle va
vous donner l'opportunité d'apprendre les bases de Visual Basic sans
vous inquiéter des questions de conceptions et des concepts de
programmation appliqués dans les réalisations plus complexes.
Visual Basic (VB) est un langage de programmation
événementielle de troisième génération ainsi
qu'un environnement de développement intégré,
créé par Microsoft pour son modèle de programmation COM.
Visual Basic est directement dérivé du BASIC et permet le
développement rapide d'applications, la création d'interfaces
utilisateur graphiques, l'accès aux bases de données en utilisant
les technologies DAO, ADO et RDO, ainsi que la création de
contrôles ou objets ActiveX. Les langages de script tels que Visual Basic
for Applications et VBScript sont syntaxiquement proches de Visual Basic, mais
s'utilisent et se comportent de façon sensiblement différente.
Un programme en VB peut être développé en
utilisant les composants fournis avec Visual Basic lui-même. Les
programmes écrits en Visual Basic peuvent aussi utiliser l'API Windows,
ceci nécessitant la déclaration dans le programme des fonctions
externes.
Visual Basic est un des langages les plus utilisés
pour l'écriture d'applications commerciales, c'est-à-dire
d'applications ne faisant que manipuler des chiffres et des lettres. Ce BASIC
est particulièrement adapté à cet usage, pas
d'accès système, pas de performances critiques,
développement rapide, compétences apparemment faibles. Le
défaut étant justement sa facilité de mise en oeuvre : un
débutant VB pourra rapidement faire un programme opérationnel
mais souvent tellement mal fait (sans analyse, structures ni règles,
sans même la moindre expérience en programmation parfois...) qu'il
sera difficilement maintenable par la suite. Beaucoup
de projets VB sont à refaire entièrement car ils
ont été trop mal faits par des débutants.
Dans une étude conduite en 2005, 62% des
développeurs déclaraient utiliser l'une ou l'autre forme de
Visual Basic. Actuellement, les langages les plus utilisés dans le
domaine commercial sont Visual Basic, C++, C#, Java.
La dernière mise à jour de Visual Basic est la
version 6.0, sortie en 1998. Le support étendu Microsoft a pris fin en
2008. À partir de la version 7, le Visual Basic subit des changements
substantiels le rapprochant de la plate-forme « dot Net », et qui
amènent Microsoft à le commercialiser sous le nom de Visual Basic
.NET.
|