Programmeertalen

Een computer doet niets als mensen de computer geen instructies toedienen in de vorm van programma’s.

Programmeertalen worden in vijf hoofdcategorieën ingedeeld die een chronologische maar ook gebruiksvriendelijke volgorde hanteert:

  1. Machinecode, de eerste computers werden in machinetaal geprogrammeerd. Machinetalen zijn programmeertalen van de eerste generatie. Ze worden tot de lagere (dicht bij de processor) programmeertalen gerekend. De machinecode is echter ook iets wat voor de gemiddelde gebruiker geen invloed heeft aangezien het voor hen verborgen blijft.
  2. Assembleertalen, ook de assembleertaal is een lagere programmeertaal maar dan van de tweede generatie. Het verschil met de machinecode is dat er gebruik gemaakt wordt van gemakkelijker te onthouden lettercodes i.p.v. nullen en enen. Een assembleerprogramma dient om de lettercodes om te zetten in machine-instructies. Dit is voor alle computers de enige verstaanbare taal.
  3. Hogere programmeertalen, hier werden machineopdrachten gecombineerd in één programmaopdracht. Dit lijkt al veel meer op de menselijke taal dan de assembleertaal. De hogere programmeertalen zijn programmeertalen van de derde generatie, hier hoeft de programmeur geen kennis te hebben van de eigenschappen van de processor. De hogere programmeertaal wordt ook wel procedurele taal genoemd aangezien de programmeur de procedure voor de computer stapsgewijs moet volgen om het programma uit te voeren. Ook in de hogere programmeertalen worden de instructies uiteindelijk weer vertaald naar machinecodes. Een compiler is een vertaalprogramma dat de programmaregels omzet in machine-instructies (ze zijn wel machineafhankelijk).
  4. Vierde-generatietalen, in de talen van de vierde generatie worden de programmaopdrachten steeds krachtiger. De meeste talen van deze generatie zijn niet-procedureel ze zijn eerder systeemgericht. Een algemeen toepasbare vierde-generatietaal levert te veel grote programma’s op, omdat de software teveel ballast bevat. Hierdoor was de vierde-generatietaal toch minder praktisch dan gedacht, daarom beperkte men zich liever tot vierde-generatiehulpmiddelen.
  5. Objectgeoriënteerde talen, in de terminologie van OO wordt gesproken over methoden i.p.v. over handelingen.

Voordelen van objectoriëntatie:

  • Snellere ontwikkelingstijd door hergebruik van programmamodules.
  • Minder fouten in programmacode.
  • Betere onder houdbaarheid van programma’s doordat duidelijker is wat elk deel van de software doet.
  •  Betere uitwisselingsmogelijkheden als gevolg van vastgestelde standaards.

Problemen van objectoriëntatie:

  • Praktische onmogelijkheid om procedurele programma’s om te zetten naar OO-programma’s.
  • Geringe beschikbaarheid van programmeurs met voldoende OO-kennis.
  •  Het ontbreken van voldoende hulpmiddelen die programmeurs kunnen ondersteunen met hun werk.

Begrippen uit objectoriëntatie:

  • Objecten, het gebruik van objecten in programma’s heeft als voordeel dat het niet nodig is om te weten hoe het object technisch in elkaar zit. Het enige wat nog van belang is om te weten is hoe je het object gebruikt moet worden.
  • Klassen, klassen zijn rechtstreeks verbonden aan objecten. In de klasse wordt een lijst beschreven van alle attributen en methoden van een object.
  •  Methoden, methoden worden gebruikt om te communiceren met andere objecten en met de buitenwereld. De methoden verzorgen het gedrag van het object.
  •  Inkapseling, dit houdt in het in een object insluiten van alle zaken die het object nodig heeft om te functioneren. Door inkapseling zijn methoden en de data voor de gebruiker onzichtbaar.
  •  Overerving, objecten kunnen attributen en/of methoden van andere, vergelijkbare, objecten overnemen in dit geval wordt gesproken van overerving.