Home

programmeermodellen

Een programmeermodel is een abstractie die beschrijft hoe software wordt opgebouwd en uitgevoerd. Het definieert welke concepten programmeurs gebruiken om taken te beschrijven, hoe waarden worden gemeten en gewijzigd, en hoe de uitvoering plaatsvindt, inclusief geheugenbeheer, foutafhandeling en gelijktijdigheid. Programmeermodellen vormen de basis van taalontwerp, runtimes en verificatietechnieken en beïnvloeden zowel de programmeerervaring als de prestatie van software.

Belangrijke dimensies van programmeermodellen zijn onder meer de volgorde van instructies (imperatief versus declaratief), evaluatie- en

Veel voorkomende programmeermodellen zijn: imperatief/procedureel (C, Java), functioneel (Haskell, OCaml), logisch (Prolog), en objectgeoriënteerd (Java, C++),

Programmeermodellen dienen als basis voor taalontwerp en tooling, en helpen bij het begrijpen van redenering over

Historisch gezien zijn programmeermodellen geëvolueerd van eenvoudige imperatieve notaties naar meer expressieve paradigma’s, waaronder functioneel en

geheugenstrategieën
(eager/lazy,
mutabel
versus
ongewijzigd),
en
de
manier
waarop
concurrentie
en
communicatie
plaatsvinden
(gedeeld
geheugen,
berichtgeoriënteerde
of
actor-gebaseerde
modellen).
Deze
factoren
bepalen
hoe
programma’s
gedrag
en
prestaties
kunnen
worden
voorspeld
en
welke
fouten
makkelijker
te
traceren
zijn.
die
onder
meer
encapsulatie
en
polymorfisme
benadrukt.
Daarnaast
bestaan
dataflow-
en
streamingmodellen
(LabVIEW,
sommige
DSL’s),
het
actor-model
voor
concurrerende
systemen
(Erlang,
Akka/Scala)
en
reactieve/
asynchrone
modellen
(Rx,
JavaScript
met
promises/async).
programma’s
en
bij
geautomatiseerd
testen
en
optimalisatie.
Ze
brengen
voordelen
en
nadelen
met
zich
mee:
hogere
abstractieniveaus
kunnen
de
complexiteit
van
redenering
verminderen,
maar
soms
ten
koste
van
controle
en
prestaties;
bij
gelijktijdigheid
komt
determinisme
vaak
in
conflict
met
schaalbaarheid.
declaratief,
met
formele
modellen
zoals
lambda-calculus
en
de
Turing-machine
die
de
grenzen
van
wat
berekenbaar
is
aangaven.