La poésie de code 1
De communiquer avec des ordinateurs dans leur langue maternelle, le code binaire, n'est pas le plus facile. Pour ceux qui déroute sur l'humour de maths ringard : Il y a 10 sortes de gens, ceux qui comprennent les nombres binaires et ceux qui ne le font pas.
La langue d’un ordinateur est le code binaire. C’est un code entièrement composé de uns et zéros. Le processeur de l'ordinateur, le cerveau, ne comprend que ces chiffres qui sont des commendes pour effectuer quelques taches. Au fond ils sont peu nombreux et très simples. Le minimum est 7 instructions arithmétiques, dont addition, comparassions, manipulation du mémoire et quelques autres. Sur ce niveau le processeur est bette mais très travailleur. Mais, presque tous les processeurs sont entourés par des centaines de séquencés programmés qui à partir des instructions les plus primitives sont capable à faire plus, par exemple multiplication.
La langue d’un ordinateur est le code binaire. C’est un code entièrement composé de uns et zéros. Le processeur de l'ordinateur, le cerveau, ne comprend que ces chiffres qui sont des commendes pour effectuer quelques taches. Au fond ils sont peu nombreux et très simples. Le minimum est 7 instructions arithmétiques, dont addition, comparassions, manipulation du mémoire et quelques autres. Sur ce niveau le processeur est bette mais très travailleur. Mais, presque tous les processeurs sont entourés par des centaines de séquencés programmés qui à partir des instructions les plus primitives sont capable à faire plus, par exemple multiplication.
Ces instructions constituent la langue
maternelle, celles qu’un processeur dispos depuis
sa naissance. Peu de monde écrit aujourd'hui des instructions
dans ce code mais dans la jeunesse de l’informatique il a parfois été nécessaire.
Cela était difficile, fastidieux et n’a pas laissé beaucoup de place pour créativités linguistiques. Pour le processeur de Motorola 68000 le message 0100 1110 0111 0101 signifiait par exemple qu’il fallait revenir au programme principal à partir d'un sous-programme.
Cela était difficile, fastidieux et n’a pas laissé beaucoup de place pour créativités linguistiques. Pour le processeur de Motorola 68000 le message 0100 1110 0111 0101 signifiait par exemple qu’il fallait revenir au programme principal à partir d'un sous-programme.
Pour faciliter la tache il est possible de
passer dans un autre système de numération, le hexadécimal. Il est dit
que les extraterrestres ont 16 doigts et qu’ils par cette accident de la nature
serraient plus alaise dans ce système. Il s’agit de remplacer les chiffres 10 à
15 avec icones, n’importe lesquelles, mais pour la simplicité les lettres A à
F. La traduction du message ci-dessus devint
dans ce cas plus compact mais naturellement toujours complètement
incompréhensible pour les non initiés, 4E75.
La première communication
entre hommes et machines qui avait une faible
ressemblance avec une langue s’est produit avec la naissance
d’assembleur. Ce terme désigne une
langue où les instructions digitales sont remplacées par des petites sténographies symboliques.
Donc, RTS ou lieu de 4E75. Pourtant, le processeur n’en comprend rien et pour
le traduire il faut un logicielle. Dans la terminologie des informaticiens il est
appelé un compilateur. Il traduit la langue assembleur en code hexadécimal, qui
par un autre traducteur, inclus dans le processeur, est interprété en code
binaire. Voila la séquence, des 3 étapes et 2 traducteurs, dont presque toutes
les langues informatiques dépendent.
La complication est que tous les processeurs
n’ont pas la même langue maternelle. Pour contourner ce problème il y a un
genre d’esperanto généré par la langue Java qui en exécution est traduit à une
code spécifique pour chaque type de processeur. Donc, dans le Java, il n’y a plus
le besoin de compiler une version pour Windows et un autre pour Macintoche, qui
dans des applications sur le web considérablement facilite la tâche.
Les langues maternelles d’ordinateurs ne sont pas des bonnes candidates
pour le prix Nobel en littérature. Linguistiquement elles ont une distorsion considérable dans le vocabulaire. Les impératifs du verbe dominent et les noms sont
plus rares. Pour ces dernières il pourrait s'agir d’une adresse dans la mémoire ou par un nome des registres dans la petite mémoire central du
processeur où de bric et de broc constamment sont traités. De la poésie agréable
ne se produise pas dans une langue aussi pauvre.
Mais, les langages de
programmation ont rapidement dépassé
le stade de : Parler avec
les savants en latin et avec des ordinateurs en la langue machine. Des
langues de haut niveau sont très vite apparues. Elles sont beaucoup plus
abstraites et moins clairement lié au
processeur. Ces langues ne sont
pas indigènes aux processeurs mais une sorte de langage symbolique raffinée qui se situent quelque part entre la langue humain et le code de la machine. Elles sont nombreuses. Un des plus anciennes est ALGOL, né en 1950,
et rapidement suivie par beaucoup
d'autres.
Toutes ces langues ne font rein que
d'exprimer des algorithmes. Le mot algorithme vient du nom du mathématicien
arabe médiévale Al-Khwarizmi. Il s'agit simplement de décrire d'une méthode qui par étapes effectue
une tâche. La chose n’est pas simple car les ordinateurs sont bettes et
surtout, ils ne savent pas lire entre les lignes. Il faut que les instructions
soient très précises.
Voici un exemple structurelle mais dans tous autres aspectes
imaginaire :
NAME : Faire cuire et manger la pomme de terre ;
Placez
les pommes de terre dans la casserole ;
Ouvrez le robinet ;
REPEAT versez l'eau dans la casserole UNTIL casserole=plein ;
Fermez le robinet ;
Mettez la casserole sur la plaque chauffante ;
Allumez le feu ;
Mettez le couvercle ;
REPEAT chauffez l'eau UNTIL l’eau=bout ;
Réduirez le chauffage ;
Ouvrez le robinet ;
REPEAT versez l'eau dans la casserole UNTIL casserole=plein ;
Fermez le robinet ;
Mettez la casserole sur la plaque chauffante ;
Allumez le feu ;
Mettez le couvercle ;
REPEAT chauffez l'eau UNTIL l’eau=bout ;
Réduirez le chauffage ;
LABEL : Ebouilliez ;
Faites cuire les pommes de terre ;
Essayez la dureté avec une fourchette ;
IF pommes de terre=dur THEN GOTO Ebouillez
Faites cuire les pommes de terre ;
Essayez la dureté avec une fourchette ;
IF pommes de terre=dur THEN GOTO Ebouillez
ELSE
étendrez la plaque et videz la casserole
d’eau ;
Placez
les pommes de terre sur une assiette ;
REPEAT
Coupez les pommes de terre en morceaux ;
Ouvrez la bouche ;
Mettez les morceaux dans la bouche avec aide de la fourchette ;
Mastiquez ;
Avalez ;
UNTIL assiette=vide ;
END : Faire cuire et manger la pomme de terre ;
REPEAT
Coupez les pommes de terre en morceaux ;
Ouvrez la bouche ;
Mettez les morceaux dans la bouche avec aide de la fourchette ;
Mastiquez ;
Avalez ;
UNTIL assiette=vide ;
END : Faire cuire et manger la pomme de terre ;
Aucun commentaire:
Enregistrer un commentaire
Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.