1 / 21

Tipus Formes Normals i Pas de Paràmetres

Tipus Formes Normals i Pas de Paràmetres. David Moreno Oliveras. Ordres de Reducció. L’ordre de Reducció és l’estratègia que indica quin redex cal seleccionar a cada pas de la reducció

zita
Download Presentation

Tipus Formes Normals i Pas de Paràmetres

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. Tipus Formes Normals i Pas de Paràmetres David Moreno Oliveras

  2. Ordres de Reducció • L’ordre de Reducció és l’estratègia que indica quin redex cal seleccionar a cada pas de la reducció • Cal buscar un redex en l’expressió, reduïr-lo i repetir aquest procés fins que l’expressió estigui en Forma Normal • Forma Normal == idea “Fi Còmput” mentre hagi_redex reduïr un_redex

  3. Forma Normal (I) • No totes les expressions ténen Forma Normal No està en Forma Normal Si intentem β – Reduïr : β No està en Forma Normal ... EL CÒMPUT DE L’EXPRESSIÓ NO ACABA I NO TÉ UNA FORMA NORMAL

  4. Forma Normal (II) • Church-Rosser mitjançant un Teorema afirma i demostra que si una expressió té Forma Normal aquesta és únicaexcepte α-equivalències • Sempre podem trobar la Forma Normal d’una expressió si existeix? En quin ordre fem les Reduccions ? • Ordre Normal • Ordre Aplicatiu

  5. Ordre Aplicatiu – CBV (I) • Seleccionar el redex més INTERN(el més aniuat) i més a l’esquerra. • Estratègia coneguda com pas de paràmetres per valor (call by value). • Es redueixen primer els paràmetres de la funció. Es redueix l’argument de la funció abans d’avaluar-se. Quan es coneixen els valors ens substitueixen a l’equació de la funció. PROBLEMA:Molts cops fan reduccions innecessàries per calcular valor de l’expressió.

  6. Ordre Aplicatiu – CBV (II) • Exemple 1 : zero :: Integer -> Integer zero x = 0 zero (10*4) per operador (*) = zero (40) per definició de zero = 0 • Exemple 2 :doble :: Integer -> Integer doble x = x+x doble (doble 3) per definició de doble = doble (3+3) per definició de l’operador (+) = doble (6) per la definició de doble = 6+6 per l’operador (+) = 12

  7. Ordre Normal – CBN (I) • Seleccionar el redex més EXTERN(el menys aniuat) i més a l’esquerra. • Estratègia coneguda com pas de paràmetres per nom o referència (call by name). • Es passen com a paràmetres expressions en comptes de valors. Es redueix primer l’aplicació de la funció. • És Normalitzant : Si l’expressió té forma normal, seguint aquesta estratègia segur que es troba la forma normal (Teorema d’estandarització)

  8. Ordre Normal – CBN (II) • Exemple :doble :: Integer -> Integer doble x = x+x doble (doble 3) per definició de doble = (doble 3)+ (doble3) per definició de doble = (3+3) + (doble 3) per l’operador (+) = 6 + (doble 3) per definició de doble = 6 + (3+3) per l’operador (+) = 6 + 6 per l’operador (+) = 12 6 reduccions

  9. Ordre Normal / Ordre Aplicatiu • Teorema Estandarització : Si té Forma Normal la trobarem aplicant reducció d’Ordre Normal Ordre Normal : (λx.y) (λx.xx) (λx.xx)y Ordre Aplicatiu (λx.y) (λx.xx) (λx.xx) (λx.y) (λx.xx) (λx.xx) (λx.y) (λx.xx) (λx.xx) ... β β β β Seqüència infinita de valors

  10. Avaluació Lazy o Lenta (I) • Consisteix en utilitzar pas per nom i recordar els valors dels arguments ja calculats per evitar recalcular-los. • També s’anomena pas de paràmetres per necessitat (call by need) • Molt útil per treballar amb llistes infinites. • Aquest tipus d’avaluació l’utilitza Haskell

  11. Avaluació Lazy o Lenta (II) • Exemple : doble (doble 3)per la definició de doble a + a on a = doble 3 per la definició de doble a + a on a = b + b on b = 3 per l’operador (+) a + aon a = 6 per l’operador (+) 12 4 reduccions

  12. Head Normal Form (I) • En λ-càlcul els termes poden ser: x : Variable M N : Aplicació λx.M : Abstracció M pot ser : • HEAD NORMAL FORM (HNF) si té la forma : • Es pot fer un Head Reduction (reducció reiterada del redex de capçalera) Redex capçalera

  13. Head Normal Form (II) Formalitza l’ús parcial d’objectes (funcions, llistes) infinits. Ex : SI (HNF) x, λx.y((λx.x x)(λx.x x)) NO (HNF) λy.(λx.a) y admet head reduction λy.a

  14. Head Normal Form (III) • Head Reduction determina de forma única una seqüència de termes (aquesta seqüència pot acabar o no) • Reduïnt un terme M a la seva HNF obtenim una quantitat finita de la seva informació • Ex : ceros´ = Y (par 0) ceros´= (0,(0,(0....))) ceros´* par 0 ceros´ = (λxyf.f x y) 0 ceros´ * λf.f 0 ceros´ (HNF) = λf.f 0 (λf.f 0 ceros´) * ...primero ceros´* 0 computacions finites d’un valor infinitprimero (segundo ceros´)* 0

  15. Forma Normal / Head Normal Form • Un terme en Forma Normal també està en HNF • Un terme pot estar en HNF i no estar en Forma Normal Ex:λx.x (λz.zb)SI en HNF (no té redex capçalera) NO es una Forma Normal λx.x b Forma Normal β

  16. Forma Normal / Head Normal Form • Un terme pot no tenir Forma Normal i tampoc HNF Ex: (λx.xx) (λx.xx) • Un terme pot tenir vàries HNF Ex: (λx. (λz.z)x) ((λz.z) (λz.z)) HNF : λx.x((λz.z) (λz.z)) HNF : λx.x(λz.z)

  17. Weak Head Normal Form • Inici : Wadsworth en 1976 i permet, entre altres coses, distinguir certs còmputs que no acaben. • WHNF : (són termes sense redex extern) • Constant • λx.E • f E1E2...En si f és una constant o funció d’aritat n>=0 • Si un terme està en HNF també està en WHNF

  18. Head Normal Form / Weak Normal Form (I) • En HNF s’avaluen les λ-abstraccions internes i en WHNF no s’avaluen. • Ex : λx.(λz.z) M NO està en HNF SI està en WHNF (no té redex extern) • Ex2 : λx.(λy.λx.+ x y) x SI WHNF i no és necessari reduïr redex més intern. Procés acaba únic redexPROBLEMA : DUPLICITAT IDENTIFICADOR

  19. Head Normal Form / Weak Normal Form (II) • Nomès quan l’expressió és aplicada a un argument cal reduïr per Ordre Normal(redex més extern de més a l’ esquerra) i obtenir la WHNF. • Ex3 : (λx.(λy.λx.+ x y) x) 4 NO WHNF (λy.λx.+ x y) 4 λx.+ x4 SI WHNF EVITEM EL PROBLEMA DE DUPLICITAT IDENTIFICADOR PERQUÈ ES REDUEIX EL REDEX MÉS EXTERN, QUE NO TÉ VARIABLES LLIURES β β

  20. WHNF i Paràmetres • Al aplicar reduccions a (λ.N)M : • Ordre Normal (call by name) : Poden redüïr (λ.N) M sense haver de reduïr M prèviament a WHNF • Ordre Aplicatiu (call by value) : Prèviament cal reduïr l’expressió M a WHNF abans de reduïr (λ.N) M

  21. PREGUNTES

More Related