Broncode

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 leesbare tekst die door de programmeur in een programmeertaal is geschreven. Dit in tegenstelling tot de 'uitvoerbare (executable) code' of doelcode (object code) zoals die door een compiler of interpreter vanuit deze broncode wordt gegenereerd. De broncode van een hogere programmeertaal wordt vaak in monospace opgemaakt.

Ook spreekt men van de broncode van een opgemaakte tekst. Er wordt een zodanige extensie gebruikt dat bij aanklikken niet de broncode wordt getoond, maar het opgemaakte resultaat. Een voorbeeld is een HTML-document, dat naast de inhoud ook de opmaak van een webpagina beschrijft. Er is niet bij elk opgemaakt document een leesbare broncode, bijvoorbeeld niet bij Microsoft Word.

Gebruik van broncode van een computerprogramma

De broncode kan op een aantal manieren worden omgezet naar uitvoerbare code, zodat het programma kan worden uitgevoerd.

  • 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 dit eerst naar machinetaal vertalen om het uitvoerbare programma te verkrijgen. Vaak voert de compiler extra operaties uit om de uitvoerbare code te optimaliseren, zoals het weglaten van dode code, bijvoorbeeld variabelen waar later in de code niets mee gebeurd. Dit is ook een van de redenen waarom gecompileerde code vaak sneller en efficiënter is dan code die wordt uitgevoerd met een interpreter.
  • Met een interpreter: De broncode kan in sommige gevallen ook uitgevoerd worden met een interpreter, een programma dat de broncode in real-time leest en direct uitvoert. Dit is doorgaans een stuk langzamer dan een gecompileerd programma, aangezien elke regel van de code eerst verwerkt moet worden, voordat hij uitgevoerd wordt. In de praktijk zetten moderne interpreters de broncode eerst om in een interne representatie, wat ook een vorm van compileren is, om deze interne representatie van het programma vervolgens uit te voeren.
  • Met een aparte virtuele machine. Bij veel moderne programmeertalen, zoals C#, Java, Perl 6 en Scala wordt meestal een mengvorm gebruikt: de broncode wordt eerst gecompileerd naar een tussentaal (bytecode, P-code of managed code MSIL), die vervolgens door een aparte virtuele machine wordt geïnterpreteerd. Enkele voordelen van deze constructie zijn:
    • De gecompileerde code is platformonafhankelijk.
    • De interpreter kan op het moment van uitvoeren nog bepaalde controles en bewerkingen uitvoeren, zoals de sandbox security van Java-applets en een optimalisatie van de performance.

Er bestaat ook een constructie waarbij de broncode in een andere hogere taal wordt vertaald. Bijvoorbeeld in de taal PL/SQL, waarbij de universele PL/SQL-compiler de broncode naar C-code vertaalt, die van objectgeoriënteerde code is ontdaan maar is voorzien van embedded SQL, die automatisch door een 'native' C-compiler weer naar een optimale machinecode wordt vertaald.

Voorbeeld

De volgende broncode in C:

int square(int i)
{
  return i * i;
}

wordt bijvoorbeeld in een (fictieve) assembleertaal zoiets als:

SQUARE: PUSH B
        MOV A, [SP+2]
        MOV B, A
        MULT 
        POP B 
        RET

en in een (fictieve) machinecode, weergegeven in het hexadecimale stelsel:

02 25 00 55 10 12 03

en in een gebruikersvriendelijk hex-record, met daarin onder andere geheugenadres, machinecodes en controlesom:

:070026000225005510120326

waarmee de machinecode hexadecimaal kan worden ingelezen op adres 2600.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.