Home Research Education Publications Activities Resources About Me

Kader: Broncode en compilatie

Een computerprogramma is een lijst van instructies die een computer vertelt wat te doen. Deze instructies moeten voor een computer begrijpelijk zijn en dus uiteindelijk uit slechts nullen en enen bestaan. Mensen zien liever instructies op een hoger abstractieniveau. De zogenaamde broncode van programmeertalen bestaat uit zulk abstractere instructies, van de vorm 'if [...] then [...] else [...]' of 'while [...] do [...]'. Een compiler is een speciaal computerprogramma (een 'meta'-programma) dat zulke broncode vertaalt naar zogenaamde executeerbare code (nullen en enen) die de computer direct begrijpt. De bekende .exe-files zijn het resultaat van zo'n compilatie.

Wanneer een programma geleverd wordt in executeerbare vorm is het voor mensen (behalve voor echte freaks) niet te lezen. Dit geeft een natuurlijke bescherming van het intellectuele eigendom dat in programma's vervat is en is daardoor vanuit bedrijfsmatig oogpunt aantrekkelijk. De klant kan echter niet nagaan of er foute of oneigenlijke instructies in een programma voorkomen. Indien de broncode beschikbaar is, is dat in principe wel mogelijk. Echter, de broncode van moderne programma's bestaat niet zelden uit honderdduizenden of miljoenen regels en is daardoor menselijkerwijs ook niet in het geheel te bevatten. Specifieke onderdelen kan men echter wel in detail bekijken.

Door het beschikbaar stellen van broncode die bijvoorbeeld op stemmachines draait krijgt het publiek in principe de mogelijkheid om in te zien hoe de stemmen geteld worden. Dit lijkt een zeer redelijke verwachting, zeker omdat iedere burger het recht heeft het tellen van op papier uitgebrachte stemmen bij te wonen. Maar daarmee is men er nog niet. Er dient wel duidelijk te worden gemaakt dat het juist deze beschikbaar gestelde broncode is die, in gecompileerde vorm, in stemmachines gebruikt wordt. Dit zou bijvoorbeeld door een speciaal soort notaris vastgesteld kunnen worden.

Voor veel programmeertalen zijn er ook zogenaamde decompilers. Die zijn in staat om reeds gecompileerde, executeerbare code terug te vertalen naar broncode. Het gebruik van zulke decompilers is echter bij wet verboden, behalve in uitzonderlijke omstandigheden.  


Last Version -
(Note: changeover from CVS to dotless svn version numbers on Jan 19, 2008, and changeover to GIT versioning on May 30, 2013.)
Maintained by Jaap-Henk Hoepman
Email: jhh@cs.ru.nl