mikä on Kääntäjä?
Kääntäjä on tietokoneohjelma, joka muuntaa korkean tason ohjelmointikielellä kirjoitettua koodia koneen koodiksi. Se on ohjelma, joka kääntää ihmisen luettavan koodin tietokoneen suorittimen ymmärtämälle kielelle (binääriset 1 ja 0 bittiä). Tietokone käsittelee koneen koodin suorittaakseen vastaavat tehtävät.
kääntäjän tulee noudattaa sen ohjelmointikielen syntaksisääntöä, jolla se on kirjoitettu. Kääntäjä on kuitenkin vain ohjelma eikä voi korjata ohjelmasta löytyneitä virheitä. Niin, jos teet virheen, sinun täytyy tehdä muutoksia syntaksi ohjelman. Muuten se ei kokoudu.
mikä on tulkki?
tulkki on tietokoneohjelma, joka peittää jokaisen korkean tason ohjelmalausekkeen koneen koodiin. Tämä sisältää lähdekoodia, valmiiksi koottua koodia ja skriptejä. Sekä kääntäjä että tulkit tekevät samaa työtä eli muuntavat korkeamman tason ohjelmointikielen konekoodiksi. Kääntäjä kuitenkin muuntaa koodin konekoodiksi (luo exe) ennen ohjelman suorittamista. Tulkit muuntavat koodin konekoodiksi, kun ohjelma ajetaan.
avainero
- Kääntäjä muuttaa korkean tason ohjelmointikielellä kirjoitetun koodin konekoodiksi kerralla ennen ohjelman suorittamista, kun taas tulkki peittää jokaisen korkean tason ohjelman lausunto yksi kerrallaan koneen koodiin ohjelman aikana.
- käännetty koodi kulkee nopeammin kun taas tulkittu koodi toimii hitaammin.
- Kääntäjä näyttää kaikki virheet koostamisen jälkeen, toisaalta tulkki näyttää jokaisen rivin virheet yksitellen.
- Kääntäjä perustuu käännöksen linkitys-latausmalliin, kun taas tulkki perustuu Tulkkausmenetelmään.
- Kääntäjä ottaa kokonaisen ohjelman, kun taas tulkki ottaa yhden rivin koodia.
kääntäjän ja tulkin ero
eron perusta | Kääntäjä | |
---|---|---|
ohjelmointivaiheet |
|
|
etu | ohjelma koodi on jo käännetty konekoodiksi. Näin, se koodi suoritusaika on vähemmän. | tulkkeja on helpompi käyttää, erityisesti aloittelijoille. |
haitta | ohjelmaa ei voi muuttaa menemättä takaisin lähdekoodiin. | tulkitut ohjelmat voivat toimia tietokoneissa, joissa on vastaava tulkki. |
koneen koodi | säilytä konekieli koneen koodina levyllä | ei tallenna koneen koodia lainkaan. |
juoksuaika | kootut koodit juoksevat nopeammin | tulkitut koodit juoksevat hitaammin |
malli | se perustuu kielen translationlinking-latausmalliin. | se perustuu Tulkintamenetelmään. |
Program generation | luo lähtöohjelman (muodossa exe), jota voidaan ajaa itsenäisesti alkuperäisestä ohjelmasta. | Älä luo tulostusohjelmaa. He siis arvioivat lähdeohjelman joka kerta suorituksen aikana. |
suoritus | ohjelman suoritus on erillinen koosteesta. Se suoritetaan vasta, kun koko tuotosohjelma on koottu. | ohjelman suoritus on osa tulkintaprosessia, joten se suoritetaan rivi riviltä. |
Muistivaatimus | Kohdeohjelma suoritetaan itsenäisesti eivätkä vaadi kääntäjää muistiin. | tulkki on muistissa tulkkauksen aikana. |
soveltuu parhaiten | : lle, joka rajoittuu tiettyyn kohdekoneeseen eikä sitä voi siirtää. C ja C++ ovat suosituin a-ohjelmointikieli, joka käyttää kokoelmamallia. | verkkoympäristöissä, joissa latausajat ovat tärkeitä. Koska kaikki tyhjentävä analyysi on tehty, compiles vie suhteellisesti enemmän aikaa koota pienikin koodi, jota ei voi ajaa useita kertoja. Tällaisissa tapauksissa tulkit ovat parempia. |
koodin optimointi | kääntäjä näkee koko koodin etukäteen. Siksi he suorittavat paljon optimointeja, jotka tekevät koodin suorittamisen nopeammaksi | tulkitsijat näkevät koodin rivi riviltä, joten optimoinnit eivät ole yhtä vankkarakenteisia kuin kääntäjät |
dynaaminen kirjoittaminen | vaikea toteuttaa, koska kääntäjät eivät pysty ennustamaan, mitä tapahtuu kääntöajalla. | Tulkatut kielet tukevat dynaamista kirjoittamista |
käyttö | se soveltuu parhaiten tuotantoympäristöön | se soveltuu parhaiten ohjelma-ja kehitysympäristöön. |
virheen suoritus | Kääntäjä näyttää kaikki virheet ja varoituksen kokoamisajankohtana. Siksi ohjelmaa ei voi suorittaa korjaamatta virheitä | tulkki lukee yhden lausekkeen ja näyttää virheen, jos sellainen on. Sinun täytyy korjata virhe tulkitaksesi seuraavaa riviä. |
Input | se vie kokonaisen ohjelman | se vie yhden rivin koodia. |
Output | Compliers luo keskitason machnie-koodin. | tulkki ei koskaan luo mitään keskitason machnie-koodia. |
virheet | näyttää kaikki virheet koostamisen jälkeen, kaikki samaan aikaan. | näyttää jokaisen rivin kaikki virheet yksitellen. |
liittyvät ohjelmointikielet | C,C++,C#, Scala, Java kaikki käyttävät complier-ohjelmaa. | PHP, Perl, Ruby käyttää tulkkia. |
kääntäjän rooli
- Kääntäjä lukee lähdekoodin, tuottaa suoritettavan koodin
- kääntää korkeamman tason kielellä kirjoitetut ohjelmistot ohjeiksi, jotka tietokone ymmärtää. Se muuntaa ohjelmoijan kirjoittaman tekstin muotoon, jonka suoritin voi ymmärtää.
- kokoamisprosessi on suhteellisen monimutkainen. Se viettää paljon aikaa analysoimalla ja käsittelemällä ohjelmaa.
- suoritustulos on jonkinlainen konekohtainen binäärikoodi.
tulkin rooli
- tulkki muuntaa lähdekoodin rivi riviltä suorituksen aikana.
- tulkki kääntää ylätason kielellä kirjoitetun ohjelman kokonaan konetason kieleksi.
- tulkki mahdollistaa ohjelman arvioinnin ja muokkaamisen sen ollessa käynnissä.
- ohjelman analysointiin ja käsittelyyn käytetty aika
- ohjelman toteutus on suhteellisen hidasta verrattuna kääntäjään
korkean tason kieliin
korkean tason kieliin, kuten C, C++, JAVA jne., ovat hyvin lähellä Englanti. Se tekee ohjelmoinnista helppoa. Se on kuitenkin käännettävä konekielelle ennen toteutusta. Tämän käännösprosessin suorittaa joko Kääntäjä tai tulkki. Tunnetaan myös nimellä lähdekoodi.
konekoodi
Konekielet ovat hyvin lähellä laitteistoa. Jokaisella tietokoneella on oma konekielensä. Konekielen ohjelmat koostuvat sarjoista binäärikuvioita. (Esim. 110110) se edustaa yksinkertaisia toimintoja, jotka tietokoneen tulisi suorittaa. Konekieliset ohjelmat ovat suoritettavia niin, että ne voidaan ajaa suoraan.
OBJEKTIKOODI
lähdekoodia koottaessa eri prosessoreille, kuten Intelille, AMD: lle, an ARM on erilainen. TTO tehdä koodi kannettava, lähdekoodi muunnetaan ensin Objektikoodiksi. Se on välittäjäkoodi (samanlainen kuin konekoodi), jota yksikään prosessori ei ymmärrä. Suorituksen aikana objektikoodi muunnetaan taustalla olevan alustan konekoodiksi.
Javaa sekä kootaan että tulkitaan.
kääntäjien suhteellisten etujen hyödyntämiseksi tulkitaan joitakin ohjelmointikieliä, kuten Javaa, sekä kootaan että tulkitaan. Itse Java-koodi on koottu Objektikoodiksi. Ajon aikana JVM tulkitsee kohdetietokoneen kohdekoodin konekoodiksi.