background preloader

2

Facebook Twitter

#1 Module fondamental : découvrir la programmation créative. À propos des algorithmes. Les algorithmes, un jeu d’enfant ?

À propos des algorithmes

Presque, aurait-on envie de dire. Comme le rappelle la chercheuse Marie-Christine Rousset dans cet épisode du podcast audio, ils font partie de notre quotidien et ce, dès le plus jeune âge. En informatique comme en mathématiques, la notion d’algorithme est fondamentale. Si j’étais un algorithme – binaire. Qu’est-ce qu’un algorithme ? Même si les algorithmes sont souvent considérés comme étant du ressort exclusif des mathématiques et de l'informatique, leur champ d'application est en réalité beaucoup plus vaste.

Qu’est-ce qu’un algorithme ?

Le mot « algorithme » vient du nom du grand mathématicien persan Al Khwarizmi (vers l’an 820), qui introduisit en Occident la numération décimale (rapportée d’Inde) et enseigna les règles élémentaires des calculs s’y rapportant. La notion d’algorithme est donc historiquement liée aux manipulations numériques, mais elle s’est progressivement développée pour porter sur des objets de plus en plus complexes, des textes, des images, des formules logiques, des objets physiques, etc. De la méthode Un algorithme, très simplement, c’est une méthode. Une façon systématique de procéder pour faire quelque chose : trier des objets, situer des villes sur une carte, multiplier deux nombres, extraire une racine carrée, chercher un mot dans le dictionnaire… Il se trouve que certaines actions mécaniques – peut-être toutes !

Les ingrédients des algorithmes. #1 Module fondamental : découvrir la programmation créative. Genèse d’un algorithme. D’où viennent ces algorithmes que les auteurs d’Interstices décortiquent et analysent avec tant de brio et de clarté ?

Genèse d’un algorithme

Certes, ils sont le produit de l’intelligence humaine, chaque algorithme ayant été ingénieusement conçu pour résoudre une classe de problèmes plus ou moins étendue. Les ingrédients des algorithmes. Algorithmes, mode d’emploi. Véritables « règles d’or », les algorithmes permettent de mécaniser calculs et traitements. Ils sont à la base du moindre programme où se combinent leurs ingrédients. Leur étude révèle les potentiels et les limites de l’informatique. Ada Lovelace. © Heritage images / Leemage En 1843, un siècle avant la naissance des calculateurs électroniques, Ada Lovelace formule les premières idées fondamentales de l’informatique. Elle contribue à améliorer les premiers programmes, conçus alors sur papier.

Elle s’appelle Ada, Augusta Ada King, comtesse de Lovelace, fille du célèbre poète Lord George Gordon Byron. Elle travaille avec Charles Babbage, mathématicien, sur la « machine analytique ». Qu’est-ce qu’un algorithme ? #1 Module fondamental : découvrir la programmation créative. Naissance des langages de programmation. Pour comprendre le défi posé par la programmation des ordinateurs, il faut brièvement rappeler le principe de leur fonctionnement.

Naissance des langages de programmation

Une machine à programme enregistré comporte un jeu d’instructions dont chacune réalise une opération élémentaire : opération arithmétique, transfert d’information entre mémoire et accumulateur, branchement conditionnel, etc. Une instruction est représentée par une suite de bits dans la mémoire, selon un codage conventionnel. Pour prendre un exemple, inventons une machine où ajouter le contenu de l’emplacement de mémoire d’adresse 1576 à celui de l’accumulateur s’écrirait : On suppose que les 5 bits de gauche désignent l’opération à effectuer (il y a donc 25 = 32 opérations possibles). Ici, l’addition est l’opération n° 10 (01010 en binaire). Un premier progrès fut réalisé au début des années 1950 par l’invention des langages d’assemblage. Add représente l’opération d’addition (01010) et longueur désigne l’adresse 1576.

Pointeur (programmation) Pour les articles homonymes, voir pointeur.

Pointeur (programmation)

Le pointeur a pointe sur la variable b. On peut noter que b contient un nombre (en hexadécimal 00000011 = en décimal 17), et que a contient l'adresse de b en mémoire (en hexadécimal 1008). Dans ce cas précis, l'adresse et la donnée sont contenues dans 32 bits. La notion de pointeur reflète l'utilisation différente que l'on peut faire d'un entier naturel, à savoir indiquer une adresse mémoire.

Cette utilisation est très différente d'une utilisation arithmétique, d'où la création de registres de processeurs spécifiques (les registres d'adresse) et d'un type de donnée spécifique dans les langages de programmations. L'utilisation des pointeurs permet d'avoir accès à la couche basse de l'ordinateur, à savoir la mémoire. Variable (informatique) Pour les articles homonymes, voir variable.

Variable (informatique)

#1 Module fondamental : découvrir la programmation créative. (211) Class'Code Didacticiel - D-Clics numériques. #1 Module fondamental : découvrir la programmation créative. Assembleur. Un langage d'assemblage ou langage assembleur est, en programmation informatique, le langage de plus bas niveau qui représente le langage machine sous une forme lisible par un humain.

Assembleur

Les combinaisons de bits du langage machine sont représentées par des symboles dits « mnémoniques », c'est-à-dire faciles à retenir. Le programme assembleur convertit ces mnémoniques en langage machine, ainsi que les valeurs (écrites en décimal) en binaire et les libellés d'emplacements en adresses, en vue de créer par exemple un fichier objet ou un fichier exécutable. Dans la pratique courante, le même terme assembleur est utilisé à la fois pour désigner le langage d'assemblage et le programme assembleur qui le traduit. On parle ainsi de « programmation en assembleur ».

Histoire[modifier | modifier le code] Carte formatée pour être perforée pour l'assembleur de l'IBM 1620. Particularités de l'assembleur[modifier | modifier le code]