m4_h1_4_3

advertisement
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 zes
hoofdcategorieën
–
–
–
–
–
–
Machinecode
Assembleertalen
Hogere programmeertalen
Vierde-generatietalen
Vijfde-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
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
• Enkele bekende derde-generatietalen:
–
–
–
–
C
C++
Java
C#
(low level hardware aansturingen)
(hardware, maar ook pc applicaties)
(opensource, veel toepassing online)
(Microsoft variant van Java)
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
Vijfde-generatietalen
• Wiskundig karakter
• Declaratief programmeren
Vijfde-generatietalen
• Veel toepassing in kunstmatige intelligentie
• Voorbeeld taal: Prolog
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
Download