Broncode: verschil tussen versies

Uit Wikipedia, de vrije encyclopedie
Verwijderde inhoud Toegevoegde inhoud
k r2.7.2+) (Robot: interwiki gewijzigd van be:Крынічны код naar be:Зыходны код
Legobot (overleg | bijdragen)
k Verplaatsing van 56 interwikilinks die op Wikidata beschikbaar zijn op d:q128751
Regel 37: Regel 37:


[[Categorie:Programmeren]]
[[Categorie:Programmeren]]

[[af:Bronkode]]
[[ar:كود مصدري]]
[[ast:Códigu fonte]]
[[be:Зыходны код]]
[[be-x-old:Крынічны код]]
[[bg:Изходен код]]
[[bn:সোর্স কোড]]
[[bs:Izvorni kod]]
[[ca:Codi font]]
[[cs:Zdrojový kód]]
[[da:Kildekode]]
[[de:Quelltext]]
[[el:Πηγαίος κώδικας]]
[[en:Source code]]
[[eo:Fontkodo]]
[[es:Código fuente]]
[[et:Lähtekood]]
[[eu:Iturburu kode]]
[[fa:کد منبع]]
[[fi:Lähdekoodi]]
[[fr:Code source]]
[[gl:Código fonte]]
[[he:קוד מקור]]
[[hr:Izvorni kod]]
[[hu:Forráskód (programozás)]]
[[hy:Ելակետային կոդ]]
[[id:Kode sumber]]
[[it:Codice sorgente]]
[[ja:ソースコード]]
[[kk:Программа басылмасы]]
[[ko:소스 코드]]
[[ky:Баштапкы код]]
[[lt:Išeitinis kodas]]
[[lv:Pirmkods]]
[[mhr:Тӱҥалтыш код]]
[[ms:Kod sumber]]
[[my:ဆို့စ်ကုတ်ဒ်]]
[[nn:Kjeldekode]]
[[no:Kildekode]]
[[pl:Kod źródłowy]]
[[pt:Código fonte]]
[[qu:Pukyu qillqa]]
[[ro:Cod sursă]]
[[ru:Исходный код]]
[[sh:Izvorni kod]]
[[simple:Source code]]
[[sk:Zdrojový kód]]
[[sl:Izvorna koda]]
[[sr:Изворни код]]
[[sv:Källkod]]
[[th:รหัสต้นฉบับ]]
[[tr:Kaynak kodu]]
[[uk:Сирцевий код]]
[[vec:Codexe sorzente]]
[[vi:Mã nguồn]]
[[zh:源代码]]

Versie van 7 mrt 2013 06:05

Broncode in Java met commentaar in rood en groen, de uitvoerbare code is blauw weergegeven.

De broncode (ook wel brontekst of in het Engels: source of source code) van een computerprogramma is de code die door de programmeur in een formele programmeertaal is geschreven. Dit staat tegenover de uitvoerbare (executable) 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 dat de broncode gelijk uitvoert. Dit is doorgaans een stuk langzamer dan een gecompileerd programma, aangezien elke regel van de code eerst omgezet moet worden naar machinetaal, waarna het uitgevoerd wordt. 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 virtuele 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 een assembler. 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 een assembleertaal zoiets 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