Platon venant de définir l'Homme comme un bipède sans plumes
,
Diogène de Sinope se présenta à son Académie, brandit un coq plumé
en clamant sur un ton ironique : Voici l'Homme selon Platon!
.
Cette anecdote illustre la difficulté de construire une définition.
Avec quelques milliers de mots, nous décrivons un monde infini. Quelques milliers comptent peu face à l'infini. Un même mot désigne plusieurs choses, plusieurs mots désignent la même chose. De nouveaux mots apparaissent, d'autres tombent en désuétude. Les abus de langage et autres sous-entendus détériorent cette situation. En somme, élaborer une définition précise, consensuelle bien que synthétique, s'avère compliqué.
Outil pour comprendre le monde, reposant sur l'observation et l'expérimentation.
Ce mot revêt plusieurs sens. Il signifie banalement relatif aux nombres
.
Ici, il concerne les algorithmes et les données numérisés, convertis en suites de 0 ou de 1
pour un traitement informatique.
Etude des outils et des savoir-faire pour produire des choses utiles.
Le terme informatique
se construit avec les mots information
et automatique
.
Il signifie traitement automatique de l'information par ordinateur
... sauf que :
Ainsi, le mot informatique
signifie plus précisément
traitement séquentiel des données numériques par ordinateur
.
L'informatique repose sur 4 piliers :
Description rigoureuse d'une procédure par une suite finie d'étapes successives, pour traiter des données et obtenir des résultats.
L'algorigramme (ou logigramme ou encore organigramme de programmation),
dont la figure ci-dessous en montre un exemple,
s'emploie parfois pour présenter graphiquement un algorithme.
Elément d'information qu'un algorithme traite pour produire des résultats. Concrètement, les données peuvent prendre diverses formes, telles que des nombres, des mots, des tableaux de nombres, des textes, des images....
Moyen de communication entre un humain et un ordinateur. Il traduit les algorithmes ou structure les données en un code numérisable, compatible avec l'ordinateur. On distingue :
Un langage de programmation bas-niveau
permet un contrôle plus direct sur le matériel,
alors qu'un langage haut-niveau
est plus facilement abordable pour un humain.
Machine qui effectue des calculs sur des données numériques en suivant les instructions d'un programme. L'ordinateur se décompose en 3 parties :
Machine qui effectue des calculs (plusieurs opérations arithmétiques ou logiques) sur des données numériques.
Type de calculateur effectuant des opérations arithmétiques.
Automate peut désigner :
système automatisé.
Un automate reproduit en autonomie, sans intervention humaine directe, une séquence d'actions prédéterminée. En principe, un système motorisé (l'énergie de puissance, en fonctionnement, n'est pas fournie par un humain) est dit :
Les automates ont évolué en trois grandes familles :
Lieu de conservation des fichiers. Un fichier est une suite de 0 ou de 1. Ces chiffres se regroupent habituellement par 8 pour former des octets (symbole : o). La taille d'une mémoire, d'un fichier, s'exprime en o ou un de ses multiples : ko, Mo ou Go. On distingue :
fichiers exécutablesou
programmes.
fichiers de données.
Par ailleurs, les octets placés dans un fichier peuvent correspondre à des caractères, encodés en UTF-8 ou ASCII par exemple. On distingue ainsi :
fichiers textes.
fichiers binaires.
Fichier contenant une suite d'instructions exécutables par un ordinateur.
interpréteur.
compilateurpour obtenir un code binaire interprété directement par l'ordinateur.
Trois paradigmes très classiques en programmation :
Fichier contenant des données traitées par des programmes.
Système de programmes, ainsi que tous les fichiers de données nécessaires à le rendre opérationnel. Exemples :
OSde
Operating System) : Il gère le matériel informatique.
Les machines :
Une seule instruction | Suite d'instructions | |
---|---|---|
Données logiques | Porte logique | Automate |
Données numériques | Calculateur | Ordinateur |
Les fichiers :
Texte | Binaire | |
---|---|---|
Exécutable | Programme interprété | Programme compilé |
De données | S'ouvre avec un éditeur de texte | Requiert un logiciel spécifique |
Date | Evènement |
---|---|
IXe siècle | Le nom du mathématicien persan Muhammad ben Mūsā Al-Khwârizmî est à l'origine du mot algorithme. |
1955 | IBM France introduit le mot ordinateurpour traduire l'anglais computer. |
1957 | L'ingénieur allemand Karl Steinbuch crée le terme Informatikpour son essai intitulé Informatik Automatische Informationsverarbeitung, traduit en français par informatique. |
1969 | La Délégation à l’informatique chargée du Plan Calcul adopte le mot logicielpour traduire l'anglais software. |
Il s'agit ici de présenter quelques machines, calculateurs ou ordinateurs, importantes dans le cadre historique. Quelle date retenir? Plusieurs années s'écoulent entre l'idée, la conception, la mise au point, le dépôt de brevet, la création de société, la commercialisation. Affirmer que telle machine est la première au monde à obtenir tel résultat se révèle délicat: :
C'est un dispositif mécanique grec de l'antiquité, utilisé pour calculer et afficher des informations sur les phénomènes astronomiques. C'est le premier calculateur à engrenages de l'Histoire.
C'est une calculatrice mécanique, inventée par Blaise Pascal en 1645. Ayant effectivement été utilisée en pratique et commercialisée, elle est souvent considérée comme la première calculatrice de l'Histoire.
C'est une machine à calculer à addition et soustraction directes et qui permet aussi de multiplier et de diviser. Inventée en Russie en 1873 par Willgodt Theophil Odhner, un immigrant suédois, elle deviendra extrêmement populaire au XXe siècle.
C'est une machine mécanique dont l'architecture ressemble à celle d'un ordinateur moderne. Elle n'a jamais été construite dans son intégralité. Sa collaboratrice, Ada Lovelace, est souvent considérée comme la première informaticienne de l'Histoire. Plan 28 est un projet de construction de cette machine.
C'est une sorte d'ordinateur mécanique capable de casser les codes allemands d'Enigma, pendant la Seconde Guerre mondiale. Elle est une amélioration de la Bombe cryptologique du polonais Marian Rejewski, travaillant au Biuro Szyfrów. Alan Mathison Turing est souvent considéré comme le père de l'informatique.
Les ordinateurs et calculateurs ont été construits à partir de quatre composants de base.
Il était très utilisé autrefois pour construire les systèmes automatisés.
On dit qu'il est électromécanique plutôt qu'électronique du fait de sa partie mobile.
Le premier relais réellement pratique
a vu le jour en 1837, grâce à l'inventeur américain Samuel F.B. Morse
(celui qui a inventé l'alphabet de même nom).
C'est un autre composant équivalent au relais, inventé en 1906 par l'américain Lee De Forest, très utilisé dans les années 1950-1970. Les tubes électroniques fonctionnant aussi en analogique, ils ont été très utilisés pour construire les postes de radio. Ils sont basés sur l'effet thermo-ionique.
Qui a inventé le transistor, dont on dit qu'il a engendré la quatrième révolution industrielle, après celles du charbon, de l'électricité et du nucléaire?
Il a été mis en œuvre en 1947 par les Américains John Bardeen, William Shockley et Walter Brattain, chercheurs des Laboratoires Bell. Ces chercheurs ont reçu pour cette invention le prix Nobel de physique en 1956.
Sauf que... Quelques années plus tôt, en 1925, le physicien austro-hongrois Julius Edgar Lilienfeld déposa un brevet, au Canada, sur le concept théorique d’un « transistor à effet de champ ».
Le TA166 fut un des premier transistor commercialisé en 1952.
C'est un circuit intégré, aussi appelé puce électronique. L'Intel 4004 est le premier microprocesseur commercialisé en 1971.
Fonctionnant en 4 bits, (32 caractères) à une fréquence 740 kHz, il comporte 2300 transistors.
Le relais a été utilisé pour fabriquer le premier ordinateur au monde, en 1941. Le Z3 (Zuse 3) était un calculateur à relais électromécaniques conçu par l'ingénieur allemand Konrad Zuse. Ce calculateur était la première machine programmable pleinement automatique ce qui en fait le premier ordinateur du monde. Il était composé de 2000 relais électromécaniques, fonctionnait à une fréquence d'horloge de 5 à 10 Hz et exploitait des mots d'une longueur de 22 bits. Le code et les données étaient stockés sur des rubans perforés en celluloïd.
L'ABC (Atanasoff–Berry Computer) fut reconnu, après un procès, comme le premier ordinateur numérique électronique (ce que prétendait être l'ENIAC). Il fonctionnait avec des tubes à vide et a été testé avec succès en 1942. Il a été conçu par les américains John Vincent Atanasoff et Clifford Berry.
En 1955, le TRADIC (TRAnsistor DIgital Computer or TRansistorized Airborne DIgital Computer) des laboratoires Bell a été le premier ordinateur à transistors des États-Unis. Il comportait 700 transistors et 10 000 diodes.
En 1972, la société française Réalisations et études électroniques
fondée et dirigée par André TRUONG, commercialise le premier micro-ordinateur vendu assemblé, le Micral N à microprocesseur 8 bits Intel 8008.
De nos jours, la plupart des ordinateurs suivent l’architecture de von Neumann. Elle décompose l’ordinateur en 4 parties :
Deux grandes familles de microprocesseurs :
Principaux types de CPU :
Type | ARM | x86, x64 |
---|---|---|
Utilisation | ![]() | ![]() |
Fabriquants | Qualcomm Samsung Freescale Nvida ... | Intel Corporation AMD (Advanced Micro Devices) |
Selon la loi de Gordon Moore, énoncée en 1975 : Le nombre de transistors des microprocesseurs sur une puce de silicium double tous les deux ans.
Binaire | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Décimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Hexadécimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
On dit de manière rigoureuse :
On dit plus simplement, par abus de langage :
Attention à la confusion, un nombre décimal peut désigner :
Les octets des fichiers s'écrivent ordinairement en notations binaire, décimale ou hexadécimale.
Notation | Caractéristique | Valeurs d'un octet | |
---|---|---|---|
Minimale | Maximale | ||
Binaire | Proche de l'ordinateur | 0 | 11111111 |
Décimale | Familière pour un humain | 0 | 255 |
Hexadécimale | Courte à écrire | 0 | FF |
Exemple de programme :
nb_dec=123 nb_hex=0x7b nb_bin=0b1111011 print(nb_dec, nb_hex, nb_bin) print(type(nb_dec), type(nb_hex), type(nb_bin)) print() ch1=hex(nb_dec) ch2=bin(nb_dec) ch3=ch1[2:] ch4=ch2[2:] print(ch1, ch2, ch3, ch4) print(type(ch1), type(ch2), type(ch3), type(ch4)) print() nb1=int(ch1,16) nb2=int(ch2,2) nb3=int(ch3,16) nb4=int(ch4,2) print(nb1, nb2, nb3, nb4) print(type(nb1), type(nb2), type(nb3), type(nb4))
Résultat obtenu :
123 123 123 <class 'int'> <class 'int'> <class 'int'> 0x7b 0b1111011 7b 1111011 <class 'str'> <class 'str'> <class 'str'> <class 'str'> 123 123 123 123 <class 'int'> <class 'int'> <class 'int'> <class 'int'>
Les octets des fichiers représentent souvent des caractères.
La transcription des caractères, compréhensibles par l'utilisateur, en octets,
traités par l'ordinateur, se nomme codage
ou encodage
.
Exemple d'extrait du code ASCII :
Caractère | a | + | 0 |
---|---|---|---|
Code binaire | 1100001 | 0101011 | 0110000 |
Il existe de nombreux codes différents. De nos jours, l'UTF-8 tend à se généraliser. Il est compatible avec le code ASCII, très ancien et toujours utilisé.
Code | Signification | Taille | Organisme normalisateur | Création | Caractéristique |
---|---|---|---|---|---|
Baudot | Développé par Émile Baudot | 5 bits | - | 1874 | Code télégraphique |
ASCII | American Standard Code for Information Interchange | 7 bits | ASA renommé ANSI | 1960 | Existe des versions étendues à 1 octet |
Base64 | Basé sur 64 caractères différents | 6 bits | IETF | 1987 | Convertit des données binaires en un texte |
Unicode | - | 21 bits | Unicode Consortium | 1991 | Compatible avec l'ASCII |
UTF-8 | Unicode Transformation Format, version 8 | 1 à 4 octets | ISO | 1996 | Compatible avec l'Unicode |
Soit la chaîne de trois caractères "eé\n" à coder en UTF-8 :
Caractère | Imprimable | Codé sur |
---|---|---|
e | Oui | Un octet |
é | Oui | Deux octets |
\n (saut de ligne) | Non | Un octet |
Exemple d'encodage en UTF-8 :
txt="eé\n" txt_encode=txt.encode() print(len(txt), type(txt), len(txt_encode), type(txt_encode)) print() for i in txt_encode : print(i, bin(i)[2:], hex(i)[2:], type(i))
Résultat obtenu :
3 <class 'str'> 4 <class 'bytes'> 101 1100101 65 <class 'int'> 195 11000011 c3 <class 'int'> 169 10101001 a9 <class 'int'> 10 1010 a <class 'int'>
Les noms que devraient porter les caractères... est un sujet polémique.
Caractère | Nom | |
---|---|---|
Français | Anglais | |
* | Etoile (astérisque) | Asterisk |
# | Dièse (croisillon) | Sharp ou hash |
/ | Barre oblique | Slash |
\ | Barre oblique inversée | Backslash (antislash) |
& | Esperluette | Ampersand |
< | Chevron ouvrant (inférieur à) | Less than |
> | Chevron fermant (supérieur à) | Greater than |
En informatique, pour des raisons techniques, les préfixes binaires s'emploient en complément des préfixes décimaux.
Préfixes décimaux | Préfixes binaires | ||||
---|---|---|---|---|---|
Nom | Symbole | Valeur | Nom | Symbole | Valeur |
Kilo | k | 103 | Kibi | Ki | 210 |
Méga | M | 106 | Mébi | Mi | 220 |
Giga | G | 109 | Gibi | Gi | 230 |
Téra | T | 1012 | Tébi | Ti | 240 |
Péta | P | 1015 | Pébi | Pi | 250 |
Exa | E | 1018 | Exbi | Ei | 260 |
Zetta | Z | 1021 | Zébi | Zi | 270 |
En informatique, les bits se regroupent communément par séries de 8. Ainsi, la taille d'un fichier s'exprime :
Noms d'unités :
Symboles d'unités :
Préfixes décimaux | Préfixes binaires | ||
---|---|---|---|
Symboles | Valeur (bit) | Symboles | Valeur (bit) |
kbit kb | 103 | Kibit Kib | 210 |
Mbit Mb | 106 | Mibit Mib | 220 |
Gbit Gb | 109 | Gibit Gib | 230 |
Tbit Tb | 1012 | Tibit Tib | 240 |
Préfixes décimaux | Préfixes binaires | ||
---|---|---|---|
Symboles | Valeur (o) | Symboles | Valeur (o) |
ko kB | 103 | Kio KiB | 210 |
Mo MB | 106 | Mio MiB | 220 |
Go GB | 109 | Gio GiB | 230 |
To TB | 1012 | Tio TiB | 240 |
Le débit binaire (bitrate
en anglais) indique la quantité de données numériques
transmises par unité de temps. Il s'exprime :
Préfixes décimaux | Préfixes binaires | ||
---|---|---|---|
Symboles | Valeur (bit/s) | Symboles | Valeur (bit/s) |
kbit/s kb/s kbps | 103 | Kibit/s Kib/s Kibps | 210 |
Mbit/s Mb/s Mbps | 106 | Mibit/s Mib/s Mibps | 220 |
Gbit/s Gb/s Gbps | 109 | Gibit/s Gib/s Gibps | 230 |
Tbit/s Tb/s Tbps | 1012 | Tibit/s Tib/s Tibps | 240 |
Préfixes décimaux | Préfixes binaires | ||
---|---|---|---|
Symboles | Valeur (o/s) | Symboles | Valeur (o/s) |
ko/s kB/s kBps | 103 | Kio/s KiB/s KiBps | 210 |
Mo/s MB/s MBps | 106 | Mio/s MiB/s MiBps | 220 |
Go/s GB/s GBps | 109 | Gio/s GiB/s GiBps | 230 |
To/s TB/s TBps | 1012 | Tio/s TiB/s TiBps | 240 |