Introduction - Pearson France

publicité
Introduction
Depuis que vous utilisez un ordinateur, vous avez très certainement entendu parler de cette activité
mystérieuse qui se nomme “programmer”, exercée par ces êtres étranges appelés “programmeurs”.
Tout ce que vous voyez sur votre écran est l’expression de programmes. Nous vous proposons, dans
cet ouvrage, de passer de l’autre côté de l’écran, de découvrir la programmation.
Un ordinateur est un outil, comme un tournevis. Mais un tournevis est fabriqué pour exécuter une
tâche précise et unique. Au contraire, un ordinateur est conçu pour être fortement modulable et
adaptable à pratiquement tous les contextes possibles. Pour cela, il a la capacité d’exécuter un certain
nombre d’ordres, plus communément appelés instructions, chacune correspondant à une tâche
simple et élémentaire. Programmer consiste à définir une succession ordonnée d’instructions
élémentaires devant être exécutées par la machine, pour obtenir l’accomplissement d’une tâche
complexe. Un aspect essentiel de la programmation est donc la mise en pratique de la méthode cartésienne : décomposer un problème complexe en sous-problèmes simples.
Mais peut-être vous demandez-vous : “Pourquoi programmer ?”
Simplement par jeu ! Écrire un programme et le voir s’exécuter, chercher pourquoi il ne fait pas ce
que vous attendiez est une activité ludique en soi.
Plus sérieusement, aussi bien en milieu professionnel que familial, on éprouve fréquemment le
besoin d’automatiser certaines choses répétitives et laborieuses, d’obtenir certains résultats, de
traiter certaines données pour lesquelles on ne dispose pas de logiciel tout prêt – ou alors ceux qui
existent sont mal adaptés ou trop onéreux à acquérir. Dans ce genre de situations, avoir la capacité
d’écrire un petit programme peut faire gagner beaucoup de temps et de précision, et limiter les
efforts. Voici un autre aspect important de la programmation : elle est bien souvent la meilleure
réponse à la paresse !
© 2011 Pearson France – Initiation à la programmation avec Python et C++ – Yves Bailly
Book_Prog_initia.indb 1
03/02/11 15:52
2
Initiation à la programmation avec Python et C++
Un peu d’histoire
Les premiers ordinateurs étaient programmés à l’aide de cartes perforées, les instructions étant
données sous la forme de longues suites de 0 et de 1 qu’il fallait entrer manuellement. Les programmeurs devaient se confronter directement au langage machine, c’est-à-dire au langage brut que
comprend la machine – qui n’a rien d’humain. Au milieu des années 1950 apparurent les premiers
langages de programmation, dont l’objectif primordial était de détacher le programmeur du langage
machine. Dès lors, les programmes sont écrits dans un dialecte relativement compréhensible respectant une syntaxe et une grammaire strictes et précises. Comme ces langages furent développés par
nos amis anglo-saxons, on pourrait les qualifier de langue anglaise très simplifiée.
Tandis que le langage machine est, par nature, très lié à l’électronique de l’ordinateur, le développement des langages de programmation a ouvert la voie de l’abstraction, principe fondamental qui
cherche à éloigner autant que possible le programmeur des contingences matérielles pour le rapprocher des concepts, de la “chose” concrète ou abstraite qu’il doit traiter. Lorsqu’on veut modéliser
informatiquement un moteur de voiture ou la courbe subtile d’une fonction mathématique, autant ne
pas trop s’encombrer l’esprit avec l’état moléculaire des transistors du microprocesseur…
C’est ainsi qu’au fil du temps différents paradigmes (ensembles de règles et de principes de conception) de programmation se sont développés. Programmation structurée, fonctionnelle, orientée
objet… À chaque évolution, l’objectif est toujours le même : permettre la meilleure représentation
informatique possible, la plus intuitive possible, de l’idée sur laquelle opère le programme.
On peut esquisser une sorte d’arbre généalogique des langages de programmation. En donner une
liste exhaustive est pratiquement impossible : des milliers sont – ou ont été – utilisés. La Figure I en
présente tout de même quelques-uns, les flèches indiquant les sources d’inspiration utilisées pour un
langage donné.
Figure I
Généalogie
simplifiée de
quelques langages
de programmation.
1960
1954
1970
1980
1990
2000
Fortran
Ada
Pascal
Modula
Algol
Python
C
Ruby
C++
Simula
C#
Eiffel
Lisp
Smalltalk
Java
Perl
Basic
VisualBasic
VB.NET
Cobol
Il ne s’agit là que d’une vue vraiment très simplifiée, presque caricaturale. Mais vous pouvez
constater que les langages s’inspirent fortement les uns des autres. Par ailleurs, la plupart de ceux
présentés sur ce schéma sont toujours utilisés et continuent d’évoluer – c’est, par exemple, le cas du
vénérable ancêtre Fortran, notamment dans les applications très gourmandes en calculs scientifiques.
© 2011 Pearson France – Initiation à la programmation avec Python et C++ – Yves Bailly
Book_Prog_initia.indb 2
03/02/11 15:52

