Type systems
21 belangrijke vragen over Type systems
Wat is het verschil tussen parametrische polymorfie en inclusiepolymorfie?
Inclusiepolymorfie duidt op de vorm van polymorfie die ontstaat bij overerving in objectgeoriënteerde talen.
[C7.intro]
Wat wordt verstaan onder ad hoc-polymorfie?
Voorbeelden van ad hoc-polymorfie zijn coërcie en overloading.
[C7.intro]
Welke vier vormen van polymorfie worden door Cardelli en Wegner onderscheiden?
- Coërcie
- Overloading
- Parametrische polymorfie
- Inclusiepolymorfie (overerving)
- Hogere cijfers + sneller leren
- Niets twee keer studeren
- 100% zeker alles onthouden
Noem drie vormen van subtypen in Ada
- Subrangetype: de waarden van het subtype vormen een deelverzameling van de waarden van het supertype
- Subtype van het arraytype: de array heeft een vaste indexverzameling
- Subtype van een disjuncte vereniging: de waarde van het subtype zijn uit dezelfde verzameling afkomstig
Wat wordt bedoeld als men zegt dat type T1 compatible is met type T2?
[T8.1.1]
Wat is het verschil tussen subtypes en subklassen?
[T8.1.2]
Wat is het essentiële verschil tussen typen van een disjuncte vereniging en klassen?
Deze eigenschap wordt ook wel extensibility genoemd.
[T8.1.2]
Noem een programmeertaal die context-dependent overloading ondersteunt
- Haskell
- Ada
Wat is een nadeel van context-dependent overloading?
[T8.3]
Wat is het essentiële verschil tussen overloading en parametrische polymorfie?
[T8.3]
Wat wordt in relatie tot typeconversie verstaan onder een partial mapping?
[T8.4]
Wat is het essentiële verschil tussen een cast en coërcie?
[T8.4]
Noem twee nadelen van coërcie ten opzichte van casts
- Coërcie gaat niet goed samen met parametrische polymorfie en overloading
- Coërcie is contextafhankelijk
Noem een voordeel en een nadeel van overloading
- Sluit aan bij het natuurlijk gebruik van taal, waarin eenzelfde begrip ook vaak meerdere toepassingen heeft
- Het kost extra tijd om af te leiden welke functie toegepast moet worden (het proces van 'overloading-resolutie')
Noem een voordeel en twee nadelen van contextafhankelijke overloading ten opzichte van contextonafhankelijke overloading
- Contextafhankelijke overloading biedt meer flexibiliteit
Nadelen
- Het kost meer tijd om af te leiden welke functie toegepast moeten worden
- In sommige gevallen is het niet mogelijk om af te leiden welke functie moet worden toegepast
Wat wordt bedoeld met contravariantie in de parameter van een functie?
Als S < T dan T -> U < S -> U
[C7.4]
Onder welke voorwaarden mag een methode in een subklasse worden geherdefinieerd opdat typeveiligheid statisch is gegarandeerd?
- Het nieuwe resultaattype is een subtype van het oorspronkelijke resultaattype
- Het nieuwe parametertype is een supertype van het oorspronkelijke parametertype
Wat wordt bedoeld met een overloaded literal?
[C7.4]
In welk opzicht is het typesysteem van Java nadelig als we typecasts gebruiken?
[C7.4]
Wat is in Java het essentiële verschil tussen herdefinitie en overloading van methoden?
Merk op dat bij herdefinitie als parametertype dus het type van de superklasse wordt verwacht.
[C7.4]
Geef een karakterisering van de waardenverzameling van een polymorf type
[C7.zelftoets]
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