Bonjour à toutes et à tous,


En 2013, j'ai créé un site d'identification des végétaux, mais contrairement à ce que je pensais (et surtout à ce que je souhaitais), un site n'est pas un lieu d'échange.

C'est pourquoi j'ai décidé aujourd'hui de faire ce blog pour prolonger ce site et pour échanger éventuellement avec vous des idées sur les plantes bien sûr, mais aussi sur l'environnement, le jardin, l'informatique (galères de programmation dans différents langages, HTML, Javascript, C++, PHP, MYSQL, CSS), l'actualité, la maçonnerie, l'électricité, etc etc ...

Je vous y souhaite donc la bienvenue en espérant que vous y trouverez quelques réponses à vos interrogations et que nous nous enrichirons mutuellement de connaissances nouvelles.

lundi 28 mars 2016

Introduction à l'informatique




1962: le, mot "INFORMATIQUE" est créé en France par contraction de "information automatique". C'était il y a à peine plus d'un demi-siècle !
Pourtant, les premières machines correspondant au terme ordinateur (du latin "ordinator", qui met de l'ordre, ordonnateur), que l'on appelle aujourd'hui "les monstres" pour leur volume démesuré et leur très faible puissance, étaient apparues en 1949 ... Ceux que ça intéresse peuvent consulter ce très bon document sur l'histoire de l'informatique.

Le but de l'informatique était donc de faire exécuter à une machine un travail réalisé jusqu'alors à l'aide du cerveau humain: calculs, classement (alphabétique ou numérique), tri sur un ou plusieurs critères, etc ...
Pour exécuter ces travaux, l'ordinateur, utilisant le courant électrique, ne connaît qu'un seul langage (si l'on peut dire), appelé "langage binaire". On a symbolisé ce langage par les chiffres 0 et 1 qui correspondent en fait pour la machine à une tension haute de 5 volts (1) et à une tension basse de 0 volt (0) d'un courant électrique appliquée aux bornes d'entrée d'un ensemble de transistors. Pour faire un parallèle, il s'agit d'un état à 2 statuts possibles: "vrai / faux" en logique, "marche / arrêt" en mécanique, "ouverte / fermée" pour une porte, etc ...

Il serait trop long ici de rentrer dans le détail du fonctionnement de ces assemblages de transistors ou de celui du "processeur" (cerveau de l'ordinateur en quelque sorte), je vous conseille, si ça vous intéresse, de consulter cette page.

Le principe de fonctionnement d'un ordinateur est le suivant: Nota:
si vous n'enregistrez pas le travail que vous venez d'effectuer dans un fichier sur le disque dur, votre travail est perdu lorsque vous éteignez votre ordinateur.


Les langages de l'ordinateur

1. Le langage machine

La plus petite information que la machine puisse traiter est appelée "bit" (pour Binary digit, "chiffre binaire" en français) et se matérialise soit par 0, soit par 1. Ainsi:
  • avec un bit, on peut avoir 2 états (ou possibilités) différents: 0 ou 1.
  • avec 2 bits, on peut avoir 4 états (ou possibilités) différents: 00, 01, 10, 11 soit 2² (2 puissance 2, 2 exposant 2, 2 au carré ou 2*2).
  • avec 3 bits, on peut avoir 8 états (ou possibilités) différents: 000, 001, 010, 011, 100, 101, 110, 111 soit 2³ (2 au cube ou 2*2*2).
  • etc .... jusqu'à
  • avec 8 bits, on peut avoir 256 états (ou possibilités) différents: 00000001, 00000010, 00000011, 00000100, 00000101, 00000110, 00000111, 00001000, 00001001, 000001010, etc .... 11111111 soit 28 (ou 2*2*2*2*2*2*2*2).
Ces 8 bits représentent ce que l'on appelle un octet, la plus petite unité informatique. Coder sur 8 bits signifie donc que l'on peut coder 256 caractères différents. Si cela a suffi sur les premiers ordinateurs pour coder l'alphabet, les chiffres, les couleurs de base et les principaux caractères spéciaux, elle a très rapidement atteint ses limites devant le codage de plusieurs langues à la fois et surtout avec le codage des couleurs (aujourd'hui des millions de nuances codées) !
On a rapidement codé sur 2 octets (soit 16 bits), puis sur 4 octets (32 bits), aujourd'hui sur 8 octets (soit 64 bits). Coder sur 32 bits procurait déjà 4 294 967 296 (4 milliards 294 millions 967 mille 296) possibilités ! Coder sur 64 bits en permet 18 446 744 073 709 551 616 !!!    (je ne sais même pas lire ce nombre !)


2. Le langage assembleur (langage dit de bas niveau)

Ecrire un programme en langage binaire (donc directement compréhensible par un ordinateur), en plus d'être obscur, est impensable à réaliser par un humain. C'est la raison pour laquelle le "langage assembleur" a été inventé afin d'écrire des instructions simples dans une langue intermédiaire entre le langage de l'homme et celui de la machine. Pour pouvoir être ensuite utilisé par la machine, il était traduit en langage machine par un programme appelé "assembleur".
La programmation en langage assembleur était toutefois longue et laborieuse et entraînait de ce fait un coût très élevé: chaque instruction donnée à la machine nécessitait d'innombrables lignes de code ... En outre, il existait autant de langages assembleur qu'il existait de processeurs différents ! Un casse-tête pour les programmeurs entraînant de plus de nombreuses erreurs ... (se faire une idée du langage assembleur)
C'est pourquoi des langages évolués (dits de haut niveau) ont été créés pour faciliter la programmation des ordinateurs, plus évocateurs les uns que les autres pour les concepteurs de logiciels: le COBOL, le FORTRAN, le Perl ... d'autres plus récents: le C, le C++, le Java ...


Plus loin avec les bits et les octets

Nous avons vu que le bit est la plus petite information que l'ordinateur peur manipuler. Mais pour que l'information prenne un sens, il faut réunir plusieurs bits entre eux au sein d'une unité, l'octet, composé de 8 bits.
L'octet est donc la plus petite unité de codage mais aussi de stockage, contenant 1 caractère. Ainsi un fichier contenant 300 caractères nécessite 300 octets de mémoire, on dit aussi qu'il pèse 300 octets. Bien évidemment, 300 octets, ça représente à peu près 4 lignes de texte d'une feuille A4. Le premier problème que l'informatique a rencontré, c'est l'insuffisance de place pour la mémoire.

Avec l'évolution des technologies et la miniaturisation, les supports ont offert de plus en plus d'espace de stockage, se mesurant en kilooctets (ko), mégaoctets (Mo), gigaoctets (Go), téraoctets (To), voire en pétaoctets Po), en exaoctets (Eo), en zettaoctets (Zo) et en yottaoctets (Yo) ... mais jusqu'où iront-ils ?

Attention, dans le système décimal, kilo = 1000 (1 kilomètre = 1000 mètres), en informatique, il en va autrement:
  • 1 kilooctet (ko) = 1 024 octets, soit 210 octets,
  • 1 megaoctet (Mo) = 1 024 ko, soit 1 048 576 octets (1 million 48 mille 576 octets),
  • 1 gigaoctet (Go) = 1 024 Mo, soit 1 073 741 824 octets (1 milliard 73 millions 741 mille 824 octets)
  • 1 teraoctet (To) = 1 024 Go, soit 1 099 511 627 776 octets (1 billion 99 milliards 511 million 627 mille 776 octets),
  • 1 petaoctet (Po) = 1 024 To, soit 1 125 899 906 842 624 octets (1 trillion 125 billions 899 milliards 906 millions 842 mille 624 octets),
  • à partir de là je vous laisse faire le calcul !!!
  • 1 exaoctet (Eo) = 1024 Po,
  • 1 zettaoctet (Zo) = 1 024 Eo,
  • 1 yottaoctet (Yo) = 1 024 Zo.

Nota:
1 milliard = 1 000 millions,
1 billion = 1 000 milliards (ou 1 million de millions),
1 trillion = 1 000 billions (ou 1 milliard de milliards),

Ça donne le tournis, non ?


Eviter les confusions

1. Les multiples de l'octet

Les préfixes "kilo", "mega", "giga", etc ... désignent des puissances de 10:
  • kilo associé à une unité multiplie cette unité par 1 000* (kilogramme, kilomètre, kilocalorie ...) soit 103,
  • mega multiplie l'unité par 1 000 000 (1 million) soit 106,
  • giga multiplie l'unité par 1 000 000 000 (1 milliard) soit 109
  • et ainsi de suite ...
* et non par 1 024, ce qui crée une confusion pour les non initiés.

Aussi a-t-on modifié, pour le domaine informatique où les quantités ne sont pas représentées par des puissances de 10 mais par des puissances de 2 (langage binaire oblige), le nom des multiplicateurs comme suit: kibi (au lieu de kilo), mébi (au lieu de mega), gibi (au lieu de giga), tébi (au lieu de tera), pébi (au lieu de peta), exbi (au lieu de exa), zébi (au lieu de zetta) et yébi (au lieu de yotta).
  • 1 024 octets forment un kibioctet (Kio) ................. soit 210 octets,
  • 1 024 kibioctets forment un mébioctet (Mio) ........ soit 220 octets,
  • 1 024 mébioctets forment un gibioctet (Gio) ........ soit 230 octets,
  • 1 024 gibioctets forment un tébioctet (Tio) ........... soit 240 octets,
  • 1 024 tébioctets forment un pébioctet (Pio) .......... soit 250 octets,
  • 1 024 pébioctets forment un exbioctet (Eio) ......... soit 260 octets,
  • 1 024 exbioctets forment un zébioctet (Zio) ......... soit 270 octets,
  • 1 024 zébioctets forment un yobioctet (Yio) ......... soit 280 octets.
Nous serons amenés à rencontrer ces termes dans les caractéristiques des appareils contenant de la mémoire (ordinateurs, tablettes, smartphones, etc), autant les connaître et ne pas se retrouver désemparés: les termes changent, les quantités ou les performances restent les mêmes.

2. Le byte ou l'exception anglaise

On a coutume de dire, nous Français, que nos amis Anglais ne font jamais comme les autres (ne disent-ils pas "une bleue voiture" ? ne mesurent-ils pas en pouces, en pieds, etc ?). Pour les unités informatiques, il en va de même ...
Si le bit reste la plus petite information manipulable par la machine, la plus petite unité s'appelle chez eux le byte. Oui me direz-vous ? Oui mais voilà, le byte anglais contient 6, 7, 8 ou 9 bits ! Bon, les choses semblent vouloir s'harmoniser et le byte (symbole B) est maintenant l'équivalent de l'octet et vaut 8 bits, le kilobyte (KB) 1024 bytes (ou octets), ainsi de suite ... Il est donc communément admis maintenant que les capacités en bytes sont les mêmes qu'en octets.
Il demeure toutefois une confusion tenace entre le kilobyte (KB) et le kilobit (Kb), dûe à la consonance de ces 2 mots. Pour rappel:
  • 1 kilobyte (KB) = 1 kilooctet (ko) (ou plutôt 1 kibioctet (Kio)) = 1 024 bytes = 1 024 octets,
  • 1 kilobit (Kb) = 1 024 bits = 128 octets (1024 bits divisé par 8 bits par octet) ,
  • 1 kilobyte (KB) = 1 kibioctet (Kio) = 8 kilobits (Kb) (1 024 bits divisé par 128 (nombre d'octets dans un kilobit)).
Il faut donc se souvenir que le symbole du kilobyte est KB (B en majuscule) et que celui du kilobit est Kb (b en minuscule).

Introduction aux langages de programmation

Il est difficile de dire exactement combien de langues différentes sont parlées sur notre planète ... Probablement entre 3 000 et 7 000 ... Les spécialistes sont majoritairement d'accord sur un nombre avoisinant 6 000. On aurait pu croire qu'en informatique, discipline récente, on ne rencontrerait que quelques langages ... que nenni !!!    Vous pouvez vous en faire une petite idée sur cette page ...
Rassurez-vous, vous n'allez pas être obligés d'apprendre tous ces langages ... même si vous envisagez une carrière dans ce domaine ... enfin , pas tout de suite ...(boh! ... je plaisante) ...

Vous retiendrez simplement qu'il existe des langages de programmation généralistes, des langages de définition de données, des langages de requête et des langages de balisage. Les langages les plus utilisés sont sensiblement ceux considérés comme les meilleurs et se comptent sur les doigts de 2 mains:
  1. le Java arrive en tête,
  2. le C,
  3. le C++,
  4. le Python,
  5. le C#,
  6. le PHP,
  7. le Ruby,
  8. le Javascript,
  9. le SQL,
  10. le Matlab.

Pour une description plus complète de ces langages, voir ici ou encore là.

Pour ma part, mes choix, en fonction de ce que je voulais réaliser, se sont portés tout d'abord sur le HTML/CSS, le Javascript, le PHP et le SQL pour les sites web, et sur le C++ pour concevoir des logiciels (de gestion de caisse dans mon cas).

C'est donc de ces langages que je vais vous parler exclusivement dans les pages suivantes.






Aucun commentaire :

Enregistrer un commentaire