1 / 19

Machines de Turing

Machines de Turing. Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dz. Machines de Turing : Objectif.

Download Presentation

Machines de Turing

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Machines de Turing Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_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 l’initiation à l’algorithmique • Ces machines offrent les opérations suivantes : CREER_MCAR, LIRECAR, NBRCAR CREER_MNOMBRE, LIRENOMBRE, NBRNOMBRE • Sémantique des machines de Turing : Il s’agit 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 l’objet machine-caractères B : pointeur dans TABOB vers la constante chaîne de caractères A : pointeur TABOB vers l’objet machine-caractères B : pointeur dans TABOB vers l’identificateur A : pointeur TABOB vers l’objet 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 l’objet machine-nombres B : pointeur dans TABCOMP vers la liste des expressions C : Nombre d’expressions A : pointeur TABOB vers l’objet machine-nombres B : pointeur dans TABOB vers l’identificateur A : pointeur TABOB vers l’objet 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 <Algo Z>  [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [;] { ~<Act> | <Fonct>~ [;] }* <Act> ActionIdf [ ( <Li> ) ] [;] [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Fonct> FonctionIdf( <Li> ): <Typ> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Ps>  <S>;{ [~Soit|Soient~] <S>;}* <S>  <Li>[Sep ~<Typ>|~Action|Fonction(<Typ>)~ ~] <Li>  Idf {,Idf}*

  7. Machines de Turing : Déclarations <Typ>  Types | <Structsimple> | <Structcomplexe> | Tableau(<Lc>) [De~<Structsimple> | Types~ ] | <Structsimple>  [Structure ](Types {, Types }*) <Structcomplexe> [Structure ]( ~ Types | Vecteur(Cste)De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*)  <Lc>  Cste {, Cste}* Machine_car | Machine_nombre |

  8. Machines de Turing : Instructions < Lis >  < Inst > { ; < Inst > }* <Inst>  Idf:= <Exp> | Lire(Idf {, Idf }* ) | Ecrire(<Exp> {,<Exp>}* ) | Tantque <Exp> [ : ] <Lis> Fintantque | Si <Exp> [:] <Lis> [Sinon <Lis>] Fsi | PourIdf:= <Exp>,<Exp> [, <Exp>][:] <Lis> Finpour | AppelIdf [(Exp {,<Exp>}*)] |

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

  10. Machines de Turing : Expressions <Exp>  <Exps>[ Opr <Exps>] <Exps>  [Sign] <Terme> { Opa <Terme> }* <Terme>  <Facteur>{Opm <Facteur>}* <Facteur> Idf [(Exp {,<Exp>}*)] | Cste | ( <Exp>) | <Fonct> | Non <Facteur> | Vrai | Faux | Chaine  <Fonct> Element( <Fonct> [[ <Exp> {, <Exp> }* ]]) | Struct( Idf, Cste) | ~Nbrcar|NbrNombre~ (Idf)

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

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

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

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

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

  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 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 LONGZDD 5 9 TABOB TABTYP MCESB 10 11 TABCONS 'abc df yhr.‘,’0’,’.’,’1’ Quadruplés générés 0 1 2 3 TABCOMP 0 2

  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 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 ‘12’,’54’,’67’,’11’,’23’,’0’,’1’ 9 9 0 1 2 3 4 5 6 10 10 TABCONS 11 11 LONGZDD 6 Quadruplés générés 12 TABTYP MNEB 13 TABCOMP 0 4,5,6,7,8 TABOB 1 2

  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;

More Related