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