KHAWARIZM est un environnement pour apprendre et approfondir les principales structures de données et de fichiers.
KHAWARIZM offre la possibilité d'écrire des algorithmes dans un langage algorithmique (langage Z), 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.
KHAWARIZM vise la conception assistée des algorithmes.
KHAWARIZM assiste aussi l'utilisateur pour traduire son algorithme en PASCAL ou C.
KHAWARIZM offre plusieurs fenêtres montrant :
- les données (lectures)
- les résultats de l'exécution (écritures)
- les résultats de la simulation (trace complète)
A tout moment dans KHAWARIZM, vous pouvez invoquer l'aide (F1) ou actionner les opérations à l'aide de boutons
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 (ou minuscule),
. 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.
. Le "pas d'aération" est variable.
- Un interpréteur pour exécuter vos algorithmes en donnant comme résultat l'ensemble des écritures émises (Fenêtre Résultats).
- Un simulateur pour donner le déroulement complet (fenêtre "Simulation") 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 montrer le passage d'un Z-algorithme vers un programme PASCAL ou C grâce un hypertexte intégré.
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 principales structures de données.
Le langage Z est conçu principalement pour les objectifs suivants :
- l'expérimentation sur les principales structures de données, peu importe leurs implémentations, en développant des algorithmes sur
. Les vecteurs,
. Les structures,
. Les listes linéaires chaînées,
. Les listes bilatérales,
. Les files d'attente,
. Les piles,
. Les arbres de recherche binaire,
. Les arbres de recherche m-aire.
- la création et la manipulation de structures de données complexes telles que
. Liste de files d'attente,
. Liste de piles,
. Arbre de listes,
. Liste de piles de vecteurs,
. Etc.
- l'écriture d'algorithmes récursifs.
Grâce à sa machine abstraite définie sur les fichiers, le langage Z permet aussi l'utilisation des fichiers et la construction aussi bien de structures simples que complexes de fichiers.
KHAWARIZM offre toute la documentation sur le langage Z.
KHAWARIZM fournit les équivalents Z --> PASCAL et Z --> C.
KHAWARIZM donne quelques implémentations possibles en PASCAL et en C des différentes machines abstraites considérées dans le langage Z.