Introduction à lʼinformatique

publicité
Généralités
Introduction à lʼinformatique
Lʼinformatique peut se définir comme lʼensemble des sciences et des techniques qui portent sur
lʼordinateur et le traitement par lʼordinateur dʼinformations quantifiables de tout type.
Aho et Ullman ont une autre vision : pour eux, cʼest la science de la
mécanisation de lʼabstraction.1 En informatique, on cherche à résoudre
au moyen de lʼordinateur des problèmes modélisés puis reconstruits
sous une forme qui permet un traitement automatique sur lʼordinateur.
En pratique — mais seulement en pratique ! — lʼinformatique est
indissociable de lʼordinateur.
Lʼinformatique
Lʼordinateur
Les grands systèmes
Les serveurs
Sciences et techniques
Les sciences informatiques sʼintéressent aux aspects théoriques de lʼinformatique, cʼest-à-dire à
des problèmes comme la calculabilité, lʼexactitude ou la faculté de représenter un objet réel par un
modèle qui peut être traité par ordinateur. Par exemple :
• lʼordinateur peut-il exécuter nʼimporte quelle tâche ? Sinon, peut-on déterminer ce qui est
calculable et ce qui ne lʼest pas ?
• Peut-on prouver que telle ou telle façon de résoudre un problème informatique est correcte ? Si
oui, comment ?
Les techniques informatiques (information technology ou IT), elles, décrivent les applications de
ces connaissances théoriques dans toutes sortes de domaines. Certaines ne concernent que les
professionnels de lʼinformatique, comme celle-ci :
• quels sont les moyens de résoudre un problème de programmation donné ? Parmi ces moyens,
quel est le meilleur du point de vue de la lisibilité ? Et du point de vue des performances ?
Dʼautres intéressent tous les utilisateurs dʼordinateurs, quʼils soient ou non informaticiens. Par
exemple :
• quelle logique de dialogue faut-il mettre en place pour que les applications bureautiques comme
le tableur ou le traitement de texte soient aussi simples dʼemploi que possible ?
La notion dʼordinateur
Lʼélément central de la définition de lʼinformatique est lʼordinateur. Cʼest un processeur
dʼinformations, une machine à traiter des informations. Lʼordinateur est une machine unique en
son genre, car il ne gère que des objets abstraits.
1
Alfred V. Aho et Jeffrey d. Ullman, Foundations of Computer Science, Computer Science Press, New York,
1992, p. 1.
Introduction à lʼinformatique
1
http://www.jaquet.org, octobre 2009
Il travaille en trois étapes : lʼinterprétation, lʼexécution et la transmission des résultats.
Lʼétape de lʼinterprétation correspond à la compréhension chez lʼêtre humain, comme dans le fait
de savoir lire lʼinstruction « introduire le ticket dans la position indiquée sur le schéma » et de
donner un sens à ces mots.
Lʼétape de lʼexécution correspond à la mise en oeuvre, comme dans lʼaction dʼintroduire le ticket
de la manière indiquée.
Lʼétape de la transmission des résultats correspond à la communication, comme dans le
message « reprenez votre ticket ».
Techniquement, un ordinateur peut se définir comme une machine dotée de quatre
caractéristiques : la programmabilité, le traitement dʼinformations, le traitement numérique et la
construction électronique.
La programmabilité est la capacité de lʼordinateur de traiter une suite de plusieurs instructions.
Le traitement dʼinformation signifie que lʼordinateur travaille sur des informations (en notant
quʼelles doivent être existantes ; un ordinateur ne peut pas en créer).
Le traitement numérique signifie que lʼordinateur gère des informations discrètes, non continues.
La construction électronique renvoie au fait que les ordinateurs actuels sont électroniques.
La programmabilité et le traitement dʼinformations sont les deux caractéristiques essentielles de
lʼordinateur. Sans moyens de suivre les instructions dʼun programme et de traiter des informations,
un ordinateur ne pourrait rien faire dʼutile.
Les deux autres caractéristiques sont moins fondamentales. Le fait quʼun ordinateur soit
numérique ne tient quʼà la difficulté de concevoir un ordinateur analogique qui offre un bon rapport
efficacité-prix.
Quant au fait quʼil soit électronique, cʼest sans grand intérêt, dans la mesure où la technique de
construction importe peu ; cʼest la logique de fonctionnement qui compte. Ainsi, au XIXe siècle, le
mathématicien anglais Babbage a conçu un ordinateur mécanique, et, dans les années 1940,
lʼAllemand Zuse a construit un ordinateur électromécanique. Actuellement, des chercheurs
travaillent sur les techniques optiques. Chaque fois, il sʼagit pourtant clairement dʼun ordinateur.
Bien quʼil ait été conçu vers 1830, lʼAnalytical Engine de Babbage pourrait faire tourner les
programmes que nous utilisons aujourdʼhui. Simplement, il le ferait beaucoup plus lentement.
La notion dʼalgorithme
La notion dʼalgorithme est centrale en informatique, mais on la rencontre dans tous les domaines
dʼactivité humaine : on coud une robe selon lʼalgorithme fourni par des instructions de travail, sur la
base dʼun patron ; on construit un modèle réduit en suivant les instructions dʼassemblage ; on
exécute une sonate en se conformant à une partition.2 On appelle processeur lʼagent qui exécute
un algorithme — un processeur peut donc être une personne, un animal, une plante, une machine,
etc.
2
Les Goldschlager et Andrew Lister, Computer Science, Prentice Hall, New York, 1988, p. 2.
Introduction à lʼinformatique
2
http://www.jaquet.org, octobre 2009
Lʼalgorithme décrit une méthode de résolution dʼun problème, sous la forme dʼune suite dʼétapes
décrite par des règles. Cette suite dʼétapes est :
• non ambiguë ;
• ordonnée ;
• finie.
On rencontre des algorithmes partout où des problèmes solubles existent, mais il en existe de
bons et de mauvais. Un exemple dans la vie courante est celui de la serveuse à qui on a
commandé quatre cafés et un thé, qui revient avec les boissons et qui demande quatre fois « un
café, pour qui ? » avant de terminer en donnant le thé, alors que le meilleur algorithme aurait
évidemment voulu que la serveuse se contente de la question « le thé, cʼest pour qui ? » avant de
servir leur café aux autres personnes.
Le chemin suivi par lʼalgorithme peut aussi être difficile à trouver. Cʼest le cas du paradoxe du
barbier, selon lequel il y a, dans un certain village, un barbier qui rase tous les hommes qui ne se
rasent pas eux-mêmes et seulement ceux-là. La question est : le barbier se rase-t-il lui-même ?
Puisque tout homme du village nʼest rasé par le barbier que sʼil ne se rase pas lui-même, on peut
en déduire que le barbier ne se rase lui-même que sʼil ne se rase pas lui-même, ce qui est
incohérent. Comment résoudre ce paradoxe ? On peut montrer quʼil y confusion de niveau, que le
barbier ne peut être vu ni comme un élément de la classe des hommes qui se rasent eux-mêmes
ni comme un élément de celle des hommes qui ne se rasent pas eux-mêmes, car les éléments de
ces classes forment les objets sur lesquels il agit en tant que sujet. Il se situe donc à un niveau audessus du leur. En fait, il ne peut pas exister de barbier qui rase tous les hommes qui ne se rasent
pas eux-mêmes et seulement ceux-là.
Fréquemment, il nʼexiste tout simplement pas dʼalgorithme pour résoudre un problème. Se
trouvent dans ce cas les innombrables questions qui se posent dans des termes étrangers à
lʼalgorithmique : la mer est-elle plus belle que la montagne ? Y a-t-il des guerres justes ? Que se
passera-t-il demain ?
Même dans les domaines techniques, il existe des problèmes impossibles à résoudre. Il y a, par
exemple, en mathématique, le dixième problème dʼHilbert, qui date de 1900 : existe-t-il un
algorithme qui permet de décider si une équation diophantienne admet ou non des solutions en
nombres entiers ? (en simplifiant, une équation diophantienne est un polynôme dont la somme des
termes est égale à zéro et dont les coefficients et les exposants sont des nombres entiers ; x = 0
en constitue un exemple ; ax2 - 3y2 - 1 = 0 un autre). Actuellement, on ne sait toujours pas si cet
algorithme existe.
Algorithmes universels
Voici un exemple dʼalgorithme universel, cʼest-à-dire dʼalgorithme applicable partout et toujours :
Préparation du thé à la menthe
Faire bouillir un litre dʼeau
Mettre 3 cuillères à soupe de thé vert dans une théière de ¾ de litre.
Verser un décilitre dʼeau bouillie dans la théière.
Laisser repose 30 secondes.
Jeter le thé obtenu.
Introduction à lʼinformatique
3
http://www.jaquet.org, octobre 2009
Remplir la théière dʼeau bouillie.
Chauffer à petit feu jusquʼà ce que les feuilles de thé montent à la surface. Ne pas laisser bouillir.
Retirer la théière du feu.
Froisser une poignée de menthe fraîche et lʼajouter dans la théière.
Ajouter du sucre selon goût (par exemple seize morceaux).
Cet algorithme a un caractère universel dans le sens où il peut être exécuté correctement sur
nʼimporte quel moyen de chauffage en état de fonctionnement.
Une remarque : la condition « en état de fonctionnement » est évidente pour un être humain, mais
il nʼen va pas de même pour un ordinateur. Rien ne va de soi pour une machine, et une des
difficultés de lʼinformatique consiste à gérer tous les cas susceptibles de conduire à une situation
dʼerreur. On dit dʼailleurs que, sʼil y a une possibilité dʼerreur, quelquʼun la trouvera.
Algorithmes non universels
Un algorithme qui nʼest pas applicable en général nʼest pas universel.
Dans certains cas, il sʼagit dʼune bévue, comme dans lʼinstruction Cuire au four sur position 3 où
« position 3 » ne veut rien dire pour les personnes qui nʼutilisent pas la même cuisinière. Dans
dʼautres cas, la non-universalité est volontaire et constitue un moindre mal, comme dans le cas
réel que voici : un administrateur de système informatique souhaitait installer sur les postes de
travail une certaine combinaison de produits formée dʼun système dʼexploitation et dʼun ensemble
de progiciels de bureautique comprenant une messagerie. La méthode devait être la suivante :
1. Installer le système dʼexploitation
2. Installer le logiciel dʼapplication.
Mais cela ne fonctionnait pas. Il y avait un problème dʼincompatibilité provoqué par la messagerie,
cela sans quʼon sache dʼoù il venait, ce qui ne permettait pas de résoudre le problème dʼune
manière systématique.
Lʼadministrateur a donc travaillé par essais et erreurs, ce qui a abouti à lʼalgorithme suivant :
1. Installer le système dʼexploitation
2. Installer la version précédente de la messagerie
3. Installer par dessus la nouvelle version de la messagerie
4. Installer le logiciel dʼapplication en désactivant lʼinstallation de la messagerie.
Cette approche tient du bricolage et nʼest pas satisfaisante pour lʼesprit, mais on est assez souvent
obligé dʼy recourir en informatique.
La notion dʼinformation
Dans le sens courant du terme, une information peut être définie comme tout ce qui est porté à
notre connaissance. « La réunion a lieu à dix heures » est une information.
Toutefois, les scientifiques ont une vision différente de lʼinformation : ils ne sʼattachent pas à sa
signification, mais à sa transmission (cf. notamment les travaux de D. McKay, C.E. Shannon, W.
Weaver et N. Wiener). Une information se définit comme ce qui est transmis par un signal. Cʼest
Introduction à lʼinformatique
4
http://www.jaquet.org, octobre 2009
une définition un peu bizarre, du genre de « le chien, cʼest si la bête aboie », mais elle présente
lʼintérêt de faire abstraction de la signification des informations.
Dans un ordinateur, tout se réduit à des impulsions électriques et à deux états : ouvert et fermé.
On symbolise ces deux états par les chiffres 0 et 1. Par exemple, les sept caractères qui
composent lʼexpression « un chat » se représentent en code ASCII par la séquence suivante de
nombres binaires :
1110101110111001000001100011110100011000011110100
Il est important de comprendre que le contenu de cette suite de bits échappe totalement à la
machine. Elle nʼen voit que la forme. Par exemple, les chaînes de caractères « un chat » et « un
terroriste » sont exactement pareilles pour un ordinateur. Lʼêtre humain et quelques rares animaux
sont seuls capables de voir les différences sémantiques entre les mots.
Cʼest, soit dit en passant, la raison pour laquelle la notion dʼ« intelligence artificielle » est une
idiotie. Croire à lʼintelligence artificielle, cʼest la même chose que de sʼimaginer quʼune chaîne Hi-Fi
a le sens musical.
La notion de donnée (data ou datum) est considérée ici comme synonyme de celle dʼinformation.
Avant les années 60, les spécialistes des théories de lʼinformation estimaient souvent que
lʼinformation était une forme structurée de la donnée, mais cette distinction nʼétait pas opératoire
parce que ce qui est vu comme une donnée dans un contexte particulier peut se percevoir comme
une information dans un autre contexte. La distinction entre les deux notions nʼa pas de lien avec
la nature de lʼobjet observé, mais avec le regard de lʼobservateur.
En informatique, une information ou une donnée peut se définir comme tout ensemble de bits
manipulable par lʼordinateur et compréhensible pour lʼêtre humain. Elle est formalisée de manière
à permettre au système informatique qui lʼabrite de la traiter, de la stocker et de la transmettre.
La notion de système informatique désigne lʼensemble formé de lʼordinateur, des périphériques
et du logiciel.
Principes architecturaux
Un système informatique a une architecture, cʼest-à-dire une apparence fonctionnelle. Ce que
nous, utilisateurs finals et utilisateurs informaticiens, voyons dʼun système informatique est son
architecture.
Une bonne architecture de système présente certaines caractéristiques.3
1. La cohérence (consistency) veut que la même logique sʼapplique partout, ce qui veut dire que,
si on connaît une partie du système, le reste peut être déduit. Par exemple, lʼaccès à une
fonction donnée doit être identique dans tous les programmes dʼapplication. Si la combinaison
de touches Ctrl-i a toujours pour résultat de mettre le texte en italique, quel que soit le
programme utilisé, la cohérence est respectée.
2. Lʼorthogonalité (orthogonality) prévoit que deux fonctions logiquement indépendantes doivent
être séparées dans leur fonctionnement. Par exemple, le fait que le bouton Arrêter ne sʼaffiche
3
G. A. Blaaw et F. P Brooks, Computer Architecture, Technical University of Twente, Twente, 1985.
Introduction à lʼinformatique
5
http://www.jaquet.org, octobre 2009
pas sur lʼécran dʼouverture de session de Windows 7 si on est en mode « Verrouillé » et quʼil
réapparaisse si on clique sur Changer dʼutilisateur constitue une violation de ce principe.
3. La propriété (propriety) veut que les fonctions dʼun système soient cohérentes avec ses
objectifs.
4. La parsimonie (parsimony) dérive de la propriété. Un système doit comprendre uniquement
les fonctions cohérentes avec ses objectifs.
5. La transparence (transparency) dérive également de la propriété. Elle prévoit que les détails
de mise en œuvre doivent être masqués dans la mesure du possible. Par exemple, sous Unix,
toutes les entités se présentent comme des fichiers, y compris les périphériques. Cʼest une
application du principe de transparence (et de celui de cohérence).
6. La généralité (generality) consiste à éviter de placer des barrières inutiles dans les fonctions.
Le matériel et le logiciel
Le matériel (hardware) réunit lʼensemble des composants physiques dʼun système informatique,
cʼest-à-dire tout ce quʼon peut voir et toucher : lʼordinateur, les périphériques et le petit matériel
(câbles, supports de données, papier pour les imprimantes, etc.).
Selon la définition de lʼISO (International Standards Organisation), le logiciel (software) est
constitué des programmes, des procédures, des règles et de la documentation informatique. Cʼest
une création intellectuelle indépendante du matériel.
LʼISO a une vision très large de ce quʼest le logiciel. Par exemple, le mode dʼemploi dʼun
traitement de texte, une procédure concernant la sauvegarde des données ou un principe
organisationnel concernant le choix des mots de passe en font partie.
Les données font-elles partie du logiciel ? La réponse dépend du sens quʼon donne aux mots. Une
donnée au sens large est une représentation quelconque qui utilise des signes et à laquelle on
peut donner une signification, ce qui veut dire que les programmes, les procédures, les règles et la
documentation en font partie, et que le logiciel est un sous-ensemble des données. Mais, en
informatique, le terme de données sʼemploie souvent dans un sens plus restreint, qui ne sʼapplique
quʼaux informations traitées par les programmes, cʼest-à-dire, par exemple, aux caractères gérés
par un système de traitement de texte, aux écritures traitées par un programme de comptabilité ou
aux formes vectorielles traitées par une application graphique. Dans ce sens restreint, les données
traitées sont gérées par le système informatique. Elles ne font pas partie du logiciel, mais elles
sont stockées sur la mémoire de la machine.
Les données constituent la raison dʼêtre même des systèmes informatiques. Cʼest pour les traiter
que lʼordinateur a été conçu, et toutes les tâches quʼil effectue se ramènent à des traitements de
données.
On distingue deux grandes catégories de logiciel : le logiciel de base et le logiciel dʼapplication.
1. Le logiciel de base se compose des programmes qui concernent le système informatique ou
lʼactivité professionnelle des informaticiens.
Introduction à lʼinformatique
6
http://www.jaquet.org, octobre 2009
2. Le logiciel dʼapplication regroupe les programmes qui concernent les activités des
utilisateurs finals, cʼest-à-dire des utilisateurs non informaticiens.
Il existe deux types dʼapplications :
• les programmes spécifiques, qui sont faits sur mesure pour un client ;
• les progiciels, que lʼon trouve prêts à lʼemploi dans le commerce.
Un progiciel sʼutilise sans modification et de manière autonome. Il comprend une documentation et
un service après-vente. Des produits comme Word ou Photoshop sont des progiciels.
Par contre, Linux, Windows ou un antivirus ne sont pas des progiciels parce quʼils font partie du
logiciel de base et non du logiciel dʼapplication.
Le système dʼexploitation
Le système dʼexploitation (operating system, OS) fournit les moyens de fonctionnement de
lʼordinateur en gérant la succession des tâches dans les processeurs, le partage de la mémoire
entre les tâches, les échanges avec les périphériques, lʼorganisation des fichiers, le dialogue avec
lʼutilisateur, etc.
Introduction à lʼinformatique
7
http://www.jaquet.org, octobre 2009
Le cœur du système dʼexploitation sʼappelle le noyau (kernel). Il sʼoccupe des trois tâches
fondamentales du système dʼexploitation : la gestion des processeurs centraux, de la mémoire et
des entrées-sorties. Ce sont les trois tâches indispensables, celles qui sont présentes dans tous
les systèmes dʼexploitation.
1. La gestion des processeurs centraux concerne lʼordonnancement des tâches (quels
programmes sont traités, pendant combien de temps, selon quelle méthode de roulement,
etc.).
2. La gestion de la mémoire porte sur lʼallocation de mémoire à chaque programme en
exécution (stockage des programmes et des données).
3. La gestion des entrées-sorties concerne les échanges entre lʼunité centrale et les
périphériques.
En règle générale, le noyau travaille en mode superviseur, ce qui signifie quʼil a tout pouvoir sur
lʼordinateur. Le reste du logiciel travaille en mode utilisateur, ce qui veut dire quʼil ne peut pas
faire ce quʼil veut. Par exemple, une directive dʼallocation de mémoire doit être émise en mode
superviseur pour être exécutée.
Autour du noyau, il y a la superstructure. Elle regroupe généralement deux tâches : la gestion
des fichiers et lʼinterface avec lʼutilisateur.
4. La gestion des fichiers concerne la structure du stockage des fichiers sur les mémoires
externes (disques durs, clés USB, CD, DVD, etc.). Sous Windows, cʼest Explorer qui permet à
lʼutilisateur de gérer ses fichiers, et, sous Mac OS, cʼest le Finder.
5. La gestion de lʼinterface avec lʼutilisateur porte sur la logique de dialogue avec lʼutilisateur. Il
y a trois possibiités : lʼinterface par commandes ou CLI (Command Language Interface),
lʼinterface par menus et lʼinterface graphique ou GUI (Graphical User Interface). Les trois
logiques sʼemploient en parallèle.
Les systèmes dʼexploitation les plus connus du grand public sont ceux de la famille Windows. Sur
les postes de travail, ce sont XP, Vista et Windows 7, et, sur les petits et moyens serveurs, 2003 et
2008.
Lʼautre grande famille de systèmes dʼexploitation est celle de Unix. En font notamment partie les
systèmes dʼexploitation Solaris, HP-UX, Linux et BSD. Ils sʼemploient peu sur les postes de travail
et beaucoup sur les serveurs de toute taille. Linux est le système dʼexploitation de la plupart des
superordinateurs.
Un grand ordinateur Unix coûte plusieurs millions dʼeuros. Il est capable de traiter des millions de
transactions par jour pour des milliers dʼutilisateurs simultanés.
Il existe dʼautres systèmes dʼexploitation, mais ils sont beaucoup moins répandus que Windows et
Unix. Lʼexemple le plus connu est z/OS, le dernier environnement IBM de la famille MVS.
Les programmes de service
Aussi appelés utilitaires (utility programs), les programmes de service sont complémentaires du
système dʼexploitation. Ils fournissent des services quʼon considère comme non essentiels, raison
Introduction à lʼinformatique
8
http://www.jaquet.org, octobre 2009
pour laquelle on ne les place pas dans le système dʼexploitation. Toutefois, les systèmes
dʼexploitation tendent à les absorber. Par exemple, les navigateurs web étaient considérés comme
des programmes de service, mais on commence à les voir comme des parties intégrantes du
système dʼexploitation.
Parmi les programmes de service, certains sʼemploient sur les serveurs. Cʼest le cas, notamment,
des programmes de sauvegarde et des utilitaires de gestion des données. Dʼautres sʼutilisent sur
les postes de travail, comme les programmes antispyware et antispam. Dʼautres encore, comme
les antivirus, concernent aussi bien les serveurs que les postes de travail.
Les programmes de services se différencient des programmes dʼapplication par le fait quʼils ne
concernent pas le métier des utilisateurs. Ils concernent le système informatique et fournissent des
services généraux.
Les langages de programmation
Les langages de programmation sont des ensembles artificiels de règles et de signes qui
permettent aux êtres humains de faire exécuter des tâches par les ordinateurs.
Il existe deux familles de langages : les langages interprétés et les langages compilés.
1. Avec les langages interprétés, on écrit un programme dans le langage choisi (par exemple,
Python ou Ruby) et on le laisse sous cette forme, qui sʼappelle le code source, et qui est
lisible pour lʼêtre humain. Pour lʼexécuter, il faut disposer dʼun interpréteur, un logiciel dont la
fonction consiste à lire le code source, ligne après ligne, et à traduire chaque commande en
langage-machine, qui est le seul langage que lʼordinateur peut traiter.
2. Avec les langages compilés, on commence aussi par écrire le programme en code source,
mais on passe ensuite le source dans un logiciel appelé compilateur, qui le transforme en
code exécutable. Cette forme de code est illisible pour lʼêtre humain, mais lʼordinateur peut
traiter le programme qui en résulte sans lʼaide dʼun interpréteur.
Voici quelques langages importants :
• Fortran (1957), très utilisé en informatique scientifique jusquʼà aujourdʼhui. Les prévisions météo
sont très souvent faites en Fortran.
• Lisp (1958), un langage au formalisme inhabituel, qui garde un cercle dʼutilisateurs. Sous le nom
dʼAutoLisp, cʼest toujours le langage principal du logiciel de dessin technique AutoCAD.
• Cobol (1960), le langage le plus utilisé en gestion jusquʼaux années 1990. Il reste de
nombreuses applications en Cobol.
• Basic (1963), un langage populaire mais mal conçu (la numérotation des lignes de code et la
commande GOTO sont deux des idées les plus mauvaises de lʼhistoire de lʼinformatique). Il en
existe une forme débarrassée de ces tares : Visual Basic.
• C (1972), le langage le plus populaire dans les années 1990. Il est remplacé par le C++, mais
beaucoup de programmeurs utilisent le C++ comme si cʼétait du C.
• C++ (1983), toujours très utilisé dans lʼindustrie du logiciel.
• Perl (1987), répandu dans le monde du web.
Introduction à lʼinformatique
9
http://www.jaquet.org, octobre 2009
• Java (1995). Cʼest le langage le plus populaire actuellement parce quʼil est universel : il
fonctionne sur pratiquement toutes les plates-formes informatiques (Microsoft, Mac OS, Linux,
etc.) ainsi que sur dʼautres types de systèmes (téléphones, électronique grand public, etc.).
• Javascript (1995), répandu dans le monde du web. Malgré son nom, ce langage nʼa rien à voir
avec Java et il ne lui ressemble pas du tout.
• PHP (1995), également répandu dans le monde du web.
• C# (2001), prononcé C sharp. Cʼest le langage que Microsoft a mis au point pour succéder au C
et au C++. Il nʼest guère utilisé en dehors du monde Windows, mais cʼest le langage central de
« .NET », lʼenvironnement de programmation de Microsoft.
Aujourdʼhui, PHP et Javascript sont les deux langages principaux du web. Java et C# sont les
deux langages de programmation généralistes les plus populaires. Tous deux sont dérivés du C++
et la transition de lʼun à lʼautre est facile.
En dehors de ces « quatre grands », il existe des centaines de langages de programmation. Parmi
les plus intéressants, il y a Python (http://www.python.org) et Ruby (http://www.ruby-lang.org). Ils
sont tous deux utilisables librement.
Pour donner une idée de ces deux langages, voici un petit programme qui demande à lʼutilisateur
de donner une température fahrenheit, qui la convertit en centigrade et qui affiche le résultat.
En Python :
#
Conversion d’une temperature fahrenheit en temperature centigrade
fahr
= int(input(‟Temperature fahrenheit ? “))
centigr = (fahr - 32) * 5 / 9
print
‟Temperature centigrade : “ + repr(round(centigr))
En Ruby : 4
#
Conversion d’une temperature fahrenheit en temperature centigrade
puts
‟Temperature fahrenheit ? “
fahr
= gets.to_i
centigr = (fahr - 32) * 5 / 9
puts
‟Temperature centigrade : “ + centigr.to_s
À la première ligne, le signe dièse annonce un commentaire.
Le mot puts désigne ce quʼon appelle en programmation une méthode, cʼest-à-dire une action.
Cette action est « afficher la chaîne de caractères qui suit » (puts est lʼabréviation de put string).
Les mots fahr et centigr sont des variables. Une variable a un nom qui permet de la manipuler et
un contenu variable qui permet de faire des opérations dessus — ici, de transformer une valeur
fahrenheit en une valeur centigrade.
4
Pour plus dʼinformations, voir le document intitulé Apprendre à programmer avec Ruby.
Introduction à lʼinformatique
10
http://www.jaquet.org, octobre 2009
Le mot gets désigne la méthode « lire la chaîne de caractères entrée par lʼutilisateur » (get string).
Cette chaîne de caractères est transformée en nombre entier au moyen de la méthode to_i (to
integer) avant dʼêtre placée dans la variable fahr.
Le calcul a lieu dans la ligne centigr = (fahr - 32) * 5 / 9.
À la fin, la méthode puts est reprise pour afficher le message « Température centigrade » et la
valeur de la variable numérique centigr transformée en chaîne de caractères par la méthode to_s
(to string).
Ces changements de type sont nécessités par le programme : pour pouvoir effectuer des calculs
sur des variables, il faut quʼelles soient numériques, mais, pour quʼon puisse les afficher accolées
à un message, il faut quʼelles soient comme lui de type chaîne de caractères. Sinon, lʼinterpréteur
va se plaindre quʼil y a type mismatch, disparité de types de données.
Les SGBD
Les SGBD (systèmes de gestion de bases de données) ou DBMS (database management
systems) gèrent des bases de données, cʼest-à-dire des ensembles structurés dʼinformations qui
forment le réservoir principal de données informatiques des organisations.
Les SGBD ont quatre fonctions de base : ils permettent de définir une base de données, de la
créer, de lʼutiliser et de lʼadministrer. La plupart comprennent un langage appelé SQL (prononcé
seequel).
Parmi les principaux produits du marché, on peut citer Oracle, DB/2, Sybase, Access, SQL Server,
PostgreSQL, MySQL et SQLite.
PostgreSQL, MySQL et SQLite sont dʼun type particulier : ils font partie du monde open source,
où le code source dʼun programme est mis à la disposition de tous pour que lʼévolution du logiciel
soit le fruit de la collaboration de toutes les personnes intéressées, et non des seuls employés de
la firme qui édite le programme. On parle aussi de logiciel libre.
Selon lʼOpen Source Initiative (http://www.opensource.org), le logiciel open source doit se
conformer à trois principes :
• il peut être distribué librement, sans aucune restriction ;
• le code source est distribué avec le programme exécutable de telle manière que le destinataire
puisse le modifier et lʼaméliorer ;
• la licence dʼutilisation peut exiger que la version modifiée du programme porte un nom différent
que la version originale.
Le logiciel open source est souvent gratuit, mais pas forcément.
Le système dʼexploitation Linux a été réalisé selon ce modèle et il en a largement été de même
avec Unix dans les années 1980.
Les applications
La bureautique concerne le travail de bureau, notamment le traitement de textes, de tableaux
financiers, de graphiques et de présentations.
Introduction à lʼinformatique
11
http://www.jaquet.org, octobre 2009
Microsoft Office domine le marché dans ce domaine, mais il existe aussi une suite bureautique
open source gratuite, OpenOffice.org (http://www.openoffice.org).
Les programmes de gestion servent à gérer la comptabilité, la facturation, les stocks, les
salaires, etc.
Le plus connu est SAP, un progiciel de gestion intégré qui permet de gérer lʼinformatique dʼune
moyenne ou grande organisation. Il rassemble une quinzaine de modules (dʼoù le qualificatif
« intégré ») et recouvre lʼessentiel des activités de gestion.
Selon le nombre dʼutilisateurs, le prix des licences de ce genre de programmes varie entre une
centaine de milliers dʼeuros et plusieurs millions par année et le coût de mise en place est environ
cinq fois plus élevé que le prix annuel des licences.
Les programmes scientifiques sʼemploient pour des tâches comme les analyses statistiques ou
la dynamique des flux. Ils fonctionnent le plus souvent sous un système dʼexploitation de la famille
Unix. La météo est un exemple dʼapplication scientifique.
La télématique (telematics) peut se définir comme lʼensemble des services de nature ou dʼorigine
informatique pouvant être fournis à travers des réseaux de télécommunication (définition du
Journal officiel, 17/1/1982). Lʼinternet en constitue lʼexemple type.
Les applications sont nombreuses : téléachat, telebanking, formation à distance (e-learning), etc.
Les tables de caractères
Un ordinateur ne sait gérer que des impulsions électriques et ses composants fondamentaux, les
transistors, ne connaissent que deux états : ouvert ou fermé, 0 ou 1. Toutes les données traitées
par un ordinateur doivent donc être représentées par des 0 et des 1 — toutes, sans exception :
lettres, chiffres, caractères de ponctuation, photos en couleur, etc.
De plus, il faut éviter que les textes envoyés se transforment en suites incompréhensibles de bits à
lʼarrivée. Cʼest pourquoi lʼAmerican Standards Association a créé une table de caractères appelée
ASCII (prononcé aski) en 1963. Elle utilise 7 bits, ce qui veut dire quʼelle permet de définir 27
signes. Ils sont numérotés de 0 à 127. À bientôt 50 ans, elle reste utilisée aujourdʼhui, notamment
en téléinformatique.
Les 32 premiers signes et le dernier dʼentre eux sont des caractères de commande (control
characters), mais ils ne sʼemploient pas tous. Parmi les plus importants, il y a :
0
null
utilisé par beaucoup de langages de programmation pour signaler la fin dʼune chaîne
de caractères
4
end of
transmission
10
line feed
fin de ligne, symbolisé par « \n » dans beaucoup de langages de programmation
27
escape
interruption (aussi appelé « échappement »), symbolisé par « \e »
127
delete
effacement ou écrasement du caractère qui suit le curseur
fin de session dans un shell Unix (Ctrl-D)
Introduction à lʼinformatique
12
http://www.jaquet.org, octobre 2009
Les chiffres 0 à 9 sont représentés par les caractères 48 à 57, les lettres majuscules par les
caractères 65 à 90 et les lettres minuscules par les caractères 97 à 122. Le dièse est le 35,
lʼarrobe le 64 et la barre oblique inversée (le backslash) le 92.
Comme la table ASCII nʼutilise que 7 bits, elle ne permet pas de représenter les lettres
accentuées. Les tables ISO-8859 résolvent ce problème en codant les caractères sur 8 bits, ce
qui donne 256 possibilités, et elles sont compatibles avec le codage ASCII — leur 128 premiers
caractères sont ceux de la table ASCII. La table 8859 la plus répandue est la 8859-1, aussi
appelée Latin-1 ou Occidental.
Toutefois, la meilleure solution consiste à utiliser une seule table comprenant tous les caractères
de toutes les langues, sous toutes leurs formes (en arabe, par exemple, un caractère peut sʼécrire
de trois façons différentes selon quʼil se trouve au début, au milieu ou à la fin dʼun mot). Cette
solution, cʼest Unicode.
Il y a trois codages Unicode principaux. Avec quatre milliards de possibilités, le jeu UTF-32
contient tous les caractères imaginables, mais il utilise 32 bits par caractère, ce qui veut dire que,
chez nous, un fichier occupe quatre fois plus de place que nécessaire. UTF-16 nʼemploie que 16
bits par caractère, mais il reste inutilement grand en Occident. UTF-8 est compact, lui, mais il
complique le travail du logiciel qui traite le texte : les caractères les plus communs sont stockés sur
8 bits, ceux un peu moins répandus sur 16 et les plus rares sur 24 voire 32 bits.
UTF-16 est le codage par défaut de Windows et Mac OS tandis que cʼest UTF-8 qui sʼemploie le
plus dans le monde Linux.
Sur le web (cʼest-à-dire sur les navigateurs), le codage le plus utilisé est UTF-8, suivi par
ISO-8859-1 et ASCII.
Voici comment on active le codage UTF-8 sur une page web :
<meta http-equiv=‟Content-Type“ content=‟text/html; charset=utf-8“ />
Cʼest grâce au fait quʼun traitement de texte est compatible avec Unicode quʼon peut, par exemple,
écrire le mot « Japon » en japonais avec la même facilité quʼen français : 日本.
Introduction à lʼinformatique
13
http://www.jaquet.org, octobre 2009
Téléchargement