Introduction
3
Le choix des langages
Il en va de la programmation comme de bien d’autres disciplines : c’est en forgeant que l’on devient
forgeron. Cette initiation s’appuiera donc sur deux langages de programmation appartenant à deux
grandes familles différentes : celle des langages interprétés et celle des langages compilés.
Python
C++
Le langage Python a été conçu en 1991, principalement par le Néerlandais Guido Van Rossum, comme
successeur du langage ABC, langage interactif luimême destiné à remplacer le langage Basic.
Le langage C++ a été conçu en 1983 par Bjarne
Stroustrup comme une extension du langage C,
langage proche de l’électronique et encore très largement utilisé, pour lui apporter les principes de la
POO (programmation orientée objet).
Le langage Python est un langage orienté objet interprété.
Les programmes écrits dans un langage interprété
ne sont pas directement exécutés par l’ordinateur,
mais plutôt par un interpréteur. Grossièrement,
l’inter­préteur lit les instructions du programme et les
transforme en instructions destinées à la machine.
L’interpréteur est donc toujours nécessaire pour
exécuter un programme en langage interprété.
Il figure aujourd’hui en bonne place dans de
nombreux domaines, de l’analyse scientifique à la
programmation de jeux en passant par la réalisation
rapide de petits outils spécialisés ou de sites web
dynamiques.
Le langage C++ est un langage orienté objet compilé.
Les programmes écrits dans un langage compilé
doivent subir une phase intermédiaire, la compilation,
à l’issue de laquelle on obtient un fichier directement
exécutable par la machine. La compilation est effectuée par un compilateur, qui n’est alors plus nécessaire dès que le fichier exécutable a été produit.
Le C++ est aujourd’hui l’un des langages les
plus utilisés dans le monde, dans toutes sortes de
contextes, notamment ceux où la rapidité d’exécution
est primordiale.
Bien qu’appartenant à deux familles différentes, ces deux langages partagent un point commun essentiel : ce sont des langages objet, c’est-à-dire des langages utilisant les techniques de la programmation
orientée objet. Nous verrons plus loin ce que ce terme sibyllin représente. Pour l’heure, disons simplement qu’il s’agit, de très loin, du paradigme de programmation le plus répandu dans le monde.
Et maintenant…
Que les impatients se rassurent, nous allons très bientôt passer à la pratique. Une première partie
présentera quelques-uns des concepts fondamentaux de la programmation au moyen de nombreux
exemples, à partir desquels nous construirons progressivement un véritable programme permettant
de jouer au problème des Tours de Hanoï (aussi appelé problème des Tours de Brahma). Cela après
avoir installé sur votre ordinateur les logiciels nécessaires, essentiellement l’interpréteur Python et
le compilateur C++.
Une deuxième partie nous emmènera plus loin dans l’exploration des techniques permettant la réalisation d’un logiciel, notamment en décrivant ce qu’est exactement cette mystérieuse programmation
objet. Nous aboutirons alors à un programme presque complet, disposant d’une interface graphique
attrayante (du moins, espérons-le !).
© 2011 Pearson France – Initiation à la programmation avec Python et C++ – Yves Bailly
Book_Prog_initia.indb 3
03/02/11 15:52
4
Initiation à la programmation avec Python et C++
Enfin, cet ouvrage se terminera par quelques pistes destinées à vous ouvrir de larges horizons, de
l’affichage en trois dimensions aux outils sophistiqués dédiés à la programmation, sans oublier une
petite présentation d’autres langages courants.
Nous n’aurons pas la prétention de vous faire devenir en quelques pages un ingénieur en développement logiciel : c’est un métier à part entière qui nécessite des années d’études et d’expériences. Ce
livre n’est en aucun cas un manuel pour apprendre les langages Python ou C++ : ceux-ci ne sont
utilisés que comme support des concepts généraux de la programmation, tels qu’ils se retrouvent
dans la plupart des langages de programmation. Les approches qui seront proposées ici ne seront pas
toujours les plus efficaces en termes de performances, mais nous recherchons avant tout la compréhension et l’acquisition des concepts. À l’issue de cette lecture, vous serez en mesure de créer vos
programmes pour vos propres besoins et d’aller chercher les informations qui vous manqueront
inévitablement. Ce sera alors pleinement à vous de jouer.
© 2011 Pearson France – Initiation à la programmation avec Python et C++ – Yves Bailly
Book_Prog_initia.indb 4
03/02/11 15:52
Téléchargement