Un algorithme est la «spécification d’un schéma de calcul, sous forme d’une suite finie d’opérations élémentaires obéissant à un enchaînement déterminé» (Encyclopedia Universalis)
Un langage algorithmique est un langage spécialisé pour concevoir le modèle du problème que l’on veut programmer en vue d’une exécution par une machine. Il peut être défini formellement comme un langage dont les descriptions proposées seront rigoureuses, sans ambiguïté et spécialement conçues pour résoudre un problème concret.
Il se base sur les mêmes principes que ceux des langages de programmation impératifs, mais, avec quelques différences dans la sémantique et le vocabulaire utilisés. La notation adoptée permet d’appliquer les notions fondamentales des algorithmes et des langages de programmation impératifs:
- Donnée
- Instruction
- Répétition d’une ou plusieurs instructions
- Choix d’une ou plusieurs instructions dans une suite d’instructions
Historiquement, pour décrire un algorithme, on le dessinait à l’aide d’organigrammes présentés sous une forme graphique avec des carrés, des losanges, etc… Aujourd’hui, cette représentation est quasiment abandonnée. C’est pourquoi, nous utiliseront, dans les articles de ce site, le langage algorithmique Schema, spécialement conçu pour décrire de algorithmes.
Les raisons principales qui motivent la conception d’un tel langage algorithmique formel sont multiples, elles permettent:
- Aux débutants d’aborder la programmation par le biais de la construction d’algorithme comme préalable au codage dans un langage de programmation.
- De s’abstraire les particularités syntaxiques propres aux langages de programmation.
- De faciliter l’apprentissage de la programmation grâce à une écriture universelle et simplifiée.
- La vérification de la logique d’un algorithme par exécution de sa traduction représentation dans un langage de programmation.
Revenons sur les quelques principes fondamentaux sur lesquels repose l’algorithmique.
- Les données sont des informations nécessaires au déroulement d’un algorithme. Une donnée est identifiée par un nom et une valeur
- Une instruction utilise des données qui sont conservées et modifiées de manière temporaire au cours de l’exécution de l’algorithme, ainsi une donnée, va prendre au cours du déroulement de l’algorithme, un nombre indéfini de valeurs différentes.
-
Les instructions de contrôle permettent de gérer l’ordonnancement de l’algorithme. Seules deux instructions de contrôle de séquence suffisent pour décrire une infinité d’algorithme:
-
- Instruction répétitive pour répéter une ou plusieurs instructions à exécuter
- instruction conditionnelle pour choisir une ou plusieurs instructions à exécuter
Toutefois, en algorithmique on tente d’éviter un formalisme se rapprochant trop des spécificités syntaxiques d’un langage de programmation particulier. C’est ce qui explique pourquoi il n’existe pas réellement de langage algorithmique basé sur un formalisme universel décrit par une grammaire.
L’écriture algorithmique que nous adopterons, pour les articles de ce site, peut être considérée comme universelle car elle permet de traduire un algorithme dans les langages de programmation impératifs.
Schema, Le langage algorithmique proposé sera utilisé pour spécifier toutes les modifications de données nécessaires à un processus de calcul défini sous forme d’une suite d’instructions élémentaires obéissant à un enchainement déterminé par des structures de contrôle particulières
Schema permet d’écrire des algorithmes respectant les principes suivants:
- Un algorithme est indépendant du langage de programmation.
- Un algorithme est une description des étapes conduisant à la solution d’un problème.
- Un algorithme est la partie conceptuelle d’un programme.
- Il n’est pas nécessaire de connaitre un langage de programmation pour écrire un algorithme.
- Un algorithme peut s’écrire simplement dans un langage algorithmique en vue d’être traduit systématiquement dans un langage de programmation classique.
- Un programme est l’implémentation de l’algorithme, dans un langage de programmation
- Concevoir un algorithme, c’est écrire et exécuter manuellement un programme sans langage de programmation.
copyright A rchitectures A pplicatives A vancées A3-Soft