Naar inhoud springen

Computerprogramma

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door ChristiaanPR (overleg | bijdragen) op 3 mrt 2024 om 17:47. (Leg het dan ook uit.)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.
Acorn ARM610 CPU

Een computerprogramma is een opeenvolging van opdrachten voor een computer met als doel om die computer een specifieke taak te laten uitvoeren. Er is een verschil tussen een computerprogramma dat door een programmeur zelf is geschreven en dat kan worden veranderd, zoals het bij programmeren gaat, een programma in de vorm van software die niet kan worden veranderd en een programma dat als firmware wordt gedraaid of in de hardware wordt ingebed.

Een geschreven computerprogramma is een opeenvolging van statements, die in het algemeen door een computerprogrammeur is ingevoerd. Deze leesbare tekst wordt ook de broncode van het computerprogramma genoemd en is in een programmeertaal geschreven. Broncode wordt geschreven in een programmeertaal, die vaak een van de twee belangrijkste programmeerparadigma's volgt: imperatief of declaratief programmeren. Deze broncode maakt het voor de programmeur mogelijk het algoritme van het betreffende computerprogramma te bestuderen en zo nodig verder te ontwikkelen. De geschreven broncode wordt in een computerbestand opgeslagen en kan bijvoorbeeld met behulp van een compiler in programmacode worden omgezet, die door de computer kan worden verwerkt, ook wel een executable of binair bestand genoemd, en later door een centrale verwerkingseenheid worden uitgevoerd.

Een verzameling van computerprogramma's en bijbehorende gegevens wordt software genoemd. Als een computerprogramma wordt uitgevoerd, leest de computer de instructies uit het programma, zoals deze zijn opgeslagen op een gegevensdrager, bijvoorbeeld bestanden op een harde schijf, en voert de programmacode in de aangeven volgorde uit, gebruik makend van de gegevens.

Programmeertalen

Programma's worden in verschillende programmeertalen geschreven, geprogrammeerd. Vaak worden deze programma's door een compiler naar machinetaal vertaald. In andere gevallen wordt het programma door een interpreter uitgevoerd. Slechts zelden wordt een programma direct in assembler geschreven, dat gebeurt uitsluitend wanneer maximale efficiëntie vereist is. Er zijn veel verschillende programmeertalen.

Model van computerprogramma's

De Engelse wiskundige Alan Turing beschreef een theoretische machine, de turingmachine, die een model van het rekenen vormt zoals de computer dat doet. De machine kan worden geconfigureerd met een eindige verzameling mogelijke toestandsovergangen: zo'n configuratie kan worden gezien als het model van een programma. Een verschil is dat in computers het rekenen gebeurt op het ingebouwde geheugen, dat eindig is.

Naast turingmachines bestaan er nog allerlei andere soorten wiskundige modellen van het rekenen, waarmee uiteenlopende aspecten van het rekenen bestudeerd kunnen worden.

Soorten

In de jaren 1950 werden computerprogramma's opgeslagen op ponsband

Computerprogramma's komen in allerlei soorten en maten voor:

  • Het besturingssysteem dat een computer draaiende houdt en de computergebruiker de mogelijkheid biedt om andere programma's te starten, gegevens te bewaren en randapparatuur te gebruiken (bijvoorbeeld afdrukken op een printer).

Fouten

Er zijn verschillende soorten fouten mogelijk in een computerprogramma:

  • Een fout in de syntaxis. Er staat dan iets dat in de gebruikte taal niet is toegestaan.
  • Een fout in de semantiek. Er staat dan iets dat is toegestaan, maar in een fout resulteert. Een statement bevat bijvoorbeeld een deling door een variabele, maar de waarde daarvan is nul. De uitvoering van het programma stopt, meestal met een foutmelding.
  • Een fout waarbij de uitvoering vanuit de computer gezien normaal verloopt, maar waarbij de computer niet doet wat de bedoeling is.

Bij gebruik van een compiler is er bovendien een onderscheid tussen

  • compile time errors, die tijdens het compileren worden gevonden en gerapporteerd, en moeten worden gecorrigeerd alvorens een gecompileerd, uitvoerbaar programma kan worden geproduceerd;
  • run time errors, fouten die optreden tijdens de uitvoering van de gecompileerde software.

De meeste compile time errors zijn syntaxisfouten, en de meeste syntaxisfouten zijn compile time errors. Bij het compileren worden vaak ook allerlei waarschuwingen gegeven, die o.a. semantische fouten kunnen aangeven.

Bij gebruik van een interpreter wordt een syntaxisfout slechts ontdekt indien en wanneer de interpreter op het punt staat het statement uit te voeren. Het effect van alle genoemde soorten fouten is dus hetzelfde: de uitvoering stopt, meestal met een foutmelding. Vaak zijn er ook voor geïnterpreteerde talen programma's om syntaxisfouten en andere mogelijke problemen in de code te rapporteren.

Veel talen gebruiken tussenvormen tussen compilatie en interpretatie, zoals just-in-timecompilatie, waardoor het onderscheid tussen compile time en run time minder scherp is.