Razlika med prevajalnikom in zbirnikom

Avtor: Laura McKinney
Datum Ustvarjanja: 1 April 2021
Datum Posodobitve: 11 Maj 2024
Anonim
Razlika med prevajalnikom in zbirnikom - Tehnologija
Razlika med prevajalnikom in zbirnikom - Tehnologija

Vsebina


Sestavljalec in Assembler igrata pomembno vlogo pri izvajanju programa. Nekateri prevajalniki namesto kode za sestavljanje neposredno ustvarijo izvršljivo kodo. Prevajalnik vzame predhodno obdelano izvorno kodo in jo prevede v kodo za sestavljanje. Sestavljalec vzame kodo za sestavljanje iz prevajalnika in jo prevede v kodo stroja, ki jo je mogoče premikati. V tem članku sem razpravljal o razlikah med prevajalnikom in sestavljavcem s pomočjo spodnje primerjalne tabele, samo poglejte.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoPrevajalnik Sestavljalec
OsnovniUstvari kodo jezika montaže ali neposredno izvedljivo kodo.Ustvari kodo stroj za premikanje.
VnosPredobdelana izvorna koda.Koda jezika montaže.
Faze / prehodiFaze kompilacije so leksikalni analizator, sintaksični analizator, semantični analizator, vmesno ustvarjanje kode, optimizacija kode, generiranje kode.Assembler naredi dva prehoda preko danega vhoda.
IzhodSklopna koda, ki jo ustvari prevajalnik, je mnemonična različica strojne kode.Koda stroja, ki se lahko premika, ki ga ustvari monter, je predstavljena z binarno kodo.


Opredelitev prevajalnika

The prevajalnik je računalniški program, ki bere program, napisan v izvornem jeziku, ga prevede v enakovreden montažni jezik in posreduje kodo jezika montaže na Sestavljalec. Medtem ko prevod izhodne kode v zbirno kodo prevajalnik poroča tudi o napaka v izvorni kodi svojemu uporabniku.

Sestavljavci so razvrščeni tudi kot enoprehodni, večpasovni, obremenjujoči, odpravljanje napak in optimizacija. Klasifikacija se opravi na podlagi funkcije, ki jo izvaja prevajalnik in kako je bila zgrajena. Kljub tem kompleksnostim osnovna naloga prevajalnika ostaja enaka.

Sestavljanje izvajamo v dveh delih, del analize in sintezni del. The del analize razbije izvorno kodo na sestavne dele in tvori vmesni prikaz izvorne kode. The sintezni del tvori ciljno kodo iz vmesne predstavitve.


Sestavljanje poteka v naslednjih fazah:

Leksikalni analizator, analizator sintakse, semantični analizator, generator vmesne kode, orodje za optimizacijo kod, generator kode, tabela simbolov in rokovalnik napak

  • The leksični analizator bere znake izhodiščne kode in jih združuje v tokovi žetonov. Vsak žeton predstavlja logično zaporedje znakov, kot so ključna beseda, identifikatorji, operaterji. Imenuje se zaporedje znaka, ki tvori žeton leksema.
  • The sintaksni analizator razčleni žeton, pridobljen iz leksikalnega analizatorja, in združi žetone v a hierarhična struktura.
  • The semantični analizator preveri izvorno kodo pomenska napaka.
  • Generator vmesnih kod ustvarja vmesna zastopanost izhodne kode
  • The orodje za optimiziranje kod optimizira vmesno kodo v hitrejšo delujočo strojno kodo.
  • The generator kode končno ustvari ciljno kodo, ki je premična koda stroja ali koda za sestavljanje.
  • The tabela simbolov je podatkovna struktura, ki vsebuje zapis za vsak identifikator v izvorni kodi.
  • Obdelovalnik napak zazna napako v vsaki fazi in obravnava te napake.

Opredelitev pojma Assembler

Nekateri prevajalniki opravijo nalogo monterja in namesto kode za sestavljanje neposredno ustvarijo premično kodno strojno kodo, ki je nadalje neposredno posredovana na povezovalnik / nakladalnik. The monter kot vhod vzame kodo sestavljanja, ki jo ustvari prevajalnik in jo prevede v premična koda stroja.

Poglejmo, kako se strojna koda razlikuje od kode montaže. Koda montaže ali je mnemonično različica strojne kode. To pomeni, da koda za sestavljanje uporablja imena za predstavljanje operacij in celo daje imena spominskim naslovom. Po drugi strani pa strojna koda uporablja binarne kode za zastopanje operacij in pomnilniških naslovov.

Tudi najpreprostejša oblika monterja nastopa dva prelaza čez vhod. The prvi prehod zazna vse identifikatorji v kodi za sestavljanje, ki označuje mesto shranjevanja in jih shrani v tabela simbolov (razen tabele simbolov prevajalnikov). The prostor za shranjevanje je dodeljen na identifikator, ki se sreča pri prvem prehodu.

V drugi prehod, vhod se ponovno skenira, tokrat pa koda delovanja so prevedeno v a zaporedje bitov predstavlja to operacijo v strojni kodi. Drugi prehod se tudi prevaja identifikatorji v naslovi opredeljeno v tabeli simbolov. Tako drugi prehod ustvari premična koda stroja.

  1. Ključna razlika med prevajalnikom in sestavljavcem je, da je prevajalnik ustvari kodo sestavljanja in nekateri prevajalniki lahko tudi neposredno ustvarijo izvršljivo kodo, medtem ko monter ustvari pomnilniško kodo za premikanje.
  2. Prevajalnik kot vhod vzame vnaprej obdelana koda ustvarjen s predprocesorjem. Po drugi strani sestavljalec vzame koda montaže kot vhod.
  3. Sestavljanje poteka v dveh fazah, ki so faza analize in sintezna faza. V fazi analize vhod gre skozi leksikalni analizator, sintaksični analizator, semantični analizator ker sintezna analiza poteka preko vmesni generator, kod za optimizacijo kod, generator kode. Po drugi strani sestavljalec prenaša vhod skozi dve fazi. Prva faza zazna identifikatorje in jim dodeli naslove, v drugi fazi pa se sestava koda prevede v binarno kodo.
  4. Koda za sestavljanje, ki jo ustvari prevajalnik, je a mnemonična različica strojne kode. Vendar pa je koda stroja, ki jo je mogoče premikati, generiran s strani asemblera binarna koda za premikanje.

Zaključek:

Sestavljalnik morda ni potreben, saj nekateri prevajalniki neposredno ustvarijo izvršljivo kodo. Če se uporablja asembbler, potrebuje linker, da poveže vse vgrajene knjižnice s funkcijami knjižnice, uporabljenimi v izvorni kodi.