Linkki

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 18. helmikuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

Linker (myös linkkieditori , englanninkielisestä  linkkieditorista linker ) on työkaluohjelma, joka suorittaa linkityksen ( "linking" ): se ottaa syötteeksi yhden tai useamman objektimoduulin ja kokoaa niistä suoritettavan tai kirjastomoduulitiedoston.

Aluksi, ennen dynaamisten kirjastojen tuloa , lataajat pystyivät suorittamaan joitain linkerin toimintoja [1] , mutta nykyään ohjelmien lataus on useimmiten varattu erilliseen prosessiin [2] .

Linkittäjä käyttää moduulien linkittämiseen kääntäjän luomia symbolitaulukoita kussakin objektimoduulissa . Nämä taulukot voivat sisältää seuraavan tyyppisiä merkkejä:

Useimmille kääntäjille yksi objektitiedosto on tulosta yhden lähdetiedoston kääntämisestä . Jos ohjelma on rakennettu useista objektitiedostoista, linkkijä kokoaa nämä tiedostot yhdeksi suoritettavaksi tiedostoksi laskemalla ja korvaamalla osoitteita symbolien sijaan joko linkin aikana (staattinen linkki) tai ajon aikana (dynaaminen linkki).

Linkkeri voi poimia objektitiedostoja erikoiskokoelmista, joita kutsutaan kirjastoiksi . Jos kaikkia käyttäjäobjektitiedostojen viittaamia symboleja ei ole määritelty, linkki etsii niiden määritelmät kirjastoista, jotka käyttäjä on sille syötteeksi antanut. Tyypillisesti oletuslinkkeri käyttää yhtä tai useampaa järjestelmäkirjastoa. Kun jonkin etsityn symbolin määritelmän sisältävä objektitiedosto löytyy, linkkijä voi sisällyttää sen (tiedoston) suoritettavaan tiedostoon (staattisen linkityksen tapauksessa) tai lykätä sitä ohjelman käynnistymiseen asti (dynaamisen linkityksen tapauksessa). .

Linkittäjän tehtävänä on määritellä ja linkittää viittauksia määrittelemättömiin nimiin kussakin moduulissa. Jokaisen tuodun nimen määritelmä löytyy muista moduuleista, nimen maininta korvataan sen osoitteella .

Linkkeri ei normaalisti suorita proseduuri- ja toimintoparametrien tyypin tai lukumäärän tarkistusta. Jos on tarpeen yhdistää vahvasti kirjoitetuilla kielillä kirjoitettujen ohjelmien objektimoduuleja, niin tarvittavat tarkistukset on suoritettava lisäapuohjelmalla ennen linkkerin käynnistämistä.

Katso myös

Muistiinpanot

  1. John R. Levine. Linkit ja kuormaajat. - 1999. - S. 1 .
  2. IBM Corporation. IBM OS Linkage Editor ja Loader  (määrittämätön) . – 1972.

Kirjallisuus