Les codages

Open source

Qui dit "open source" dit "source" et si on veut bénéficier au maximum de cet aspect, il faut un minimum de compréhension de la programmation. Rassurez-vous, nous resterons aux bases, il n'est nullement qurestion de faire de vous des programmeurs.

Binaire

Toutes les instructions connues par un ordinateur ne sont que l'assemblage d'interrupteurs électriques qui soient laissent passer le courant soit ne le laissent pas passer. Un ordinateur numérique (en franglais « digital ») est donc formé d'un assemblages de deux états, on parle alors de système « binaire » et les informaticiens doivent maîtriser ce mode de calcul.

Notons pour les électroniciens, que quand on observe non plus le logiciel mais le matériel, on parle de « trois états » (tristate), le troisième étant un état « indéterminé » dû à l'absence de courant.

Un seul état binaire ne peut stocker qu'une seule information, ce qui n'est pas beaucoup. On regroupe donc ces « bits » (BInary digiTS). Ces regroupements sont variables, le plus souvent par 4 pour pouvoir écrire en base « hexadécimale », mais ces groupes de 4 sont souvent eux-même regroupés par 2 (octet de 8 bits), qui sont eux-même regroupés par 2 (16 bits) et ainsi de suite en multipliant à chaque fois par 2 (32 bits puis 64, 128...).

Ces informations peuvent être transmises par un seul fil (mode série), c'est ce qui se passe quand vous vous connectez à l'Internet, ou par un nombre de fils égal ou non au nombre de bits.

Un PC moderne a ainsi un « bus » de transmission de 32 bits en interne (Pentium), mais de 16 bits vers les cartes additionnelles, et même 8 bits vers le port imprimante, par exemple.

Avez-vous compris ?

Un "bus 32 bits" utilise combien d'octets ?

5
4
3
2

2.2.2 Les langages de base

Les premiers ordinateurs étaient programmés uniquement en microcode. C'est encore le cas des calculatrices de poche « non programmables » dont on utilise uniquement le code interne. Mais rapidement on a utilisé des « langages ».

On parle de langage et les mots de ce langage sont les instructions du microprocesseur.

Si ces instructions sont connues uniquement par leur code, on parle de programmation en binaire, octal ou hexadécimal. Cette programmation est encore d'usage courant quand on programme du matériel spécifique (machine à laver...). Mais dès que le nombre d'instruction augmente, on remplace le code numérique par un nom « imagé » comme jmp15 pour « jump 15 bytes » (saute 15 octets).

D'ailleurs il n'a pas été nécessaire d'avoir un ordinateur pour faire de la programmation. Babbage (1791-1871) est ainsi à la base de la pensée moderne sur ce sujet, et sa machine, comparable à celle de Pascal.

Babbage

La machine de Babbage

Turing (1912-1954) est encore célèbre pour avoir édicté des règles sur l'intelligence artificielle.

Alan Turing

Trouvez sur Internet : Babbage est né

A Manchester
A Londres

2.2.3 Les langages évolués

Programmer en langage machine est un exercice passionnant pour un amateur qui peut ainsi commander au plus près son appareil, mais c'est long, difficile et sujet à erreurs.

Très vite l'idée de programmer d'abord des outils pour programmeurs s'est imposée et sont alors nés les « assembleurs ». Un assembleur comprends directement les mnémoniques et les traduit en langage machine.

Un assembleur simple est un outil indispensable, mais limité. On est vite arrivé aux « macro-assembleurs », soient des assembleurs capables de gérer des sous routines, blocs de code pourvus d'un nom et donc réutilisables.

Il y a alors création d'un "nom" propre au programme, différent des instructions du microprocesseur.

Cette notion de blocs et de macros a évolué rapidement vers l'utilisation par le programmeur d'un langage n'ayant plus rien à voir avec les mnémoniques d'origine, on parle de programmation « en langage naturel ».

Sont donc nés plusieurs dialectes, munis de noms plus ou moins fantaisistes : BASIC, PASCAL, C, COBOL, FORTRAN, appelés « compilateurs ».

Je cite ces noms car vous les connaissez sans doute, mais les premiers langages étaient très proches du matériel et spécifiques à un ordinateur, c'était l'époque des cartes perforées et des premiers terminaux.

Il est rapidement devenu nécessaire de ne pas avoir à réécrire les programmes chaque fois que sortait un nouveau modèle d'ordinateur, d'où les langages cités ci-dessus.

A cette époque, on utilisait moins les cartes perforées, le support le plus fréquent était la bande magnétique en grosses bobines - que l'on voit souvent dans les films - et on venait d'inventer le logiciel Open Source :-).

En effet le code binaire étant différent d'une machine à l'autre, seul le code en langage courant, "le code source" ou "source" était fourni. Le fabriquant de l'ordinateur fournissait le compilateur adapté à son appareil.

Code source et compilateur ne correspondaient pas toujours et les informaticiens étaient donc obligés d'effectuer des corrections manuelles.

Envoyez au formateur un mail en lui donnant une définition de "mnémonique".