Imperative programming

14 belangrijke vragen over Imperative programming

Noem zeven punten van kritiek op de taal C

  • C voldoet slecht aan de ontwerpprincipes voor een programmeertaal
  • Het typesysteem is zwak
  • C kent geen abstractie van gegevens, geen generieke abstracties en geen exceptions.
  • C heeft een beperkt aantal primitieve typen
  • C ondersteunt geen directe recursieve typen
  • Opdracht kunnen in onleesbare vorm geformuleerd worden
  • Door de onafhankelijke compilatie kan de consistentie in gevaar komen.

[C12.3 opgave 12.2]


Bij de programmeertaal C kunnen diverse punten van kritiek genoemd worden. Noem een positieve kant van C.

C is een populaire programmeertaal die uitstekend gebruikt kan worden voor het schrijven van efficiënte software op systeemniveau.

[C12.3 opgave 12.2]

Noem zeven punten van kritiek op de taal Ada

  • Ada voldoet aan geen van de ontwerpprincipes volledig
  • Polymorfie is niet mogelijk
  • Ada kent geen typeklassen à la Haskell
  • Recursieve typen zijn alleen mogelijk met behulp van pointers
  • De mogelijkheid van 'unchecke deallocation' van heap-variabelen
  • Er is een overbodige goto-opdracht
  • De taal is groot en lastig te leren.

[C12.zelftoets opgave 4]

  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Noem twee redenen waarom imperatieve programmeertalen nog steeds gebruikt worden

  • Herschrijven van bestaande programma's in een andere taal kost geld;
  • Imperatieve programmeertalen maken efficiënt gebruik van de hardware.
[C12.intro]

Wat is de essentie van imperatief programmeren?

Imperatief programmeren is gebaseerd op het geven van opdrachten die variabelen in het geheugen veranderen.
[C12.intro]

Noem drie voorbeelden van imperatieve programmeertalen

  • C
  • Ada
  • Pascal
[C12.intro] [T11.1]

Noem de vier key concepts van imperatief programmeren

  • variables
  • commands
  • procedures (which abstract over commands)
  • data abstraction
[T11.1]

Wat is de belangrijkste motivatie om data abstraction toe te passen?

Loose coupling: de implementatie van het abstractie type kan gewijzigd worden zonder dat dit gevolgen heeft voor andere programmaonderdelen.
[T11.2]

Wat is het verschil tussen onafhankelijke vertaling en gescheiden vertaling?

Bij gescheiden vertaling vindt typecontrole plaats over de grenzen van de modulen heen. Bij onafhankelijke vertaling gebeurt dit niet.
[T11.3.5] [T11.4.7]

Wat is het verschil tussen static data structures en dynamic data structures?

Een static data structure is opgebouwd zonder pointers, terwijl een dynamic data structure met pointers is opgebouwd.
[T11.4.5]

Waarom wordt in Ada de implementatie van een abstract type in de package specification opgenomen, en niet in de package body?

De implementatie van een abstract type wordt in de package specification opgenomen omdat de compiler aan de hand van de package specification bepaald hoeveel ruimte voor de variabelen van het abstracte type gereserveerd moet worden.
[T11.4.5]

Waarom zijn in Ada de package specification en de package body aparte compilation units?

Hiermee wordt bereikt dat na een wijziging van de implementatie alleen de package body opnieuw gecompileerd hoeft te worden. De package specification en de applicatiecode hoeven niet opnieuw gecompileerd te worden.
[T11.4.7]

Wat is het verschil tussen een generiek type (Ada) en een (geparametriseerd) polymorf type?

Een generiek type in Ada moet eerst geïnstantieerd worden met een concreet elementtype als actuele parameter. Er worden dus verschillende typen met verschillende functies gecreëerd.
Een polymorf type is één type waarbij het type van de elementen willekeurig is. De functies van het type zijn polymorfe functies, waarvan dus ook maar één versie bestaat.
[C12.4]

Welke concepten zijn niet in C aanwezig, maar wel in Ada?

  • Packages (encapsulation)
  • Generieke abstracties
  • Generieke functies en procedures
  • Overloading (door programmeur)
  • Exceptions
[C11.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
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo