Typesystemen

11 belangrijke vragen over Typesystemen

Geef een omschrijving van het begrip ad-hoc-polymorfie

Bij ad-hoc-polymorfie is er voor elk type een aparte definitie

Geef een omschrijving van het begrip overloading

Overloading is als functies met dezelfde naam kunnen werken op verschillende typen; voor elk type wordt een andere operatie uitgevoerd

Geef een omschrijving van het begrip coërcie

Een coërcie is een impliciete, door de context afgedwongen, conversie van een waarde van een bepaald type naar een corresponderende waarde van een ander type
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Geef een omschrijving van het begrip parametrische polymorfie

Bij parametrische polymorfie werken functies op verschillende typen, maar doen dit op een uniforme manier; in de typespecificatie van de functie staan typevariabelen

Geef een omschrijving van het begrip overerving

= inclusiepolimorfie
Bij inclusiepolymorfie werken functies behalve op het type waarop ze zijn gedefinieerd, ook op subtypen daarvan.
Dit is een vorm van polymorfie die vooral in objectgeoriënteerde talen toegepast wordt

Geef een omschrijving van het begrip contravariantie


In het algemeen is het echter mogelijk in een subklassetype een methode zodanig te herdefinieren dat ook haar type wijzigt, mits er aan de volgende voorwaarden is voldaan:
- het nieuwe resultaatype is een subtype van het oorspronkelijke resultaattype (covariante wijziging van het resultaattype)
- Het nieuwe parametertype is een subtype van het oorspronkelijke parametertype (contravariante wijziging van het parametertype.
Als we methoden op deze wijze in een subklassetype herdefinieren, is de typeveiligheid statisch gegarandeerd

Leg het verschil uit tussen contextafhankelijke en contextonafhankelijke overloading en geef van beide vormen een voorbeeld

Contextafhankelijke overloading geeft nog meer flexibiliteit door het toepassen van overloading op operatoren en functies. Dit gaat echter weer ten koste van extra werk voor de vertaler. Een ander nadeel van contextafhankelijke overloading is dat de programmeur en de gebruiker van het programma uit de programmatekst minder snel af kunnen leiden welke operatie eigenlijk is toegepast; dit argument speelt -alhoewel in mindere mate- zoals gezegd ook al bij het gebruik van overloading.

context-onafhankelijk: typen van de argumenten bepalen de operatie

context-afhankelijk: ook het verwachte type van het functieresultaat bepaalt de operatie

Polymorfe abstractie (functie)

Abstractie (functie) met een polymorf type, die dus mag worden toepgepast op parameters van verschillende typen, die echter een bepaalde structuur gemeen hebben.

[T8.2.1]

Leg het voordeel uit van parametrische polymorfie ten opzichte van monomorfie

Bij parametrische polymorfie werken functies uniform op typen met dezelfde structuur. De typene moeten dezelfde structuur hebben: allemaal lijsten of allemaal binaire bomen, enz. Daardoor volstaat het om 1 definitie van zo'n functie te geven

Karakteriseer de waardenverzameling van een polymorf type


Bijvoorbeeld de functie:
Le07> : type fromInteger
fromInteger:: Num a => Integer -> a
Het resultaat van de functie is dus een waarde van een type dat behoort tot de klasse Num, te weten INt, INteger, Float, Doble of Rational

Geef aan in welke mate subtypering voorkomt in Java en welke gevolgen dit heeft voor de typecontrole

Subtypering komt in Java voor. Een subtype van een functietype is alleen typeveilig als het resultaattype covariant wordt gewijzigd (covariant in het resultaat) en het parametertype contravariant wordt gewijzigd (contravariant in de parameter)

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo