Naar inhoud springen

Linken: verschil tussen versies

Uit Wikipedia, de vrije encyclopedie
Verwijderde inhoud Toegevoegde inhoud
BjornR (overleg | bijdragen)
k sp : laad => laadt ('het laadt iets')
k Link naar doorverwijspagina Programmeur gewijzigd in Softwareontwikkelaar met DisamAssist.
 
(13 tussenliggende versies door 12 gebruikers niet weergegeven)
Regel 1: Regel 1:
'''Linken''' (Engels: ''to link'') is een vakterm voor een bewerking die kan worden uitgevoerd op [[compileren|gecompileerde]] code om deze uitvoerbaar te maken. Een '''linker''' of link-editor is een [[computerprogramma|programma]] dat meerdere uitvoermodules van een [[assembler]] samenvoegt tot een enkel uitvoerbaar programma.
'''Linken''' (Engels: ''to link'') is een vakterm voor een bewerking die kan worden uitgevoerd op [[compileren|gecompileerde]] code om deze uitvoerbaar te maken. Een '''linker''' of link-editor is een [[computerprogramma|programma]] dat meerdere uitvoermodules van een [[assembler (software)|assembler]] samenvoegt tot een enkel uitvoerbaar programma.


De [[compiler]] heeft namelijk de instructies van de [[programmeur]] wel omgezet in een door de [[computer]] uitvoerbare vorm, maar de programmeur zal nagenoeg altijd ook gebruik hebben gemaakt van reeds op de machine aanwezige programma-onderdelen zoals in- en uitvoerroutines. Deze bevinden zich in zgn. [[Bibliotheek (Informatica)|programmabibliotheken]] of ''library's'' en de taak van de linker is om een verwijzing naar een [[subroutine]] die niet in de code zelf aanwezig is op te lossen door in de betreffende bibliotheek te zoeken en de gezochte code aan het programma toe te voegen.
De [[compiler]] heeft namelijk de instructies van de [[Softwareontwikkelaar|programmeur]] wel omgezet in een door de [[computer]] uitvoerbare vorm, maar de programmeur zal nagenoeg altijd ook gebruik hebben gemaakt van reeds op de machine aanwezige programma-onderdelen zoals in- en uitvoerroutines. Deze bevinden zich in zogenaamde [[Bibliotheek (informatica)|programmabibliotheken]] of ''library's'' en de taak van de linker is om een verwijzing naar een [[subroutine]] die niet in de code zelf aanwezig is op te lossen door in de betreffende bibliotheek te zoeken en de gezochte code aan het programma toe te voegen.


Het resultaat van een linkopdracht is (als alle ontbrekende routines konden worden gevonden) een bestand dat meestal bijna klaar is om te worden uitgevoerd: het enige dat soms nog moet worden gedaan is dat bij het laden het beginadres van de in het geheugen geplaatste code moet worden opgeteld bij alle in het programma voorkomende sprongen naar absolute adressen. Hiervoor bevatten veel uitvoerbare programma's een [[relocatietabel]] waarin deze adressen zijn opgesomd. Compilers leveren soms (bijv. door het zetten van een optie) al code af met uitsluitende relatieve sprongen (dus bijv. 'spring 100 plaatsen verder' en niet 'spring naar adres 100256') waardoor dit relocatieproces niet nodig is.
Het resultaat van een linkopdracht is (als alle ontbrekende routines konden worden gevonden) een bestand dat meestal bijna klaar is om te worden uitgevoerd: het enige dat soms nog moet worden gedaan is dat bij het laden het beginadres van de in het geheugen geplaatste code moet worden opgeteld bij alle in het programma voorkomende sprongen naar absolute adressen. Hiervoor bevatten veel uitvoerbare programma's een [[relocatietabel]] waarin deze adressen zijn opgesomd. Compilers leveren soms (bijvoorbeeld door het zetten van een optie) al code af met uitsluitende relatieve sprongen (dus bijvoorbeeld 'spring 100 plaatsen verder' en niet 'spring naar adres 100256') waardoor dit relocatieproces niet nodig is.


