P R E S E N T A T I O N
K H A W A R I Z M. I
( Version sous Windows 32 et 64 )
Initiation à l'algorithmique
Conçu et réalisé par Pr D.E ZEGOUR
KHAWARIZM est un environnement d'apprentissage de l'algorithmique offrant
la possibilité d'écrire des algorithmes, de les arranger, de les dérouler ou les
simuler et de fournir toute la documentation nécessaire pour les traduire vers
le langage de programmation PASCAL.
O B J E C T I F S
KHAWARIZM vise la conception assistée des algorithmes.
KHAWARIZM assiste aussi l'utilisateur pour traduire son algorithme en PASCAL.
T R A I T E M E N T
KHAWARIZM offre les services suivants
- Un éditeur pour écrire vos algorithmes fournissant toute la documentation sur
le langage Z.
- Un indenteur pour arranger vos algorithmes.
Ses principales fonctions sont :
. Chaque instruction est écrite sur une ligne différente
. Les mots-clé sont réécrits en majuscule
. Le premier caractère de tout identificateur
est réécrit en majuscule
. Les structures de contrôle sont mises en relief
. Les instructions de même niveau commencent
sur la même colonne.
- Un interpréteur pour exécuter vos algorithmes en donnant comme résultat
l'ensemble des écritures émises par l'utilisateur.
- Un simulateur pour donner le déroulement complet de vos algorithmes en
montrant l'évolution de tous les objets manipulés. Ce qui vous aide à corriger,
voir construire vos algorithmes.
- Une documentation importante pour vous montrerle passage d'un Z-algorithme
vers un programme PASCAL grƒce un hyper-texte incorporé au niveau de l'éditeur.
L A N G A G E Z
Dans KHAWARIZM, Les algorithmes sont exprimés dans un langage algorithmique ( le
langage Z ).
La particularité du langage Z réside dans le fait de pouvoir écrire des
algorithmes sur des machines abstraites simulant les machines
rudimentaires de Turing et les structures élémentaires de données .
Le langage Z est con‡u principalement pour les objectifs suivants :
- la familiarisation avec un formalisme algorithmique ( Z ) en développant des
algorithmes ne nécessitant que des objets simples tels que la somme des N
premiers naturels, le PGCD de deux nombres, les nombres premiers inférieurs à N,
etc...
- l'expérimentation sur la machine-caractères en développant des algorithmes
tels que le nombre d'occurrences d'un caractère donné, le nombre de mots, les
mots commençant par un caractère donné, les mots contenant une chaine de
caractères donnée, etc...
- l'expérimentation sur la machine-nombres en développant des algorithmes tels
que la recherche d'une valeur donnée, le plus grand élément, le deuxième nombre
dont le carré est égal à la somme des
deux précédents, etc....
- l'initiation aux structures de données élémentaires ( tableaux, structures et
listes linéaires chaînées ) en développant des algorithmes de parcours en vu de
faire un traitement donné, des algorithmes de mises à jour tels que l'insertion
et la suppression, des algorithmes mettant en jeu plusieurs listes ou tableaux
tels que l'intersection, l'interclassement et des algorithmes de tri.
- l'apprentissage de la modularité en développant des algorithmes découpés en
modules ( action composée ou fonction ), ce qui permettra de comprendre les
notions de variables locale et globale, de paramètres formels et réels et d'une
manière générale la communication entre modules.
Grâce à sa machine abstraite définie sur les fichiers, le langage Z permet aussi
l'utilisation des fichiers et la construction de structures simples de fichiers.
Vous trouverez dans le manuel de référence
I. une présentation du langage Z,
II. une description des machines Z,
III. des exemples de Z-algorithmes,
IV. un index des mots-clés Z,
V. la syntaxe détaillée de Z sous forme de diagrammes.
D O C U M E N T A T I O N
KHAWARIZM offre toute la documentation sur le langage Z.
KHAWARIZM fournit les équivalents Z --> PASCAL.
KHAWARIZM donne quelques implémentations possibles en PASCAL des différentes
machines abstraites considérées dans le langage Z.
Toute cette documentation est réunie dans un hyper-texte sous l'éditeur.
N.B
Nous serons très ravis de recevoir toutes les suggestions et critiques qui nous
permettrons d'améliorer les prochaines versions de ce produit.
/ D.E Z E G O U R /
Institut National d'Informatique
Oued Smar, ALGER
Email : d_zegour@esi.dz
Siteweb : zegour.esi.dz
P u b
-----
1. KHAWARIZM II
KHAWARZM existe aussi pour le niveau 2 "Apprendre et Approfondir les principales
s t r u c t u r e s d e d o n n é e s e t d e f i c h i e r s"
dont les objectifs sont les suivants :
- Apprendre les principales structures de données en manipulant des piles, des
files d'attente, des listes simples et bidirectionnelles, des vecteurs de
n'importe quelle dimension, des arbres de recherches binaire et des arbres de
recherche m-aire.
- Approfondir les structures de données en manipulant des structures de données
complexes telles que des piles de files d'attente,
des listes d'arbres de recherche binaires, des listes de vecteurs de piles,
etc...
- Apprendre et approfondir aussi bien les structures simples de fichiers que les
structures les plus complexes.
2. GRAPHE-Z
GRAPHE-Z est un environnement pour développer des programmes sur les g r a p h e
s indépendamment de leur représentation mémoire.
GRAPHE - Z offre la possibilité d'écrire des algorithmes dans un langage
algorithmique spécialisé "GRAPHELANG", de les arranger,
de les dérouler ou les simuler et de fournir toute la documentation nécessaire
pour les traduire vers les langages de programmation PASCAL et C.
La particularité de GRAPHELANG réside dans le fait de pouvoir écrire des
algorithmes sur des machines abstraites simulant les graphes et
certaines structures de données indispensables pour l'élaboration des
algorithmes sur les graphes.
3. COMPIL-Z
COMPIL-Z est un outil dont le rôle est de dévoiler le fonctionnement interne des
compilateurs.
COMPIL - Z offre la possibilité d'écrire des algorithmes dans un prototype de
langage couvrant plusieurs notions, de les compiler en passant par toutes les
étapes de compilation : lexique, syntaxe, sémantique, la génération de code