Module 4 – Hoofdstuk 1 Programmeertalen Programmeertalen • Een programmeertaal is een taal waarin de opdrachten worden geschreven die een computer moet uitvoeren • Reeksen van die opdrachten of instructies vormen samen een computerprogramma • Er zijn verschillende soorten/categorieën programmeertalen Soorten programmeertalen • Programmeertalen kun je indelen in vijf hoofdcategorieën: – – – – – Machinecode Assembleertalen Hogere programmeertalen Vierde-generatietalen Objectgeoriënteerde talen Machinecode • De kleinste geheugeneenheid is de bit (binary digit) • De bit is een binair getal dat twee waarden kan hebben: 0 of 1 • In het computergeheugen wordt alles binair vastgelegd, ook programma’s • Machinecode is een programma in binaire vorm Machinecode • Machinecode is de enige code die de processor kan uitvoeren • Programma’s die in een andere taal geschreven zijn moeten dus altijd worden vertaald in machinecode ENIAC-computer • Programmeren met machinecode Machinecode • De allereerste computers werden in machinecode geprogrammeerd • De kans op fouten was daarbij groot • Machinecode is moeilijk te begrijpen • Je kunt daardoor geen grote programma’s schrijven in machinecode • Machinecode is een taal van de eerste generatie, d.w.z. dicht bij de processor Voorbeeld machinecodeprogramma 0010 0110 1010 0110 0110 1010 0110 1010 1110 0101 0011 1110 0101 0010 0010 0101 0100 0010 0101 0101 0101 0110 0010 0101 0010 0110 0110 1010 0110 0110 0110 0011 0011 1110 0101 0011 0101 0100 0100 0010 0101 0100 Assembleertaal • Assembleertaal is een lagere programmeertaal • Het is een soort machinetaal, maar met lettercodes i.p.v. nullen en enen • Een assembleerprogramma vertaalt die lettercodes in machinecode • Van Dale: – as·sem·ble·ren [assembleere(n)] -bleerde, h geassembleerd samenstellen uit onderdelen; monteren: auto’s ~ Assembleertaal • Assembleertaal is iets makkelijker te onthouden dan machinetaal • Een voorbeeld van code in machinetaal: 1011 0000 0110 0001 • Dezelfde code in assembleertaal: MOV AL, 97 • Assembleertalen zijn talen van de tweede generatie, d.w.z. één stap verder van de processor vandaan dan machinecode Voorbeeld Assembly-programma .model small .stack .data message db "Hello world, I'm learning Assembly !!!", "$" .code main proc mov ax,seg message mov ds,ax mov lea int ah,09 dx,message 21h mov ax,4c00h int 21h main endp end main Hogere programmeertalen • Geen kennis van de eigenschappen van de processor nodig Derde-generatietalen zijn procedurele talen • De programmeur schrijft de computer een procedure voor • Eén procedureopdracht bevat meerdere machinetaalopdrachten in één Hogere programmeertalen • Derde-generatietalen zijn machineonafhankelijk • Een compiler zet de sourcecode om in machinetaal (objectcode) • Die machinetaal is wél machineafhankelijk Voorbeeld procedure Hogere programmeertaal int eax = 1; while (eax < 10) { eax++; } xor eax, eax inc eax cmp eax, 10 while : ja end inc eax jmp while end : mov eax, 1 xor ebx, ebx int 0x80 Assembleertaal Hogere programmeertalen • De bekendste derde-generatietalen: – – – – FORTRAN COBOL C Pascal (wetenschappelijke doeleinden) (administratieve toepassingen) (vele toepassingen; o.a. UNIX) (nadruk op eenvoud) Vierde-generatietalen • Nog krachtiger programmaopdrachten Vierde-generatietalen zijn veel meer probleemgericht • Nadeel: de software bevat veel ballast Vierde-generatietalen • Voorbeelden van vierde-generatietalen: – Rapportgeneratoren – Macro’s in Microsoft Word en Excel – iPhone apps maken met Adobe Flash Objectgeoriënteerde talen • Vaak afgekort tot OO – Object Oriënted • Systeem is opgebouwd uit objecten • Wat is een object? – Volgens van Dale: ob·ject het; o -en voorwerp (1, 2) Objectgeoriënteerde talen • Een object bestaat uit – attributen – methoden • Attributen zijn de eigenschappen van een object • Methoden bepalen het gedrag van een object Objectgeoriënteerde talen • Een voorbeeld van een object – Een lamp JAVA en JVM