Andere programma's moeten per se vanaf een bepaalde locatie in het geheugen geladen worden. Dit zijn allemaal dingen waar programmeurs zich tegenwoordig maar zelden meer mee bezig hoeven te houden behalve in speciale omstandigheden (bijv. bij programma's die een apparaat aansturen, drivers).
Andere programma's moeten per se vanaf een bepaalde locatie in het geheugen geladen worden. Dit zijn allemaal dingen waar programmeurs zich tegenwoordig maar zelden meer mee bezig hoeven te houden behalve in speciale omstandigheden (bijvoorbeeld bij programma's die een apparaat aansturen, drivers).


Een programma dat zowel 'linkt' (samenvoegen) als 'laadt' (in geheugen laden) wordt een linker/loader genoemd. Loaders die specifiek de mogelijkheid hebben om de adressen in programma's aan te passen afhankelijk van waar het programma in het geheugen wordt geladen, worden relocatable loaders genoemd.
Een programma dat zowel 'linkt' (samenvoegen) als 'laadt' (in geheugen laden) wordt een linker/loader genoemd. Loaders die specifiek de mogelijkheid hebben om de adressen in programma's aan te passen afhankelijk van waar het programma in het geheugen wordt geladen, worden relocatable loaders genoemd.


[[Categorie:Computerterm]]
[[Categorie:Computerterminologie]]
[[Categorie:Programmeerhulpmiddel]]
[[Categorie:Programmeerhulpmiddel]]
[[Categorie:Compiler]]
[[Categorie:Compiler]]

[[bs:Linker]]
[[cs:Linker]]
[[da:Linker]]
[[de:Linker (Computerprogramm)]]
[[en:Linker (computing)]]
[[es:Enlazador]]
[[et:Linkija]]
[[fa:پیوندده]]
[[fr:Édition de liens]]
[[he:מקשר (תוכנה)]]
[[it:Linking]]
[[ja:リンケージエディタ]]
[[pl:Konsolidator]]
[[pt:Ligador]]
[[ru:Компоновщик]]
[[sh:Linker]]
[[sv:Länkare]]
[[th:โปรแกรมเชื่อมโยง]]
[[tr:Bağlayıcı]]
[[uk:Компонувальник]]
[[zh:链接器]]

Huidige versie van 26 jan 2021 om 11:20

Linken (Engels: to link) is een vakterm voor een bewerking die kan worden uitgevoerd op gecompileerde code om deze uitvoerbaar te maken. Een linker of link-editor is een programma dat meerdere uitvoermodules van een assembler samenvoegt tot een enkel uitvoerbaar programma.

De compiler heeft namelijk de instructies van de programmeur wel omgezet in een door de computer uitvoerbare vorm, maar de programmeur zal nagenoeg altijd ook gebruik hebben gemaakt van reeds op de machine aanwezige programma-onderdelen zoals in- en uitvoerroutines. Deze bevinden zich in zogenaamde programmabibliotheken of library's en de taak van de linker is om een verwijzing naar een subroutine die niet in de code zelf aanwezig is op te lossen door in de betreffende bibliotheek te zoeken en de gezochte code aan het programma toe te voegen.

Het resultaat van een linkopdracht is (als alle ontbrekende routines konden worden gevonden) een bestand dat meestal bijna klaar is om te worden uitgevoerd: het enige dat soms nog moet worden gedaan is dat bij het laden het beginadres van de in het geheugen geplaatste code moet worden opgeteld bij alle in het programma voorkomende sprongen naar absolute adressen. Hiervoor bevatten veel uitvoerbare programma's een relocatietabel waarin deze adressen zijn opgesomd. Compilers leveren soms (bijvoorbeeld door het zetten van een optie) al code af met uitsluitende relatieve sprongen (dus bijvoorbeeld 'spring 100 plaatsen verder' en niet 'spring naar adres 100256') waardoor dit relocatieproces niet nodig is.

Andere programma's moeten per se vanaf een bepaalde locatie in het geheugen geladen worden. Dit zijn allemaal dingen waar programmeurs zich tegenwoordig maar zelden meer mee bezig hoeven te houden behalve in speciale omstandigheden (bijvoorbeeld bij programma's die een apparaat aansturen, drivers).

Een programma dat zowel 'linkt' (samenvoegen) als 'laadt' (in geheugen laden) wordt een linker/loader genoemd. Loaders die specifiek de mogelijkheid hebben om de adressen in programma's aan te passen afhankelijk van waar het programma in het geheugen wordt geladen, worden relocatable loaders genoemd.