Šta je kompajler, ili Kako naterati računar da razume šta želite od njega?

Sadržaj:

Šta je kompajler, ili Kako naterati računar da razume šta želite od njega?
Šta je kompajler, ili Kako naterati računar da razume šta želite od njega?

Video: Šta je kompajler, ili Kako naterati računar da razume šta želite od njega?

Video: Šta je kompajler, ili Kako naterati računar da razume šta želite od njega?
Video: Od nule do diplomiranog heroja: Putovanje u poslovnu analizu 2024, April
Anonim

Završna faza kreiranja programa je prevođenje algoritma napisanog u jednom od programskih jezika (C/C++, Pascal, itd.) u mašinski jezik niskog nivoa. To je zbog činjenice da da bi izvršili bilo koji zadatak, računarima je potrebno dati komande na jeziku koji razumiju, bliskom binarnom i koji rade s primitivnim strukturama podataka (bit, bajt ili riječ). Proces prevođenja specifičnih izjava jezika visokog nivoa u binarni kod naziva se prevođenje. Postoje dvije metode prijevoda - kompilacija i interpretacija.

kompajler je
kompajler je

Kompajler - šta je to?

Analiza mnogih tumačenja pojmova "kompilator" i "kompilacija" omogućava nam da istaknemo sljedeću definiciju. Kompajler je program dizajniran da prevede tekst izvornog algoritma sa jezika visokog nivoa u ekvivalentan skup instrukcija u mašinski orijentisanom jeziku. Ovo je takozvani objektni kod, za naknadno sklapanje rezultirajućeg objektnog koda u programski modul spreman za upotrebu.

Kompajler i interpretator - sličnosti i razlike

Tumač je uslužni program kojikao i kompajler, dizajniran da prevede izvorni kod u mašinski kod. Međutim, za razliku od kompajlera, tumač se svaki put pokreće sa programom i izvodi prevod red po red.

Možete reći da su kompajler i interpretator jezički procesori koji omogućavaju računaru da prepozna i izvrši komande koje je dao programer.

Klasifikacija kompajlera

kompajler je program
kompajler je program

Kompajlatori su klasifikovani uglavnom prema karakteristikama koje se odnose na njihova područja praktične primjene.

Vektorizirajući kompajler je uslužni program koji prevodi izvorni kod u objektni kod i prilagođen je računarima opremljenim vektorskim procesorima.

Fleksibilni kompajler je programiran na jeziku visokog nivoa na modularan način. Njegovo upravljanje se vrši pomoću tabela. Također ga je moguće izvršiti pomoću kompajlera kompajlera.

Inkrementalni kompajler je jezički procesor koji ponovo prevodi zasebne fragmente izvornog koda i njegove dodatke. Međutim, izbjegava ponovno kompajliranje cijele aplikacije.

Interpretivni (stepping) kompajler je uslužni program koji sekvencijalno izvodi nezavisnu kompilaciju svake izjave ili komande izvornog koda visokog nivoa.

Kompajler kompajlera je prevodilac sposoban da prihvati formalni opis za programski jezik i nezavisno generiše kompajler za bilo koji jezik.

kompajler i interpretator
kompajler i interpretator

Kompajler za otklanjanje grešaka vam omogućava da pronađete i popravite neke vrste sintaksičkih grešaka napravljenih prilikom pisanja izvornog koda

Stalni kompajler zauzima stalno mjesto u RAM-u i stoga se može ponovo koristiti za širok spektar zadataka.

Samo kompajlirani kompajler je napisan na istom jeziku kao i prevod.

Univerzalni kompajler je zasnovan na formalnom opisu semantičkih i sintaksičkih parametara jezika unosa. Glavne komponente takvog uslužnog programa su jezgro, sintaktički i semantički učitavači.

Uređaj kompajlera

Kompajler i linker su u srcu svakog kompajlera. Često se prilikom kompajliranja koristi vanjski linker, a sam kompajler obavlja samo funkciju prevođenja. Takođe se dešava da se kompajler implementira kao neka vrsta menadžerskog programa koji je povezan sa prevodiocem (ili prevodiocima, ako su pri pisanju izvornog koda korišćeni različiti programski jezici) i linkerom i počinje njihovo izvršavanje kada je potrebno.

Programski jezici i metode prevođenja

prevodilac jezika
prevodilac jezika

Uprkos činjenici da se program napisan na bilo kojem programskom jeziku može i kompajlirati i interpretirati, mnogi jezici visokog nivoa imaju predispoziciju za jednu ili drugu metodu prevođenja. Dakle, jezik C je prvobitno dizajniran za kompilaciju, a Java - za interpretaciju napisanog programa. Razvijaju seC kompajleri su prilično jednostavni, zahvaljujući relativno niskom nivou i malom broju strukturnih elemenata.

Prednosti i nedostaci kompajlera i interpretatora. Prijave

Imajte na umu da su kompajlirane aplikacije brže od interpretiranih, ali u isto vrijeme, mašinski kod dobijen kao rezultat kompilacije zavisi od hardverske platforme. Dakle, program napisan i kompajliran za Windows neće raditi, na primjer, u Linuxu. Stoga, u slučaju internetskih aplikacija, kada je nemoguće unaprijed reći u kojem okruženju će raditi, one koriste interpretaciju ili bytecode (u ovom slučaju izvorni program se pretvara u srednji oblik koji se može izvršiti na različitim hardverima platforme).

Preporučuje se: