Naar de content

Hoe werkt programmeertaal?

Computers vatten opdrachten letterlijk op

Bruno van Wayenburg voor NEMO Kennislink

Computers volgen opdrachten op, net als een robot. Zonder instructie komt de robot of computer niet in beweging. Om een computer aan het werk te zetten, moet je dus de juiste opdracht geven. Daar komt meer bij kijken dan je denkt. Je moet alles in detail voorkauwen en elk deelstapje van de handeling in de juiste volgorde aanreiken, anders gaat het mis.

14 oktober 2016

Hoe werkt de taal van een computer? Hier uitgelegd in drie minuten.

Stap in de auto! Voor ons mensen is die opdracht helder. We doen eerst de deur van onze woning open, lopen dan naar de parkeerplaats, doen de autoportier open, bukken om in te stappen zonder ons hoofd te stoten, gaan op de juiste plek zitten en doen dan vaak ook nog de gordel om.

Om computers zo gebruiksvriendelijk te maken, hebben programmeurs in detail instructies gegeven aan de programma’s die we gebruiken. Een kind kan daardoor de was doen.

Flickr, Paul Inkles via CC BY 2.0

Bij computers werkt het helaas niet zo. Als een robot dezelfde opdracht krijgt, neemt hij die letterlijk. Hij zal door de muur van de woning lopen, door het staal van de auto en niet gaan zitten maar blijven staan. Niemand heeft hem immers opdracht gegeven netjes de deur van de woning en het autoportier open te doen, te bukken en te gaan zitten. Ook de opdracht om de autogordel om te doen, moet in deelopdrachten worden gegeven.

Mini-cursus Mini-cursus Hoe werkt een computer?

Deze animatie en dit artikel zijn onderdeel van een serie over de werking van de computer. De volgende aflevering Hoe werkt internet? verschijnt 11 november op de themapagina Big Data.
Bekijk ook de eerste aflevering Hoe werkt een computer?

Voor een simpele handeling moeten programmeurs dus al duizenden opdrachten geven. Zo’n lijst met opdrachten heet een programma. Computers werken door een rij van opdrachten uit te voeren die voor ze zijn gemaakt; een algoritme is zo’n serie van opdrachten om een taak uit te voeren.

Programmeertaal

Computers communiceren alleen in binaire code, nullen en enen. Om te voorkomen dat een programmeur oneindig combinaties van deze cijfers in moet voeren (bijvoorbeeld 00000000, 00000001, 0001000010 enzovoorts) zijn programmeertalen bedacht. Die programmeertaal, regulier in het Engels, bevat normale menselijke woorden. In het plaatje zie je een voorbeeld van een programmeertaal.

Om de programmeercode uit het plaatje om te zetten naar de binaire code, die de computer gebruikt, is een interpretatietaal nodig. Deze taal zet met behulp van een interpreter (een soort vertaalmachine) de code om in betekenisvolle instructies. Het is dus een taal die de programmeertaal vertaalt naar binaire code, zodat de computerprogrammeur niet alle opdrachten in nullen en enen hoeft te geven. Een bekend voorbeeld is javascript. Degene die een website maakt, kan javascript-code in de webpagina’s opslaan. Wanneer jij als bezoeker van de website de pagina opent, wordt de leesbare programmeercode door de browser vertaald en uitgevoerd, zodat je een normale tekst of plaatjes ziet op het scherm.

Hoe gaan we naar Rome?

Een programmeertaal zorgt ervoor dat je de computer instructies kunt geven en dat die doet wat jij wil. Er zijn echter, zoals het spreekwoord luidt, meerdere wegen om naar Rome te komen. Er zijn dus verschillende soorten programmeertaal, gebaseerd op verschillende stijlen en denkpatronen. We noemen deze stijlen ook wel programmeerparadigma’s. Je kunt dit zien als een verzameling theorieën over hoe je in een programmeertaal een (wiskundig) probleem op kunt lossen.

Er zijn zes verschillende programmmeerparadigma’s: imperatief (bijvoorbeeld C en Basic), objectgeoriënteerd (bijvoorbeeld Java en C#), logisch (bijvoorbeeld Prolog), symbolisch, declaratief, functioneel (bijvoorbeeld Haskell en Lisp). Bij imperatief programmeren geef je bijvoorbeeld opdrachten, je zegt wat er gedaan moet worden. Bij declaratief programmeren geef je aanwijzingen, je geeft aan wat het resultaat moet worden. De verschillende programmeertalen hebben één ding gemeen: werken met patronen. Speel je een spel waarbij het poppetje steeds omhoog springt, dan is dat steeds dezelfde herhalingscode, en scheelt dat dus veel werk voor de programmeur.

Overigens zijn er tegenwoordig ook gebruiksvriendelijke programma’s, waarbij je de code niet altijd meer hoeft te kennen. Zo sleep je bij Lego Mindstorms-robots de code in visuele blokjes bij elkaar. Hetzelfde geldt voor Scratch. Mindstorms is een programmeerbare robotbouwset waarmee je je eigen Lego-robots kunt bouwen, programmeren en besturen. Scratch is een visuele programmeertaal, waarmee kinderen vanaf acht jaar animaties, spellen en interactieve verhalen kunnen maken.

Scratch is een van de bekendste voorbeelden van een visuele programmeertaal. Het werkt met plaatjes, je hoeft dan geen code te kennen.

ReactiesReageer