/ / Što je ovo - kompajler ili Kako natjerati računalo da razumije što želite od njega?

Što je to - prevodilac, ili Kako napraviti računalo razumjeti ono što želite od njega?

Završna faza izrade programa jeprijevod algoritma napisanog u jednom od programskih jezika (C / C ++, Pascal, itd.) u strojni jezik niske razine. To je zbog činjenice da računala za izvršavanje bilo kojeg zadatka trebaju postaviti naredbe na jeziku koji razumiju, binarnom i koji djeluje na primitivnim strukturama podataka (bit, bajt ili riječ). Proces prevođenja problemski orijentiranih operatora jezika visoke razine u binarni kod naziva se prijevod. Postoje dvije metode prevođenja - kompilacija i tumačenje.

sastavljač je

Prevoditelj - što je to?

Analiza mnogih tumačenja pojmova "kompajler" i "kompilacija" omogućuje nam da istaknemo sljedeću definiciju. Sastavljač Je li program namijenjen prevođenjutekst izvornog algoritma iz jezika visoke razine u ekvivalentan niz uputa u strojno orijentiranom jeziku. Ovo je takozvani objektni kod za naknadno povezivanje rezultirajućeg objektnog koda u programski modul spreman za upotrebu.

Sastavljač i tumač - sličnosti i razlike

Tumač Je li uslužni program, baš poput kompajlera,dizajniran za prevođenje izvornog koda u strojni kod. Međutim, za razliku od prevoditelja, tumač se pokreće svaki put s programom i izvodi prijevod redak po redak.

Možemo reći da su kompajler i tumač jezični procesori koji omogućuju računarskom stroju prepoznavanje i izvršavanje uputa danih od programera.

Klasifikacija sastavljača

kompajler je program

Sastavljači su klasificirani uglavnom prema značajkama povezanim s njihovim područjima praktične primjene.

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

Fleksibilni kompajler programirano jezikom visoke razine na modularnoj osnovi. Njeno upravljanje provodi se pomoću tablica. Također ga je moguće izvršiti s kompajlerom kompajlera.

Inkrementalni sastavljač Je li jezični procesor koji ponovno prevodi pojedine fragmente izvornog koda i njegove dodatke. Međutim, eliminira potrebu za ponovnim prevođenjem cijele aplikacije.

Tumačenje (korak po korak) kompajlera Je uslužni program koji neovisno kompajlira svaki izraz ili naredbu u izvornom kodu visoke razine uzastopno.

Sastavljač sastavljača - prevoditelj sposoban prihvatiti formalni opis za programski jezik i samostalno generirati prevoditelj za bilo koji jezik.

sastavljač i tumač je

Kompajler za otklanjanje pogrešaka omogućuje vam pronalaženje i uklanjanje nekih vrsta sintaksnih pogrešaka nastalih prilikom pisanja izvornog koda

Stalni sastavljač zauzima stalno mjesto u RAM-u i stoga je dostupan za ponovnu upotrebu u širokom rasponu zadataka.

Samokompilirajući kompajler napisana na istom jeziku s kojeg se emitira.

Generički prevoditelj temelji se na formalnom opisu semantičkih i sintaktičkih parametara ulaznog jezika. Glavne komponente takvog uslužnog programa su jezgra, sintaktički i semantički učitavači.

Uređaj za sastavljanje

Bilo koji kompajler temelji se na prevoditelju ipovezivač. Često se prilikom sastavljanja koristi vanjski povezivač, a sam prevoditelj izvršava samo funkciju prevođenja. Također se događa da je prevodilac implementiran kao vrsta upraviteljskog programa pridruženog prevoditelju (ili prevoditeljima, ako su se prilikom pisanja izvornog koda koristili različiti programski jezici) i povezivaču, te po potrebi započinje njihovo izvršavanje.

Programski jezici i metode prevođenja

sastavljač jezika

Unatoč činjenici da je program napisan ubilo koji programski jezik, možete i kompajlirati i interpretirati, mnogi jezici visoke razine imaju predispoziciju za jednu ili drugu metodu prevođenja. Dakle, jezik C izvorno je dizajniran za kompilaciju, a Java - za interpretaciju pisanog programa. C kompajleri se razvijaju prilično lako, zbog njegove relativno niske razine i malog broja strukturnih elemenata.

Prednosti i nedostaci sastavljača i tumača. Područja upotrebe

Imajte na umu da prevedene aplikacije imajuveća brzina u usporedbi s protumačenim, ali istodobno dobiveni kompilirani strojni kod ovisi o hardverskoj platformi. Dakle, program napisan i kompiliran za Windows neće raditi, na primjer, na Linuxu. Stoga se u slučaju internetskih aplikacija, kada je nemoguće unaprijed reći u kojem će okruženju raditi, koriste interpretaciju ili bytecode (u ovom slučaju, izvorni program pretvara se u srednji oblik koji se može izvršiti na raznom hardveru platforme).