23 juni 2014

Een mot in de computer

- programmeren: lekker rustgevend?

Best relaxed dat programmeren. Tot er een mot in je programmacode kruipt…

Programmeren en bugs Een algoritme schrijf je voor andere mensen, zodat zij kunnen begrijpen hoe iets berekend kan worden. Een computer kan hier weinig mee en heeft programmacode nodig om het algoritme uit te voeren. Om te kijken of mijn algoritmes in de ‘praktijk’ presteren, zet ik ze doorgaans om in een computerprogramma.

Gruwelijke precisie Voor mij kan programmeren best rustgevend werken: even niet te veel denken aan de wiskundige problemen die tijdens het ontwikkelen van een algoritme aan bod kwamen. Maar een computer doet altijd wat er gevraagd wordt, en dat met gruwelijke precisie. En dan kom je er achter dat wat je vraagt en wat je bedoelt soms toch echt twee verschillende dingen zijn. Zo kan het kleinste foutje in de code er voor zorgen dat het hele programma niet werkt. Kei frustrerend natuurlijk. Maar wanneer het uiteindelijk werkt, vergeet je dat weer snel. Zeker gezien de visuele aard van mijn onderzoek. Het is altijd erg leuk en verrassend om de resultaten te bekijken en zien wat er gebeurt met verschillende instellingen.

Insect Een fout in een computerprogramma wordt een bug (letterlijk: insect) genoemd. In 1947 werd deze term gebruikt in een logboek over de Mark II computer: “First actual case of a bug being found”. Een mot was in de computer vast komen te zitten en zorgde zo voor een fout in de berekening. Maar bugs zijn meestal het gevolg van een typefout of een structurele, logische fout. (Je kunt dus niet de schuld leggen bij een daadwerkelijk insect.) Een bug kan als gevolg hebben dat het resultaat anders is dan verwacht of dat het programma simpelweg stopt met werken. In andere gevallen, bijvoorbeeld in code die een computer dient te beveiligen, kan een bug leiden tot een zwak punt in de beveiliging.

Ongediertebestrijding Het is erg lastig om erachter te komen of je programma bug-vrij is. Je kunt simpelweg het programma vaak uitvoeren om te kijken of er onverwachte resultaten uitkomen. Maar dit geeft geen garantie dat de er helemaal geen bugs in de code zitten. Soms treden ze namelijk alleen op onder speciale omstandigheden. Er wordt ook veel onderzoek gedaan naar hoe je computers kunt laten controleren of een programma correct is. Maar helaas, niet alles kan worden berekend door een computer. Het is bijvoorbeeld onmogelijk om te berekenen of een programma überhaupt eindigt. Hoe dan ook; genoeg werk aan de winkel. Ik ga weer aan de ongediertebestrijding :).

Discussieer mee

0

Vragen, opmerkingen of bijdragen over dit artikel of het onderwerp? Neem deel aan de discussie.

LEES EN DRAAG BIJ AAN DE DISCUSSIE