Deel i functionele programmeertalen
Download
1 / 59

Deel I: Functionele Programmeertalen - PowerPoint PPT Presentation


  • 133 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Deel I: Functionele Programmeertalen' - marah-madden


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 functionele programmeertalen

Deel I: FunctioneleProgrammeertalen

Hoofdstuk 3:

Uitgebreide

-rekening


Functioneel programma
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


-conversie

Met -regels

Applicatieve reductieorde voor de -reductie


Stelling van mitschke
Stelling van Mitschke

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


Types
Types

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

  • Typesysteem van Curry: afleiden van types


Types1
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
Abstracte type-syntax

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

  • Functies zijn van het type   

  • Types zijn rechts-associatief

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


Instructie
Instructie

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


Basis
Basis

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





Termen met een type hebben een normaalvorm
-termen met een type hebben een normaalvorm

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

  • x.xx heeft geen type in ons typesysteem


Semantiek
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



Behoud van betekenis
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



Combinatoren
Combinatoren

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


Stelling van sch nfinkel en curry
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
Standaard combinatorexpressie

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


Combinatortransformatie
Combinatortransformatie

Waarbij U een constante, een combinator of een veranderlijke voorstelt




Voorbeelden

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






Voorbeelden

De reductie van deze expressie geeft ons




Extensionele gelijkheid
Extensionele gelijkheid

De B-regel heeft een speciaal geval


Extensionele gelijkheid

Het bewijs is door extensionele gelijkheid


Supercombinatoren
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

Terwijl de volgende expressies geen

supercombinatoren zijn


Supercombinatorredex
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
-reductie voor supercombinatoren

Waarbij de substituties simultaan

uitgevoerd worden


Supercombinator transformatie l lifting
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



Naamgeving
Naamgeving

Waarbij deze transformatie nogmaals kan

toegepast worden


In combinatornotatie

of

In Combinatornotatie


Vereenvoudigingen
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



Complexiteit
Complexiteit

Aantal reducties n * 5 + 3 O(N)


Type afleiding
Type-afleiding

  • Types toekennen aan de argumenten +resultaat


Type-afleiding

  • Types toekennen aan het functielichaam

  • Unificatie van de types




Voorbeeld

Niet alle supercombinatoren hebben een type


Strictheidsanalyse
Strictheidsanalyse

  • Transformatie naar een abstract domein

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


Strictheidsanalyse

  • Transformatie voor ingebouwde functies


Voorbeeld2
Voorbeeld

Na transformatie:

Striktheidsanalyse:


Voorbeeld

Striktheidsanalyse:


Fixpunt berekening
Fixpunt berekening

Na substitutie van deze functie krijgen we


Fixpunt berekening

Fixpunt:

Striktheidsanalyse:


ad