1 / 59

Deel I: Functionele Programmeertalen

Deel I: Functionele Programmeertalen. Hoofdstuk 3: Uitgebreide -rekening. Functioneel Programma. Een functie-applicatie FA , d.i. een programma + zijn input. Uitvoering van een programma:  -reductie tot  -normaalvorm een functioneel programma heeft slechts 1 oplossing.  -conversie.

Download Presentation

Deel I: Functionele Programmeertalen

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. Deel I: FunctioneleProgrammeertalen Hoofdstuk 3: Uitgebreide -rekening

  2. Functioneel Programma • Een functie-applicatie FA, d.i. een programma + zijn input. • Uitvoering van een programma: -reductie tot -normaalvorm • een functioneel programma heeft slechts 1 oplossing

  3. -conversie

  4. -conversie Met -regels Applicatieve reductieorde voor de -reductie

  5. Stelling van Mitschke • De -reductierelatie  voldoet aan de eigenschap van Church-Rosser

  6. Types • Typesysteem van Church: zelf opgeven van types, verificeren van types • Typesysteem van Curry: afleiden van types

  7. Types • Type: syntactische uitdrukking die geassocieerd kan worden met een -term • Semantiek van een type : de verzameling van alle -termen van dit type D • Voordelen van types: • Nagaan van de correctheid van uitdrukkingen • Efficiënte uitvoering

  8. Abstracte type-syntax • De ’s zijn typeconstanten (B,Z) • Functies zijn van het type    • Types zijn rechts-associatief (     =   (  ))

  9. Instructie • Een instructie is van de vorm M ::  met M het onderwerp, en  het predicaat

  10. Basis • Een verzameling van instructies waarin de onderwerpen allemaal verschillende -veranderlijken zijn. Een M ::  is afleidbaar uit , indien geldt dat  |M ::  met

  11. Basis

  12. Voorbeelden

  13. Onderwerpreductie

  14. -termen met een type hebben een normaalvorm •  |M ::   M heeft een normaalvorm • x.xx heeft geen type in ons typesysteem

  15. Semantiek • Het doel van de denotationele semantiek is om met elke syntactisch correcte -uitdrukking een ‘wiskundige waarde’ te associëren

  16. Semantiek • De functie die een waarde associeert met elke -expressie wordt D genoteerd Waarbij  de omgeving voorstelt

  17. Voorbeeld

  18. Behoud van betekenis • Het omgekeerde is echter niet noodzakelijk waar. Uit D(2 + 8) = D(3 + 7) kan men niet besluiten dat er moet gelden dat 2 + 8  3 + 7

  19. Striktheid

  20. Combinatoren • Combinator: klasse van a-congruente gesloten l-termen

  21. Stelling van Schönfinkelen Curry • De l-rekening kan geherformuleerd worden in de combinatorrekening met slechts één basisoperatie: de applicatie • Hiervoor zijn slechts twee combinatoren nodig: S en K,

  22. Standaard combinatorexpressie • Een combinatorexpressie waarin de enig voorkomende combinatoren S en K zijn, wordt een standaard combinatorexpressie genoemd

  23. Combinatortransformatie Waarbij U een constante, een combinator of een veranderlijke voorstelt

  24. Voorbeelden

  25. Voorbeelden

  26. Voorbeelden Typisch O(N log N) tot O(N2)

  27. Combinatoren van Turner

  28. Voorbeelden

  29. Voorbeelden

  30. Voorbeelden

  31. Voorbeelden De reductie van deze expressie geeft ons

  32. Extra combinatorreductieregels

  33. Optimalisatieregelsvan Turner

  34. Extensionele gelijkheid De B-regel heeft een speciaal geval

  35. Extensionele gelijkheid Het bewijs is door extensionele gelijkheid

  36. Supercombinatoren • Een supercombinator is een l-expressie van de vorm zodanig dat • S geen vrije veranderlijken bevat • M geen l-abstractie is (alle l’s staan voorop) • alle l-abstracties in M supercombinatoren zijn • de ariteit n 0

  37. Voorbeelden

  38. Voorbeelden Terwijl de volgende expressies geen supercombinatoren zijn

  39. Supercombinatorredex • Een supercombinatorredex is de applicatie van een supercombinator met ariteit n op n argumenten. Een supercombinatorreductie vervangt een supercombinatorredex door zijn contractum, t.t.z. het lichaam van de supercombinator met invulling van al zijn argumenten.

  40. -reductie voor supercombinatoren Waarbij de substituties simultaan uitgevoerd worden

  41. Supercombinator-transformatie: l-lifting • Gebaseerd op de abstractie van vrije veranderlijken Beide expressies zijn b-congruent • Toename omvang: typisch O(N) en in het slechtste geval O(N log N) • Het resultaat is een supercombinator indien toegepast op een combinator

  42. Voorbeelden

  43. Naamgeving Waarbij deze transformatie nogmaals kan toegepast worden

  44. of In Combinatornotatie

  45. Vereenvoudigingen l-lifting van de ly geeft ons Hetgeen kan herschreven worden als

  46. Vereenvoudigingen l-lifting van de ly geeft ons Hetgeen equivalent is met

  47. Recursie

  48. Complexiteit Aantal reducties n * 5 + 3 O(N)

  49. Type-afleiding • Types toekennen aan de argumenten +resultaat

  50. Type-afleiding • Types toekennen aan het functielichaam • Unificatie van de types

More Related