Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parIsabelle Renault Modifié depuis plus de 11 années
1
Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI) www.zegour.uuuq.com email: d_zegour@esi.dzd_zegour@esi.dz
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 X314 0 1 2 TABOB 5 LONGZDD 3 Quadruplés générés Dc1 De2 Creer03 Lirec01 Aff24 <>156 B6711 +E278 Aff28 Lirec01 Br5 Ecrire01 1 2 3 TABTYP MCESB 0 'abc df yhr.,0,.,1 TABCONS 0 1 2 3 4 5 6 4 5 6 7 8 7 8 TABCOMP 2 0 9 10 11
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 X316 0 1 2 TABOB 6 LONGZDD 3 Quadruplés générés Creer005 Aff29 :=310 Nbrno011 <=31112 B 611 Lireno01 +E2113 Aff213 +E3103 Br4 Ecrire11 1 2 3 TABTYP MNEB 0 12,54,67,11,23,0,1 TABCONS 0 1 2 3 4 5 6 4 5 6 4 5 6 7 8 7 8 9 TABCOMP 4,5,6,7,8 0 2 1 10 11 12 13 9 10 11
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;
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.