Programmeringstalen

December 2016
Een programmeringstaal is een taal die gebruikt wordt om een reeks opeenvolgende acties te beschrijven die door een computer moeten worden uitgevoerd.

Een programmeringstaal is daarom een praktische manier voor ons (mensen) om instructies te geven aan een computer.

Aan de andere kant, wordt met de term 'natuurlijke taal' een communicatiemiddel bedoeld dat gedeeld wordt door een groep personen (bijvoorbeeld: Engels of Nederlands).

De talen die computers gebruiken om met elkaar te communiceren, hebben niets te maken met programmeringstalen. Computers communiceren onderling namelijk via communicatieprotocollen. Beide concepten zijn heel verschillend.

De werking van een programmeringstaal is zeer strikt:

IEDERE instructie correspondeert met ÉÉN actie.

De taal die gebruikt wordt door de processor wordt machinetaal genoemd. De code die de processor bereikt, bestaat uit een reeks van nullen en enen, dat binaire wordt genoemd. Machinetaal is voor mensen erg lastig te begrijpen, daarom zijn er zogenoemde 'tussentalen' ontwikkeld die door mensen begrepen kunnen worden. De code die in dit type taal wordt geschreven, wordt getransformeerd tot machinetaal zodat de processor het kan verwerken.

De assembleertaal was de eerste programmeringstaal die ooit gebruikt werd. Deze taal lijkt sterk op machinetaal, maar kan wel begrepen worden door ontwikkelaars. Desalniettemin lijkt deze taal zo erg op machinetaal dat het sterk afhangt van het soort processor dat gebruikt wordt (elke soort processor heeft zijn eigen machinecode). Dus een programma dat ontwikkeld is voor de ene processor, zal wellicht niet toegankelijk zijn voor een andere processor. De term portabiliteit beschrijft de mogelijkheid om een programma te gebruiken op verschillende soorten computers. Een programma dat geschreven is in assembleertaal, zal in sommige gevallen compleet moeten worden herschreven om te kunnen werken op een ander type computer!

Programmeringstalen hebben als voordeel dat ze beter te begrijpen zijn dan machinetaal. Daarnaast zorgen ze voor meer portabiliteit. Dat wil zeggen dat de taal gemakkelijk kan worden aangepast om te kunnen werken op verschillende typen computers

Imperatieve en functionele programmeertalen

Programmeringstalen worden over het algemeen verdeeld in twee taalgroepen: imperatieve en functionele talen.

Imperatieve programmeringstaal

Een imperatieve taal programmeert met behulp van een reeks opdrachten, gegroepeerd in blokken en bestaande uit conditionele statements die ervoor zorgen dat het programma kan terugkeren naar een blokje met opdrachten als er aan de voorwaarde is voldaan. Imperatieve talen zijn de eerste programmeringstalen die gebruikt werken. Zelfs nu gebruiken vele moderne talen nog steeds dit principe. Gestructureerde imperatieve talen lijden echter aan een gebrek aan flexibiliteit door de volgtijdelijkheid van de instructies.

Functionele programmeringstaal

Een functionele programmeringstaal (vaak ook 'proceduretaal' genoemd) is een taal die programma's creëert met behulp van functies, die zich telkens weer in een andere vorm van output vertalen, en weer input ontvangen als resultaat van andere functies. Wanneer een functie een beroep op zichzelf doet, noemen we dit recursie.

Interpretatie en compilatie

Naast de bovengenoemde taalgroepen, kunnen programmeringstalen in 2 verschillende categorieën verdeeld worden: geïnterpreteerde en gecompileerde talen.

Geïnterpreteerde taal

Een programmeringstaal is per definitie anders dan een machinetaal. Deze moet daarom vertaald worden, zodat de processor de taal kan begrijpen. Een programma dat geschreven wordt in een geïnterpreteerde taal heeft een extra programma nodig (de interpreteerder) die de opdrachten van het programma naar behoefte vertaalt.


Feitelijk betekent geïnterpreteerde taal dat iedereen de geheimen van een programma kan achterhalen en het programma dus kan kopiëren of wijzigen. Er is daarom een risico op schending van copyright. Aan de andere kant hebben bepaalde beveiligde applicaties een beveiligingscode nodig om illegaal kopiëren te vermijden (banktransacties, online betalingen, beveiligde communicatie etc.).

Gecompileerde taal

Een programma dat geschreven is in een gecompileerde taal wordt vertaald door een extra programma wat een compiler genoemd wordt. Deze creëert op zijn beurt een nieuw opzichzelfstaand bestand dat uitvoerbaar is zonder dat het een ander programma nodig heeft. Een dergelijk bestand noemen we een uitvoerbaar bestand.

Een programma dat geschreven is in gecompileerde taal heeft het voordeel dat het geen ander programma nodig heeft om te kunnen draaien, nadat het gecompileerd is. Aangezien de vertaling maar 1 keer gedaan hoeft te worden tijdens het compileren, is het sneller uit te voeren.

Gecompileerde taal is echter niet altijd even flexibel als geïnterpreteerde taal, aangezien iedere wijziging van het bronbestand (het bestand dat begrijpelijk is voor mensen) betekent dat het programma opnieuw gecompileerd moet worden, voordat de wijzigingen worden doorgevoerd. Aan de andere kant heeft een gecompileerd programma het voordeel de veiligheid van de broncode te kunnen garanderen.

Tussentalen

Sommige talen zijn in beide categorieën te plaatsen (LISP, Java, Python etc.) aangezien het programma dat geschreven is in deze talen in sommige gevallen een extra compilatiefase ondergaat in het bestand dat geschreven is in een taal die anders is dan het bronbestand en niet-uitvoerbaar is, en op zijn beurt dus een interpreteerder vereist. Java-applets, kleine programma's die vaak in een webbrowser draaien, zijn een goed voorbeeld van gecompileerde bestanden die alleen uitgevoerd kunnen worden binnen een webbrowser. Deze bestanden zijn te herkennen aan de class-extensie).

Voorbeelden van veelgebruikte talen

Hieronder een aantal gangbare programmeringstalen:

TaalBelangrijkste applicatiegebiedGecompileerd/geïnterpreteerd
ADAReal-timeGecompileerde taal
BASICProgrammering voor educatieve doeleindenGeïnterpreteerde taal
CSysteemprogrammeringGecompileerde taal
C++Objectgeoriënteerd programmerenGecompileerde taal
COBOLManagementGecompileerde taal
FortranRekenwerkGecompileerde taal
JavaObjectgeoriënteerde programmeertaalTussentaal
MATLABWiskundige berekeningenGeïnterpreteerde taal
MathematicaWiskundige berekeningenGeïnterpreteerde taal
LISPKunstmatige intelligentieTussentaal
PascalEducatieGecompileerde taal
PHPOntwikkeling dynamische website Geïnterpreteerde taal
PrologKunstmatige intelligentieGeïnterpreteerde taal
PerlVerwerking tekenreeksenGeïnterpreteerde taal

Bekijk ook :

AJAX (Asynchronous Javascript And XML)
AJAX (Asynchronous Javascript And XML)
Rola CCM
Rola CCM
Ce document intitulé «  Programmeringstalen  » issu de CCM (nl.ccm.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.