Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) C O M P I L Z
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 (Z)couvrant plusieurs notions et - de les compiler en passant par toutes les étapes de compilation : lexique, syntaxe, sémantique, génération de code (ou interprétation)
Compil-Z COMPIL-Z offre les services suivants : Un EDITEUR pour écrire vos algorithmes fournissant toute la documentation sur le langage Z. Un INDENTEUR pour arranger vos algorithmes Un SCANNER donnant comme résultat les unités lexicales produites. Un ANALYSEUR SYNTAXIQUE montrant comment les règles de grammaire sont appliquées aux différentes lignes de vos algorithmes.
Compil-Z COMPIL-Z offre les services suivants : Un ANALYSEUR SEMANTIQUE montrant la forme interne produite (quadruplés) et toutes les tables qui lui gravitent autour. Un INTERPRETEUR montrant le déroulement de l'algorithme découpé en opérations élémentaires. L'image mémoire est aussi donnée pour voir réellement ce qui se passe à l ’exécution d'un programme. Un HYPER-TEXTE fournissant toute la documentation sur le langage considéré.
Exemple 1 de programme Z SOIT L UNE LISTE ; V, I DES ENTIERS ; Tete, P, Q DES POINTEURS VERS DES LISTES ; DEBUT POUR I := 1, 4 LIRE ( V ) ; ALLOUER ( P ) ; AFF_VAL ( P, V ) ; AFF_ADR ( P, NIL ) ; SI I = 1 Tete := P SINON AFF_ADR ( Q, P ) FSI ; Q := P FPOUR FIN
Exemple 2 de programme Z SOIT L UNE LISTE DE CHAINE ; P UN POINTEUR VERS UNE LISTE DE CHAINE ; DEBUT CREER_LISTE ( L, [ ‘C, ‘o', ‘m', ‘p', ‘i', ‘l' ] ) ; P := L ; TQ P <> NIL ECRIRE ( VALEUR ( P ) ) ; P := SUIVANT ( P ) FTQ FIN
Exemple 3 de programme Z SOIT Mc UNE MACHINE_CAR ; I UN ENTIER ; Compte UN ENTIER ; C UN CAR ; DEBUT CREER_MCAR ( Mc, [ 'fsfgs ssjs sskjs mk' ] ) ; Compte := 0 ; POUR I := 1, NBRCAR ( Mc ) : LIRECAR ( Mc, C ) ; SI C = ' ' : Compte := Compte + 1 FSI FPOUR ; ECRIRE ( Compte ) FIN