Articles

7.6. Hoog Niveau Programmeertalen¶

Het komt zelden voor dat programmeurs programma’s rechtstreeks in machinetaal of assemblage schrijven. De uitvoerbare bestanden voor de meeste toepassingen bevatten honderdduizenden of zelfs miljoenen machinetaal instructies.

High level programmeertalen zijn uitgevonden om de details van machinecode weg te abstraheren en programmeurs te helpen zich te concentreren op het oplossen van problemen. Terwijl het in assembleertaal 3 of 4 regels code kan kosten om twee getallen op te tellen, kan deze taak worden volbracht met een enkele instructie in een programmeertaal op hoog niveau, zoals C++, Java of Python. Met een programmeertaal op hoog niveau maakt een programmeur een programma met krachtige, “grote” bewerkingen die later worden omgezet in vele kleine machinebewerkingen.

Programma’s die zijn geschreven in een taal op hoog niveau moeten worden omgezet in machinecode om te kunnen worden uitgevoerd. Dit gebeurt ofwel van tevoren door een heel programma om te zetten in machinecode met een compilerprogramma (compileren van de code), ofwel regel voor regel terwijl het programma wordt uitgevoerd door een interpreter. Eén regel in een programmeertaal van een hoger niveau kan veranderen in één tot tientallen of meer machine-instructies. Dat betekent niet alleen dat er minder code hoeft te worden getypt, maar ook dat er minder code hoeft te worden gedebugd – als er iets fout gaat, is dat vaak gemakkelijker op te sporen.

../_images/compiling.png

De tabs hieronder laten zien hoe code er in verschillende taalniveaus uit zou kunnen zien. Stel je voor dat we software ontwerpen voor de verkoopterminal in een restaurant; we gaan kijken naar het deel van de code dat de 15% fooi zou kunnen berekenen die automatisch wordt toegevoegd aan grote groepen. (Opmerking: alle talen bestaan uit vertegenwoordigers van een bepaald niveau – maak je geen zorgen over de details van elk.)

Om het totaal verschuldigde bedrag te berekenen, vermenigvuldig je eerst de totale prijs van de maaltijd met 0,15. Dit geeft u de fooi voor de maaltijd. Tel dat vervolgens bij de prijs van de maaltijd op om de totale rekening te vinden.

tip = mealCost * 0.15bill = mealCost + tip
LOAD MealCostMULT TIPRATESTORE TipLOAD MealCostADD TipSTORE Bill
010101011110010111110110101011101101101010010101010111011000111100010101011111001101101010111111

Merk op dat de hoge niveau taal veel compacter is dan de assemblage of machine code en, en, wat nog belangrijker is, het stelt ons in staat een algoritme uit te drukken op een niveau dat veel dichter bij het werkelijke probleemdomein ligt. In plaats van ons zorgen te maken over het laden en opslaan van waarden in registers, kunnen we commando’s uitdrukken die meer lijken op normale berekeningen: tip = mealCost * 0.15.

Materiaal op deze pagina is overgenomen uit:
Online Interactive Modules for Teaching Computer Science door Osman Balci et al.
Introduction to Computer Science using Java door Bradley Kjell (CC BY-NC 3.0)

Laat een antwoord achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *