Broncode: verschil tussen versies
k robot Erbij: qu:Pukyu qillqa |
→Voorbeeld 2: weg ermee, zie OP (rijm was onbedoeld) |
||
Regel 36: | Regel 36: | ||
1800260225005510120003FF |
1800260225005510120003FF |
||
==Voorbeeld 2== |
|||
De broncode van een bestand met [[bestandsextensie|extensie]] [[EXE (bestandstype)|.exe]] of [[COM (bestandstype)|.com]] kan zichtbaar gemaakt worden met het programma '[[debug.exe|debug]]': (een nieuwe u geeft de volgende 10 lijnen weer) |
|||
<pre> |
|||
C:\WINDOWS>debug winhlp32.exe |
|||
-u |
|||
15A2:0000 0E PUSH CS |
|||
15A2:0001 1F POP DS |
|||
15A2:0002 BA0E00 MOV DX,000E |
|||
15A2:0005 B409 MOV AH,09 |
|||
15A2:0007 CD21 INT 21 |
|||
15A2:0009 B8014C MOV AX,4C01 |
|||
15A2:000C CD21 INT 21 |
|||
15A2:000E 54 PUSH SP |
|||
15A2:000F 68 DB 68 |
|||
15A2:0010 69 DB 69 |
|||
15A2:0011 7320 JNB 0033 |
|||
15A2:0013 7072 JO 0087 |
|||
15A2:0015 6F DB 6F |
|||
15A2:0016 67 DB 67 |
|||
15A2:0017 7261 JB 007A |
|||
15A2:0019 6D DB 6D |
|||
15A2:001A 206361 AND [BP+DI+61],AH |
|||
15A2:001D 6E DB 6E |
|||
15A2:001E 6E DB 6E |
|||
15A2:001F 6F DB 6F |
|||
- |
|||
</pre> |
|||
[[Categorie:Programmeren]] |
[[Categorie:Programmeren]] |
Versie van 23 apr 2009 02:16
De broncode (ook wel brontekst) van een computerprogramma is de code die door de programmeur in een formele programmeertaal is geschreven. Dit staat tegenover de uitvoerbare code of machinetaal voor de processor zoals die door een compiler of interpreter vanuit de broncode gegenereerd wordt.
Gebruik van de broncode
De broncode kan op een aantal manieren worden omgezet naar uitvoerbare code zodat het programma uitgevoerd kan worden.
- Met een compiler: Een compiler zet de broncode om in machinetaal zodat deze uitgevoerd kan worden. Als de compiler eerst assembly-code genereert moet de assembler dat eerst naar machinetaal vertalen om het uitvoerbare programma te verkrijgen.
- Met een interpreter: De broncode kan in sommige gevallen ook uitgevoerd worden met een interpreter, een programma wat de broncode gelijk uitvoert. Dit is doorgaans een stuk langzamer aangezien elke regel code eerst ter plekke omgezet moet worden naar machinetaal voordat het uitgevoerd kan worden. Een interpreter die direct de broncode uitvoert is mogelijk maar wordt in verband met de slechtere prestatie niet gebruikt voor veeleisende toepassingen.
- Met een virtuele machine: Bij veel moderne programmeertalen, zoals Java, Perl, Python en C# wordt een mengvorm gebruikt: de broncode wordt eerst gecompileerd naar een tussentaal (bytecode) die vervolgens door een virtual machine wordt geïnterpreteerd. Enkele voordelen van deze constructie zijn:
- De gecompileerde code is platformonafhankelijk en kan tot op het moment van uitvoeren over een netwerk worden verplaatst en gecombineerd met andere componenten.
- De interpreter kan op het moment van uitvoeren nog bepaalde controles en bewerkingen uitvoeren, zoals de sandbox security van Java-applets en optimalisatie van de performance.
- Bij sommige talen wordt het ontwikkelmodel vereenvoudigd, doordat de compilatiestap impliciet wordt uitgevoerd. De programmeur ervaart de flexibiliteit van een interpreter terwijl de performance veel beter is dan wanneer niet gecompileerd zou worden.
Het is ook mogelijk direct te programmeren in machinetaal. Doorgaans wordt hier ook van een (low-level) programmeertaal gebruikgemaakt in de vorm van assembly. Dit wordt alleen gedaan voor uiterst tijdkritische of compacte code want het is specialistisch en zeer arbeidsintensief werk.
Voorbeeld
De volgende broncode in C:
square(int i ) { return i * i; }
wordt bijvoorbeeld in assembly iets als:
SQUARE: PUSH B MOV A, [SP+2] MOV B, A MULT POP B RET
en in machinetaal (hier weergegeven in het hexadecimale stelsel):
1800260225005510120003FF