Bouwen

Uit Inf20
Versie door Eelco (overleg | bijdragen) op 30 nov 2014 om 10:20 (→‎Bouwen en bouwstenen)
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Bouwen en bouwstenen

In de Informatica "bouwen" we systemen: hardware, software, programma's, datastructuren. Bij dit bouwen hebben we te maken met:

  • elementaire bouwstenen (componenten)
  • manieren om bouwstenen samen te voegen (compositie)
    • combinatie (opeenvolging, Cartesisch product)
    • herhaling
    • keuze
  • groeperen van bouwstenen, naamgeving, abstractie (interface) - maken van eigen bouwstenen (componenten)
    • je kunt deze eigen bouwstenen gebruiken als elementaire bouwstenen


Op een hoger niveau heb je vaak met andere soorten bouwstenen te maken. Je hebt dan ook een andere vorm van compositie nodig.

Binnen een programmeertaal hebben we vaak met twee niveaus van aggregatie te maken: de normale bouwstenen van de taal, en modules of libraries. De regels voor het samenstellen van een programma met de bijbehorende libraries verloopt heel anders dan het samenstellen van de componenten (functies, objecten, classes, enz) in de taal.

Voorbeeld: bouwstenen in Javascript

Opdrachten

  • elementaire opdrachten
  • samenstellen:
    • opeenvolging (semicolon)
    • herhaling (for, while)
    • keuze (if else, case)
  • groeperen, naamgeving, abstractie: procedures (function)

Expressies

  • elementaire waarden, variabelen, functie-aanroep
  • samenstellen:
    • operatoren
    • keuze (if)
    • herhaling (map, reduce)
  • groeperen, naamgeving, abstractie: functie (function)

Data

  • elementaire waarden (Number, Boolean, String, Undefined)
  • samenstellen:
    • combinatie (Object, als Cartesisch product)
    • herhaling (Array)
    • keuze (impliciet: door dynamische typering van variabelen)
  • groeperen, naamgeving, abstractie: speciale manier van gebruik van Object

Modules, als hoger niveau van combinatie (aggregatie), zou je hier ook onder kunnen rekenen.

Verband tussen data en de verwerking daarvan

De manier waarop data samengesteld is, bepaalt de manier waarop deze data verwerkt wordt. Een herhaling in data, in de vorm van een Array, verwerk je met een herhaling in een expressie (map, reduce), of een herhaling in een opdracht (for, foreach).

Bouwen in hardware (P.M.)

HTML en CSS (P.M.)

In HTML en CSS heb je maar beperkte mogelijkheden om te bouwen. In het bijzonder heb je geen mogelijkheden voor abstractie: je kunt niet je eigen componenten maken.

Hier lijkt verandering in te komen: in HTML5 wordt gewerkt aan voorstellen voor het maken van eigen elementen, die je op dezelfde manier kunt gebruiken als de ingebouwde elementen.

Bouwen op het niveau van het web

In het web kun je een toepassing maken op basis van toepassingen van anderen. Je kunt bijvoorbeeld in je toepassing de kaarten van Google gebruiken (Google Maps), en de postcode-gegevens van postcode.nl.

Het resultaat is een netwerk van toepassingen en combinaties daarvan.