Deel i functionele programmeertalen
This presentation is the property of its rightful owner.
Sponsored Links
1 / 59

Deel I: Functionele Programmeertalen PowerPoint PPT Presentation


  • 97 Views
  • Uploaded on
  • Presentation posted in: General

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


Deel I: FunctioneleProgrammeertalen

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


-conversie

Met -regels

Applicatieve reductieorde voor de -reductie


Stelling van Mitschke

  • De -reductierelatie  voldoet aan de eigenschap van Church-Rosser


Types

  • Typesysteem van Church: zelf opgeven van types, verificeren van types

  • Typesysteem van Curry: afleiden van types


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


Abstracte type-syntax

  • De ’s zijn typeconstanten (B,Z)

  • Functies zijn van het type   

  • Types zijn rechts-associatief

    (     =   (  ))


Instructie

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


Basis

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


Basis


Voorbeelden


Onderwerpreductie


-termen met een type hebben een normaalvorm

  •  |M ::   M heeft een normaalvorm

  • x.xx heeft geen type in ons typesysteem


Semantiek

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


Semantiek

  • De functie die een waarde associeert met elke -expressie wordt D genoteerd

Waarbij  de omgeving voorstelt


Voorbeeld


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


Striktheid


Combinatoren

  • Combinator: klasse van a-congruente gesloten l-termen


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,


Standaard combinatorexpressie

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


Combinatortransformatie

Waarbij U een constante, een combinator of een veranderlijke voorstelt


Voorbeelden


Voorbeelden


Voorbeelden

Typisch O(N log N) tot O(N2)


Combinatoren van Turner


Voorbeelden


Voorbeelden


Voorbeelden


Voorbeelden

De reductie van deze expressie geeft ons


Extra combinatorreductieregels


Optimalisatieregelsvan Turner


Extensionele gelijkheid

De B-regel heeft een speciaal geval


Extensionele gelijkheid

Het bewijs is door extensionele gelijkheid


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


Voorbeelden


Voorbeelden

Terwijl de volgende expressies geen

supercombinatoren zijn


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.


-reductie voor supercombinatoren

Waarbij de substituties simultaan

uitgevoerd worden


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


Voorbeelden


Naamgeving

Waarbij deze transformatie nogmaals kan

toegepast worden


of

In Combinatornotatie


Vereenvoudigingen

l-lifting van de ly geeft ons

Hetgeen kan herschreven worden als


Vereenvoudigingen

l-lifting van de ly geeft ons

Hetgeen equivalent is met


Recursie


Complexiteit

Aantal reducties n * 5 + 3 O(N)


Type-afleiding

  • Types toekennen aan de argumenten +resultaat


Type-afleiding

  • Types toekennen aan het functielichaam

  • Unificatie van de types


Voorbeeld


Voorbeeld


Voorbeeld

Niet alle supercombinatoren hebben een type


Strictheidsanalyse

  • Transformatie naar een abstract domein

zwordt afgebeeld op 0, alle andere waarden op 1


Strictheidsanalyse

  • Transformatie voor ingebouwde functies


Voorbeeld

Na transformatie:

Striktheidsanalyse:


Voorbeeld

Striktheidsanalyse:


Fixpunt berekening

Na substitutie van deze functie krijgen we


Fixpunt berekening

Fixpunt:

Striktheidsanalyse:


  • Login