Dirigé par: Mr.Allaoui Taher
Travail Réalisé par :
BENYAMMI BACHIR & HASSANI Mustapha
4eme Année informatique cycle long
2...
2
Plan du travail
 Introduction.
 Objectif.
 Définition du Khawarizmi
 Conclusion.
P
L
A
N
D
U
T
R
A
V
A
I
L
12/01/201...
3
Introduction
 Les langages de programmation ont été nés
avec l’apparition des ordinateurs.
 Les langages de programmat...
4
 Des dizaines du L.P arabes on été construites :
‫غريب‬–‫العراق‬1978
‫بيسك‬–‫الكويت‬1981
‫سينا‬–‫السودان‬1986
‫ال‬‫...
 Un langage de programmation en arabe
peut facilité la tâche aux élèves et aux lycéennes
à comprendre et à appliquer les ...
6
Interpréteur ‫؟؟‬...
 Que ce qu’un interpréteur ?
 Quelle est la lexique du Khawarizmi ?
 Quelle est la syntaxe du Kh...
7
Interpréteur
 Un interpréteur est un programme informatique qui
exécute lui-même les opérations spécifiées par le
progr...
8
Lexique du Khawarizmi
D
E
F
I
N
I
T
I
O
N
12/01/2016 Rélisation d'un interpréteur Khawarizmi
9
Jeu de caractères
)(}{"Espace
.،‫؛‬:/
»«#~<>
=+-*÷%
‫ا‬..‫ي‬A..Za..z0..9_
J
E
U
D
E
C
A
R
A
C
T
E
R
E
S
Les caractères a...
10
Unités lexicales « tokens »
1. Les mots réservés:
2. Les variables et les fixes:
Sont les identificateurs déclarés (aya...
11
3. Les opérateurs:
Arithmétiques:
Conditionnels:
Logiques:
4. Les séparateurs:
=+-*÷%
~#<>»«
|&!
T
O
K
E
N
S
Espace " (...
12
5. Identificateurs:
 Lettres (arabes et français), chiffres et ‘_’.
 Commençant obligatoirement par une lettre.
 Pas...
Automates et expressions régulières
13
0 2
L | C
1
L # de L et C
1
C
C
2
# de C
0
0
‘"’ ‘"’
1 2
# de ‘"’
Ident -> Lettre (...
Automates et expressions régulières
(suite …)
14
A
U
T
O
M
A
T
E
S
Comm -> '' '' ( # )* EOL
Comm.multi -> '' # ( # )* ''
2...
Automate union
15
A
U
T
O
M
A
T
E
S
12/01/2016 Rélisation d'un interpréteur Khawarizmi
Table de Transitions
Etat
Sym
L C ‘’ Sep Opr Autres
_Initial _Ident _Nbr _Chaine _Sep _Opr _Erreur
_Ident _Ident _Ident _#...
Table de Transitions (suite …)
Etat
Sym
EOL Blanc  / Autres
_Initial _Initial _Initial _Carac _Slash _Erreur
_Ident _#Iden...
Table de symboles
18
N° Nom Intituler Valeur Unité Type
01 Prog ‫برنامج‬ 0 Mot Réservé Vide
02 Conste ‫ثابت‬ 0 Mot Réservé...
Chaine de références
19
N° Symbole Nom Intituler Ligne Colonne
1 1 Prog ‫برنامج‬ 1 6
2 43 Ident_1 ‫محاولة‬ 1 16
3 39 Point...
20
Syntaxe du Khawarizmi
S
Y
N
T
A
X
E
12/01/2016 Rélisation d'un interpréteur Khawarizmi
Syntaxe
21
Programme = " ‫برنامج‬ " Ident "‫"؛‬ Bloc ".".
ProgrammeProgramme IdentIdent ..BlocBloc
Bloc = [Partie_Declarat...
Syntaxe (suite …)
22
Partie_Declaration_Constantes = " "‫ثابت‬ Deffinition_Constante
{Deffinition_Constante}.
Partie_Decla...
23
Deffinition_Constante = Ident "=" Constant "‫."؛‬
Deffinition_
Constante
Deffinition_
Constante IdentIdent == ConstantC...
24
Deffinition_Variables = Idents ":" Type "‫."؛‬
Deffinition_
Variables
Deffinition_
Variables IdentsIdents :: TypeType
I...
25
Bloc_Instructions = "}" Instructions "{".
Bloc_InstructionsBloc_Instructions }} InstructionsInstructions {{
Instruction...
26
Instruction = [Lecture | Ecriture | Affectation |
Instruction_Conditionelle | Instuction_Repetition].
InstructionInstru...
27
Lecture = " ‫اقرا‬ " ")" Idents "(".
LectureLecture IdentsIdents (())
Ecriture = " ‫اطبع‬ " ")" Idents "(".
EcritureEcr...
28
Expression = Expression_Simple [Opr_Rel Expression_Simple].
ExpressionExpression Expression_
Simple
Expression_
Simple ...
29
FacteurFacteur
IdentIdent
ConstConst
ExpressionExpression
))
((
FacteurFacteur
!!
Facteur = Ident | Const | ")" Express...
30
Instruction_Conditionelle = " ‫اذا‬ " Expression "‫"فان‬
Bloc_Instructions ["‫واال‬ " Bloc_Instructions].
Instruction_C...
31
Instuction_Repetition = " ‫بينما‬ " Expression " ‫قم‬ " Bloc_Instructions.
Instuction_Repe
tition
Instuction_Repe
titio...
Arbre Syntaxique
32
A
R
B
R
E
S
Y
N
T
A
X
I
Q
U
E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
33
Exemple d’un programme
‫برنامج‬‫حساب‬_‫القوى‬_‫النونية؛‬
‫متغير‬
،‫ن‬‫م‬‫أس‬ ،‫عدد‬ ،:‫صحيح‬‫؛‬
}
Initialisation des va...
34
C
O
M
P
I
L
A
T
I
O
N
Déroulement
de la
compilation
12/01/2016 Rélisation d'un interpréteur Khawarizmi
35
 Elimination des blancs et des caractères de contrôles;
 Elimination des commentaires;
 Reconnaissance des mots rése...
36
 Méthode d'analyse par la descente récursive;
 Pour chaque non terminal, une procédure est associée;
 L'analyse est ...
37
 L'analyse est faite en parallèle avec l'analyse
syntaxique;
 Déclaration des constantes et des variables;
 Contrôle...
38
Erreurs Lexicales
 Pas de texte source;
 Caractère illégal ou code erroné;
 Identificateurs erroné ou trop long;
 F...
39
S
T
R
U
C
T
U
R
E
Structure du Khawarizmi
12/01/2016 Rélisation d'un interpréteur Khawarizmi
40
Avantages du Khawarizmi
A
V
A
N
T
A
G
E
S
Au niveau de l‘utilisation:
 Code source en arabe;
 Lettres arabe et latins...
41
IHM
I
N
T
E
R
F
A
C
E
 Ouverture et sauvegarde des fichiers à l'aide des boites de dialogue;
 Coloration syntaxique d...
Historique du Khawarizmi
12/01/2016 Rélisation d'un interpréteur Khawarizmi 42
Date Version Tâche
02-12-06 Automate union....
43
Problèmes rencontrés
 Faible support de la langue arabe dans le système d’exploitation;
 Sens inverse de quelque cara...
44
Futur améliorations
 Utilisation des procédures et des fonctions;
 Ajout des types complexes tel que les réels et les...
45
Conclusion
La réalisation du Khawarizmi nous a aidés à
comprendre et à appliquer les différents techniques et
méthodes ...
4612/01/2016 Rélisation d'un interpréteur Khawarizmi
Prochain SlideShare
Chargement dans…5
×

Réalisation d’un interpréteur en langue Arabe - Khawarizmi

509 vues

Publié le

Un langage de programmation en arabe peut facilité la tâche aux élèves et aux lycéennes à comprendre et à appliquer les principes et les notions d’algorithmique et de la programmation.

L'idée est de développer un langage destiner à l'enseignement qui combine à la fois la facilité du Pascal (utilisation des mots naturels tel que Program, Read, Write, ..) et l'abréviation du langae C ({}, ||, &&, !, …).

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
509
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
5
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Réalisation d’un interpréteur en langue Arabe - Khawarizmi

  1. 1. Dirigé par: Mr.Allaoui Taher Travail Réalisé par : BENYAMMI BACHIR & HASSANI Mustapha 4eme Année informatique cycle long 2006 - 2007 Ministère de l’Enseignement et de la Recherche Scientifique UNIVERSITE AMAR TELIDJI LAGHOUAT FACULTE DES SCIENCES ET DE L’INGENIERIE DEPARTEMENT DE GENIE INFORMATIQUE Module Compilation THÈME:
  2. 2. 2 Plan du travail  Introduction.  Objectif.  Définition du Khawarizmi  Conclusion. P L A N D U T R A V A I L 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  3. 3. 3 Introduction  Les langages de programmation ont été nés avec l’apparition des ordinateurs.  Les langages de programmation ont été fondus essentiellement pour effectuer les grands calculs.  La majorité des langages utilisent les lettres Anglo-Saxons pour définir l’ensemble des identifications.  Les messages d’erreurs sont exprimés en anglais. I N T R O D U C T I O N 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  4. 4. 4  Des dizaines du L.P arabes on été construites : ‫غريب‬–‫العراق‬1978 ‫بيسك‬–‫الكويت‬1981 ‫سينا‬–‫السودان‬1986 ‫ال‬‫العربي‬ ‫باسكال‬–‫السعودية‬1996 ...  La plupart de ces langages n’ont été pas réussites, parmi les causes on distingue :  Les différents codage des lettres arabes.  La faiblesse de la maintenance et de la mise à jour.  Les problèmes de financement.  L’existence des langages standards et puissants (Pascal, C++, JAVA, …). I N T R O D U C T I O N Introduction (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  5. 5.  Un langage de programmation en arabe peut facilité la tâche aux élèves et aux lycéennes à comprendre et à appliquer les principes et les notions d’algorithmique et de la programmation.  L'idée est de développer un langage destiner à l'enseignement qui combine à la fois la facilité du Pascal (utilisation des mots naturels tel que Program, Read, Write, ..) et l'abréviation du C ({}, ||, &&, !, …). 5 I N T R O D U C T I O N Objectif 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  6. 6. 6 Interpréteur ‫؟؟‬...  Que ce qu’un interpréteur ?  Quelle est la lexique du Khawarizmi ?  Quelle est la syntaxe du Khawarizmi ?  Quelle est la structure du”Khawarizmi ? I N T R O D U C T I O N 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  7. 7. 7 Interpréteur  Un interpréteur est un programme informatique qui exécute lui-même les opérations spécifiées par le programme source, il analyse une instruction puis l’exécute immédiatement;  A l’inverse d’un compilateur, un interpréteur travaille simultanément sur le programme et sur les données;  L’interpréteur doit être présent sur le système à chaque fois que le programme est exécuté;  Exemples d’interpréteurs: BASIC, Perl, Prolog, LISP, … C O M P L A T E U R 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  8. 8. 8 Lexique du Khawarizmi D E F I N I T I O N 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  9. 9. 9 Jeu de caractères )(}{"Espace .،‫؛‬:/ »«#~<> =+-*÷% ‫ا‬..‫ي‬A..Za..z0..9_ J E U D E C A R A C T E R E S Les caractères autorisés dans un programme écrit en ”Khawarizmi“ sont: !|& 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  10. 10. 10 Unités lexicales « tokens » 1. Les mots réservés: 2. Les variables et les fixes: Sont les identificateurs déclarés (ayant un type ) ‫برنامج‬‫تصريح‬‫صحيح‬‫طبيعي‬ ‫منطقي‬‫رمز‬‫سلسلة‬‫نعم‬ ‫ال‬‫اقرا‬‫اطبع‬‫بينما‬ ‫قم‬‫اذا‬‫فان‬‫واال‬ T O K E N S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  11. 11. 11 3. Les opérateurs: Arithmétiques: Conditionnels: Logiques: 4. Les séparateurs: =+-*÷% ~#<>»« |&! T O K E N S Espace " ( ) { } / : ‫؛‬ ، . Unités lexicales (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  12. 12. 12 5. Identificateurs:  Lettres (arabes et français), chiffres et ‘_’.  Commençant obligatoirement par une lettre.  Pas de case sensitive.  Longueur max est de 64 caractères. 6. Nombres  Suites de chiffre entre 0 et 9.  Seulement les nombres entiers sont acceptés. 7. Commentaires  ‘’ pour les commentaires d’une seule ligne.  ‘’ et ‘’ pour les commentaires multi-lignes.  Pas d’imprécation dans les commentaires. T O K E N S Unités lexicales (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  13. 13. Automates et expressions régulières 13 0 2 L | C 1 L # de L et C 1 C C 2 # de C 0 0 ‘"’ ‘"’ 1 2 # de ‘"’ Ident -> Lettre (Lettre / Chiffre)* # Nbr -> Chiffre (Chiffre)* # Chaine -> '"' ( # )* '"' A U T O M A T E S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  14. 14. Automates et expressions régulières (suite …) 14 A U T O M A T E S Comm -> '' '' ( # )* EOL Comm.multi -> '' # ( # )* '' 2 ‘’ EOL 3 # de EOL 0 ‘’ 1 0 2 ‘’ # de ‘’ ‘’ 31 # de ‘’ 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  15. 15. Automate union 15 A U T O M A T E S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  16. 16. Table de Transitions Etat Sym L C ‘’ Sep Opr Autres _Initial _Ident _Nbr _Chaine _Sep _Opr _Erreur _Ident _Ident _Ident _#Ident _Nbr _Erreur _Nbr _#Nbr _Chaine _Fin _Chaine _Chaine _Slash _#Slash _#Slash _#Slash _#Eol _#EOL _Carac _Carac _#Carac 16 T R A N S I T I O N S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  17. 17. Table de Transitions (suite …) Etat Sym EOL Blanc / Autres _Initial _Initial _Initial _Carac _Slash _Erreur _Ident _#Ident _Nbr _#Nbr _Chaine _Chaine _Slash _#EOL _#Slash _#Slash _Muti _Lignes _Comm _#Slash _#Eol _Comm _#EOL _Carac _#Carac 17 T R A N S I T I O N S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  18. 18. Table de symboles 18 N° Nom Intituler Valeur Unité Type 01 Prog ‫برنامج‬ 0 Mot Réservé Vide 02 Conste ‫ثابت‬ 0 Mot Réservé Vide …… …………… ……… ……… ……….. …… 19 Opr_Addi + 0 Opérateur Vide …… …………… ……… ……… ……….. …… 34 Parent_Ouvr ( 0 Séparateur Vide …… …………… ……… ……… ……….. …… 43 Ident_1 Factorielle Identificateur Vide 44 Ident_2 ‫أ‬ 120 Variable Entier 45 Const_1 ‫النتيجة‬ ‫النتيجة‬ Constante Chaine 46 Ident_3 ‫منعدم‬ ‫نعم‬ Variable Logic 45 Ident_4 ‫ن‬ 10 Fixe Naturel T A B L E S Y M B O L S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  19. 19. Chaine de références 19 N° Symbole Nom Intituler Ligne Colonne 1 1 Prog ‫برنامج‬ 1 6 2 43 Ident_1 ‫محاولة‬ 1 16 3 39 Point_Virgule ‫؛‬ 1 17 4 3 Variable ‫متغير‬ 2 5 5 44 Ident_2 ‫أ‬ 3 1 6 40 Deux_Point : 3 3 7 5 Entier ‫صحيح‬ 3 16 ..... … … … … … 61 35 Accolade_Ferm { 13 1 62 37 Point . 14 1 C H I N E D E R E F E R E N C E S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  20. 20. 20 Syntaxe du Khawarizmi S Y N T A X E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  21. 21. Syntaxe 21 Programme = " ‫برنامج‬ " Ident "‫"؛‬ Bloc ".". ProgrammeProgramme IdentIdent ..BlocBloc Bloc = [Partie_Declaration_Constantes] [Partie_Declaration_Variables] Bloc_Instructions. Partie_Declaration_ Constantes Partie_Declaration_ ConstantesBlocBloc Partie_Declaration_ Variables Partie_Declaration_ Variables Bloc_InstructionsBloc_Instructions S Y N T A X E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  22. 22. Syntaxe (suite …) 22 Partie_Declaration_Constantes = " "‫ثابت‬ Deffinition_Constante {Deffinition_Constante}. Partie_Declaration_ Constantes Partie_Declaration_ Constantes Deffinition_ConstanteDeffinition_Constante Partie_Declaration _Variables Partie_Declaration _Variables Deffinition_ Variables Deffinition_ Variables Partie_Declaration_Variables = " ‫متغير‬ " Deffinition_Variables {Deffinition_Variables}. S Y N T A X E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  23. 23. 23 Deffinition_Constante = Ident "=" Constant "‫."؛‬ Deffinition_ Constante Deffinition_ Constante IdentIdent == ConstantConstant Constant = [Opr_Signe] Nombre | Chaine | "‫"نعم‬ | "‫."ال‬ ConstantConstant Opr_SigneOpr_Signe NombreNombre ChaineChaine S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  24. 24. 24 Deffinition_Variables = Idents ":" Type "‫."؛‬ Deffinition_ Variables Deffinition_ Variables IdentsIdents :: TypeType Idents = Ident {'،' Ident}. IdentsIdents IdentIdent '' S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  25. 25. 25 Bloc_Instructions = "}" Instructions "{". Bloc_InstructionsBloc_Instructions }} InstructionsInstructions {{ Instructions = Instruction {"‫"؛‬ Instruction}. InstructionsInstructions InstructionInstruction S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  26. 26. 26 Instruction = [Lecture | Ecriture | Affectation | Instruction_Conditionelle | Instuction_Repetition]. InstructionInstruction LectureLecture EcritureEcriture AffectationAffectation Instruction_ Conditionelle Instruction_ Conditionelle Instuction_ Repetition Instuction_ Repetition S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  27. 27. 27 Lecture = " ‫اقرا‬ " ")" Idents "(". LectureLecture IdentsIdents (()) Ecriture = " ‫اطبع‬ " ")" Idents "(". EcritureEcriture IdentsIdents (()) Affectation = Ident "=" Expression. AffectationAffectation IdentIdent == ExpressionExpression S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  28. 28. 28 Expression = Expression_Simple [Opr_Rel Expression_Simple]. ExpressionExpression Expression_ Simple Expression_ Simple Opr_RelOpr_Rel Expression_Simple = [Opr_Signe] Terme {Opr_Add Terme}. Expression_ Simple Expression_ Simple Opr_SigneOpr_Signe TermeTerme Opr_AddOpr_Add Terme = Facteur {Opr_Mul Facteur}. FacteurFacteur Opr_MulOpr_MulTermeTerme S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  29. 29. 29 FacteurFacteur IdentIdent ConstConst ExpressionExpression )) (( FacteurFacteur !! Facteur = Ident | Const | ")" Expression "(" | "!" " Facteur | " ‫"نعم‬ | "‫."ال‬ S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  30. 30. 30 Instruction_Conditionelle = " ‫اذا‬ " Expression "‫"فان‬ Bloc_Instructions ["‫واال‬ " Bloc_Instructions]. Instruction_Con ditionelle Instruction_Con ditionelle ExpressionExpression Bloc_InstructionsBloc_Instructions S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  31. 31. 31 Instuction_Repetition = " ‫بينما‬ " Expression " ‫قم‬ " Bloc_Instructions. Instuction_Repe tition Instuction_Repe tition ExpressionExpression Bloc_InstructionsBloc_Instructions S Y N T A X E Syntaxe (suite …) 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  32. 32. Arbre Syntaxique 32 A R B R E S Y N T A X I Q U E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  33. 33. 33 Exemple d’un programme ‫برنامج‬‫حساب‬_‫القوى‬_‫النونية؛‬ ‫متغير‬ ،‫ن‬‫م‬‫أس‬ ،‫عدد‬ ،:‫صحيح‬‫؛‬ } Initialisation des variables ‫ن‬=1‫؛‬ ‫م‬=1‫؛‬ Lecture des variables ‫اقرا‬(‫أس‬ ،‫عدد‬)‫؛‬ Calcul de la puissance ‫بينما‬(‫ن‬»‫أس‬)‫قم‬ } ‫م‬=‫م‬*‫عدد؛‬ ‫ن‬=‫ن‬+1‫؛‬ {‫؛‬ Affichage du résultat ‫اطبع‬(‫عدد‬+”‫أس‬”+‫أس‬+ +”‫يساوي‬”+‫م‬)‫؛‬ {. E X E M P L E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  34. 34. 34 C O M P I L A T I O N Déroulement de la compilation 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  35. 35. 35  Elimination des blancs et des caractères de contrôles;  Elimination des commentaires;  Reconnaissance des mots réservés, des opérateurs, des séparateurs;  Reconnaissance des identificateurs, constantes (nombre, chaines de caractères);  Remplissage de la table des symboles et de la chaîne de références;  Gestion des erreurs en parallèle. Analyseur Lexical L E X I C A L 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  36. 36. 36  Méthode d'analyse par la descente récursive;  Pour chaque non terminal, une procédure est associée;  L'analyse est faite par des appels récursifs aux procédures;  Avancement lors de la reconnaissance des terminaux;  L'arbre syntaxique est construit au fur et à mesure de l'analyse;  A la reconnaissance d'un terminal; un nœud est crée;  Une feuille est crée lors de la reconnaissance d'un terminal;  Gestion des erreurs en parallèle. Analyseur Syntaxique S Y N T A X E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  37. 37. 37  L'analyse est faite en parallèle avec l'analyse syntaxique;  Déclaration des constantes et des variables;  Contrôle et conversion de types;  Affectation des types et des valeurs;  Evaluation des expressions;  Mise à jour de la table de symboles;  Gestion des erreurs; Analyseur Sémantique S E M A N T I Q U E 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  38. 38. 38 Erreurs Lexicales  Pas de texte source;  Caractère illégal ou code erroné;  Identificateurs erroné ou trop long;  Fin de commentaire attendu; Erreurs Syntaxiques Symbole attendu mais un autre est trouvé; Erreurs Sémantiques  Type attendu mais un autre est trouvé;  Variable non déclaré;  Constante ne peut pas être affecter;  Opération interdit;  Division par zéro; Gestion des erreurs E R R E U R S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  39. 39. 39 S T R U C T U R E Structure du Khawarizmi 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  40. 40. 40 Avantages du Khawarizmi A V A N T A G E S Au niveau de l‘utilisation:  Code source en arabe;  Lettres arabe et latins (plus de 60 lettres);  Chiffres et caractères spéciaux;  Déclaration des variables et des constantes;  Divers types simples (Entier, Naturel, Logique, Caractère, Chaîne);  Boucles et expressions conditionnelles;  Commentaires simples et multi-lignes;  Opérations arithmétiques, relationnelles, logiques, affectations, …  Lecture et écriture (Entrée-sortie);  Détection des erreurs avec possibilité de correction; Au niveau du la programmation:  Organisation du programme en unités et classes;  Tableaux dynamiques;  Interface utilisateur;  Séparation entre l’interface et l’interpréteur; 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  41. 41. 41 IHM I N T E R F A C E  Ouverture et sauvegarde des fichiers à l'aide des boites de dialogue;  Coloration syntaxique des mots réservés;  Affichages des données (Table de symboles, chaîne de référence, arbre syntaxique, …);  Insertion rapide des mots réservés, opérateurs, séparateurs et les caractères ASCII;  Gestion des erreurs (nature, erreur, ligne, colonne, correction);  Consultation et enregistrement des erreurs;  Commandes standard (Couper, Copier, Coller, Impression, Recherche, …);  Extension et icône particulier (.khw) aux fichiers source;  Menus, raccourcis clavier, aide, images, …;  Glisser et déposer;  Inclusion du Rapport, Présentation, Code source, Exemples; 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  42. 42. Historique du Khawarizmi 12/01/2016 Rélisation d'un interpréteur Khawarizmi 42 Date Version Tâche 02-12-06 Automate union. 23-12-06 0.030 Analyse lexicale. 16-01-07 Grammaire du Khawarizmi. 28-03-07 0.050 Analyse syntaxique. 04-04-07 0.060 Arbre syntaxique. 08-05-07 0.080 Analyse sémantique. 01-06-07 0.096 Transformation des unités du programme en classes. H I S T O R I Q U E
  43. 43. 43 Problèmes rencontrés  Faible support de la langue arabe dans le système d’exploitation;  Sens inverse de quelque caractères ( ‘}’, ‘{’, ‘)’, ‘(‘, ‘<’, ‘>’, …);  Outil de développement Borland Delphi 07 ne support pas les caractères Unicode tel que (≤, ≥, ≠, ≈, …);  Saisie des lettres latins et arabes (orientation du texte);  Difficulté de traitement des boucles et le conditionnel (pas de branchements et pas étiquettes);  Manque des ressource et d’outils au niveau de l’université (Ouvrages, Documentation, PC, Internet, …); P R O B L E M E S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  44. 44. 44 Futur améliorations  Utilisation des procédures et des fonctions;  Ajout des types complexes tel que les réels et les tableaux;  Ajout d'autres types de boucles et d'expressions conditionnelles (Répéter - jusqu’à, Pour faire fait, Cas de, …);  Réalisation de la 2éme partie du Interpréteur (synthèse : génération et optimisation du code, …);  Réécriture du code par un langage orienté objet tel que JAVA;  Adaptation pour d'autres plateformes tel que : Linux, Unix, ..;  Support pour la langue arabe (Interface, boite de dialogue, messages, …); A M E L I O R A T I O N S 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  45. 45. 45 Conclusion La réalisation du Khawarizmi nous a aidés à comprendre et à appliquer les différents techniques et méthodes d’analyse, de la compilation et de la programmation. Le choix de la langue arabe à pour but d’encourager des informaticiens à exploité cette langue dans leurs systèmes d’information. En fin, en remercie infiniment notre enseignent chargé de cours monsieur ALLAOUI Taher pour son support, son aide et son sollicitude durant toute l’année universitaire. C O N C L U S I O N 12/01/2016 Rélisation d'un interpréteur Khawarizmi
  46. 46. 4612/01/2016 Rélisation d'un interpréteur Khawarizmi

×