Erinevus koostaja ja tõlgi vahel

Koostaja vs tõlk

Kui kirjutate programme kõrgel tasemel, ei saa arvuti sellest aru. Et see oleks kasutatav, peate selle konverteerima arvutiks arusaadavaks. Siin tulevadki sisse koostajad ja tõlgid, kuna mõlemad täidavad sama funktsiooni. Peamine erinevus kompilaatori ja tõlgi vahel on koodi täitmisel. Tõlgi korral täidetakse kood kohe, kui suuline tõlk edastatakse arvutisse. Võrdluseks: kompilaator ei käivita koodi. Selle asemel kirjutab see valmis koodi kettale. Seejärel saab kettale kirjutatud koodi igal ajal käivitada.

Tõlgi ja kompilaatori peamine erinevus tekitab veel ühe. Kuna programmi käitamisel on vaja tõlki, peab teie arvutis programmi täitmiseks olema tõlk installitud. Kompilaatori puhul see pole nii. Kui programm on kompileeritud, vajate lihtsalt kompileeritud programmi, mitte kompilaatorit ega algset koodi.

Tõlgi, mitte kompilaatori kasutamise eeliseks on võimalus programmi käivitada erinevates opsüsteemides töötavates arvutites; kui teil on sobiv tõlk. Programmi kompileerimisel oleks see mõeldud ainult konkreetsele opsüsteemile ja ei töötaks teistel. Selle käivitamiseks mõnes teises opsüsteemis peate selle opsüsteemi koodi optimeerima ja uuesti kompileerima.

Tõlgi kasutamise negatiivne külg on lisatud üldkulud. Tõlk vajaks teatavat töötlemisvõimsust ja iga koodirida tõlgendataks käituse ajal. See pole nii, kui teil on kompileeritud programm, kuna opsüsteem saab seda otse lugeda ja iga käsku täita. Koodi tõlgendamise lisaetapp muudab tõlgendatud programmi käitamise oluliselt aeglasemaks kui kompileeritud kood. Tõlk ei saaks ka ära OS-i spetsiifilisi optimeerimisi, mis võimaldavad kompileeritud programmil tõhusamalt töötada.

Kompileeri ja tõlgi vahel valimine peaks sõltuma sellest, kas soovite teisaldamist või jõudlust.

Kokkuvõte:

  1. Tõlk käivitab koodi otse, kompilaator mitte
  2. Tõlk peab olema sihtmasinas kättesaadav, kui kompilaator mitte
  3. Tõlgendatud programm töötab mitmel platvormil, kompileeritud programm aga mitte
  4. Tõlgendatud programm töötab aeglasemalt kui kompileeritud programm