Care este diferența dintre Loader Linker și Compiler

Principala diferență între încărcătorul de linkuri și compilatorul este că linker combină unul sau mai multe fișiere obiect generate de compilator într-un singur fișier executabil. Între timp, un încărcător plasează programele în memorie și le pregătește pentru execuție în timp ce compilatorul convertește codul sursă în codul obiect.

Un program de calculator este o colecție de instrucțiuni care execută o anumită sarcină atunci când computerul o execută. Un software de sistem este un tip de program de calculator care oferă o platformă altor software-uri. Linker, încărcător și compilator sunt trei sisteme software asociate programării pe calculator.

Domenii cheie acoperite

1. Ce este un compilator?
     - Definiție, funcționalitate
2. Ce este un Linker
     - Definiție, funcționalitate
3. Ce este un încărcător
     - Definiție, funcționalitate
4. Care este diferența dintre Loader Linker și Compiler
     - Compararea diferențelor cheie

Termeni cheie

Compilator, Linker, Loader

Ce este un compilator?

Un program este un set de instrucțiuni pentru a efectua o anumită sarcină. Este, de asemenea, cunoscut sub numele de cod sursă. Programatorul poate înțelege codul sursă, dar CPU-ul nu-l poate înțelege. Prin urmare, este necesar să convertiți codul sursă la un format ușor de înțeles de către mașină.

Figura 1: Compilator

Un compilator este un software special folosit în acest proces. Convertește codul sursă în codul obiect. Acest cod obiect este un cod intermediar. CPU-ul nu poate executa direct.

Ce este un Linker

După conversia codului sursă în codul obiect, linkerul efectuează sarcina de legătură. Este nevoie de unul sau mai multe fișiere obiect generate de compilator și le combină pentru a genera un fișier executabil.

Figura 2: Legătura

În plus, combină codurile obiectului cu bibliotecile. De exemplu, într-un program C, dacă există funcția sqrt () pentru a calcula rădăcina pătrată a unui număr, linkerul leagă programul cu biblioteca de matematică. În cele din urmă, procesorul poate citi și înțelege fișierul executabil generat. Prin urmare, CPU-ul poate executa acel fișier pentru a efectua sarcina definită în program. 

Ce este un încărcător

Un încărcător localizează programele din memorie și le pregătește pentru execuție. Este o componentă importantă atunci când începeți un program. Acesta include activități precum citirea conținutului fișierului executabil și plasarea fișierului în memorie. În plus, îndeplinește sarcinile necesare pentru a pregăti fișierul executabil pentru rulare. După ce încărcarea este finalizată, sistemul de operare pornește programul prin trecerea controlului la codul program încărcat.

Figura 3: Compilarea

Majoritatea sistemelor de operare suportă încărcătoare pentru încărcarea programelor. Cele mai multe sisteme au încărcătorul localizat în memorie, în timp ce altele care suportă memoria virtuală au încărcătorul într-o regiune de memorie care poate fi stocată.

Diferența între Loader Linker și Compilator

Definiție

Un linker este un program utilitar de calculator care ia unul sau mai multe fișiere obiect generate de un compilator și le combină într-un singur fișier executabil. Un încărcător este o parte a unui sistem de operare care este responsabil pentru încărcarea programelor în memorie. Un compilator este un software care transformă codul computerului scris într-o limbă de programare (cod sursă) într-un alt limbaj de programare (cod țintă). Astfel, aceasta explică principala diferență dintre încărcătorul de linkuri și compilatorul.

Funcționalitate

Mai mult, un linker combină mai multe coduri de obiecte și le leagă de biblioteci. Între timp, un încărcător pregătește fișierul executabil pentru a rula în timp ce un compilator transformă codul sursă în cod obiect. Prin urmare, aceasta este diferența dintre încărcătorul de linker și compilatorul în termeni de funcționalitate. 

Concluzie

Pe scurt, diferența dintre linker loader și compiler este că un linker combină unul sau mai multe fișiere obiect generate de compilator într-un singur fișier executabil și un încărcător plasează programele în memorie și le pregătește pentru execuție în timp ce un compilator convertește codul sursă în obiect cod.

Referinţă:

1. "Linker (Computing)". Wikipedia, Fundația Wikimedia, 6 octombrie 2018, disponibil aici.
2. "Loader (Computing)". Wikipedia, Fundația Wikimedia, 10 octombrie 2018, disponibil aici.
3. "Compilator" Wikipedia, Fundația Wikimedia, 9 octombrie 2018, disponibil aici.

Datorită fotografiei:

1. "Compilator ideal" (CC BY-SA 3.0) prin Wikimedia Commons
2. "Linker" de Qef - Lucrare proprie de către uploader, bazată pe aranjamentul unui echivalent bitmap de către Orderud (Public Domain) prin Wikimedia Commons
3. "Screenshot-turbo51.com 2016-01-14 18-44-16" De către անհայտ - Aho, Sethi, Ullman, Compilatoare: Principii, tehnici și instrumente, Addison-Wesley, 1986. ISBN 0-201-10088- 6 (CC BY-SA 4.0) prin intermediul Wikimedia Commons