machines de turing n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Machines de Turing PowerPoint Presentation
Download Presentation
Machines de Turing

Loading in 2 Seconds...

play fullscreen
1 / 19
ava-contreras

Machines de Turing - PowerPoint PPT Presentation

85 Views
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. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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;