La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)

Présentations similaires


Présentation au sujet: "Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)"— Transcription de la présentation:

1 Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)

2 Machines de Turing : Objectif On définit deux machines rudimentaires de Turing : machine- caractères et machine-nombres. Ces machines permettant linitiation à lalgorithmique Ces machines offrent les opérations suivantes : CREER_MCAR, LIRECAR, NBRCAR CREER_MNOMBRE, LIRENOMBRE, NBRNOMBRE Sémantique des machines de Turing : Il sagit de les transformer en des formes internes qui permettent de faciliter leur interprétation ou génération de code.

3 Sémantique des machines de Turing : Quadruplés Machine-caractères CREER_MCAR(M, [Chaine]), LIRECAR(M,Caractere), NBRCAR(M) A : pointeur TABOB vers lobjet machine-caractères B : pointeur dans TABOB vers la constante chaîne de caractères A : pointeur TABOB vers lobjet machine-caractères B : pointeur dans TABOB vers lidentificateur A : pointeur TABOB vers lobjet machine-caractères C : pointeur dans TABOB vers le résultat (Créer_mcar, A, B, ) (Lirecar, A, B, ) (Nbrcar, A,,C )

4 Sémantique des machines de Turing : Quadruplés Machine-nombres : CREER_MNOMBRE(M, [Exp1, Exp2, …]), LIRENOMBRE(M,Nombre), NBRNOMBRE(M) A : pointeur TABOB vers lobjet machine-nombres B : pointeur dans TABCOMP vers la liste des expressions C : Nombre dexpressions A : pointeur TABOB vers lobjet machine-nombres B : pointeur dans TABOB vers lidentificateur A : pointeur TABOB vers lobjet machine-nombres C : pointeur dans TABOB vers le résultat (Créer_mnombre, A, B, C ) (Lirenombre, A, B, ) (Nbrnombre, A,,C )

5 Machines de Turing : Déclarations Types dans {Entier, Booleen, Car, Chaine} Sep dans {:, Un, Une, Des} Cste constante numérique entière Chaîne chaîne de caractères Idf identificateur Opr dans {, >=, =, <> } Opa dans { +, -, Ou } Opm dans { *, /, Et } Sign dans {+, -} Tableau est synonyme de Vecteur Init_tableau est synonyme de Init_vecteur

6 Machines de Turing : Déclarations [ ~Soit|Soient~ ] Debut Fin [;] { ~ | ~ [;] }* Action Idf [ ( ) ] [;] [ ~Soit|Soient~ ] Debut Fin Fonction Idf ( ) : [ ~Soit|Soient~ ] Debut Fin ;{ [~Soit|Soient~] ;}* [Sep ~ |~Action|Fonction( )~ ~] Idf {, Idf}*

7 Machines de Turing : Déclarations Types | | | Tableau ( ) [De~ | Types~ ] | [Structure ](Types {, Types }*) [Structure ]( ~ Types | Vecteur(Cste) De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*) Cste {, Cste}* Machine_car | Machine_nombre |

8 Machines de Turing : Instructions { ; }* Idf := | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) | Tantque [ : ] Fintantque | Si [:] [Sinon ] Fsi | Pour Idf:=, [, ][:] Finpour | Appel Idf [(Exp {, }*)] |

9 Machines de Turing : Instructions ~ Init_vecteur | Init_struct | ~ ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) | Aff_element ( [[ {, }* ]], ) | Aff_struct(Idf, Cste, ) | Creer_mnombre Creer_mcar (Idf, [[ Chaine ]] ) | ~Lirecar|Lirenombre~ (Idf, Idf)

10 Machines de Turing : Expressions [ Opr ] [Sign] { Opa }* {Opm }* Idf [(Exp {, }*)] | Cste | ( ) | | Non | Vrai | Faux | Chaine Element ( [[ {, }* ]] ) | Struct ( Idf, Cste) | ~Nbrcar|NbrNombre~ (Idf)

11 Sémantique des machines de Turing : Fonctions sémantiques Machine_car | Machine_nombre Description Fx Fonctions sémantiques et Descriptions à trouver

12 Sémantique des machines de Turing : Fonctions sémantiques Creer_mnombre ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) | Description Fx Fonctions sémantiques et Descriptions à trouver

13 Sémantique des machines de Turing : Fonctions sémantiques Creer_mcar(Idf, [[ Chaine ]]) Description Fx Fonctions sémantiques et Descriptions à trouver

14 Sémantique des machines de Turing : Fonctions sémantiques ~Lirecar|Lirenombre~ (Idf, Idf) Description Fx Fonctions sémantiques et Descriptions à trouver

15 Sémantique des machines de Turing : Fonctions sémantiques ~Nbrcar|NbrNombre~ (Idf) Description Fx Fonctions sémantiques et Descriptions à trouver

16 Sémantique des machines-caractères : Exemple Soit mc une machine_car; c un car; compte un entier; debut creer_mcar(mc, ['abc df yhr.'] ); lirecar(mc, c); compte := 0; tq c <> '.' compte := compte + 1; lirecar(mc, c) ftq; ecrire(compte) fin L120 L211 L312 C210 C211 C212 X513 C413 X TABOB 5 LONGZDD 3 Quadruplés générés Dc1 De2 Creer03 Lirec01 Aff24 <>156 B6711 +E278 Aff28 Lirec01 Br5 Ecrire TABTYP MCESB 0 'abc df yhr.,0,.,1 TABCONS TABCOMP

17 Sémantique des machines-nombres : Exemple Soit mn une machine_nombre; n un entier; somme un entier; i un entier; debut creer_mnombre(mn, [12,54,67,11,23] ); somme := 0; pour i:=1, nbrnombre(mn) lirenombre(mn, n); somme := somme + n; fpour; ecrire(somme) fin L120 L311 L312 L313 C310 C311 C312 C313 C314 C315 C326 X314 X415 X TABOB 6 LONGZDD 3 Quadruplés générés Creer005 Aff29 :=310 Nbrno011 <=31112 B 611 Lireno01 +E2113 Aff213 +E3103 Br4 Ecrire TABTYP MNEB 0 12,54,67,11,23,0,1 TABCONS TABCOMP 4,5,6,7,

18 Machines de Turing : Interprétation Implémentation de la Machine-Caractères (Description PASCAL) TYPE Typemcar = ^Elementmcar; Elementmcar = RECORD Adrchaine : Typechaine ; Nombre : INTEGER; Indice_courant : INTEGER END;

19 Machines de Turing : Interprétation Implémentation de la Machine-nombres (Description PASCAL) TYPE Typemnombre = ^Elementmnombre; Elementmnombre = RECORD Adrvect : POINTER ; Nombre : INTEGER; Indice_courant : INTEGER END;


Télécharger ppt "Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)"

Présentations similaires


Annonces Google