Kas ir kompilators jeb Kā likt datoram saprast, ko jūs no tā vēlaties?

Satura rādītājs:

Kas ir kompilators jeb Kā likt datoram saprast, ko jūs no tā vēlaties?
Kas ir kompilators jeb Kā likt datoram saprast, ko jūs no tā vēlaties?

Video: Kas ir kompilators jeb Kā likt datoram saprast, ko jūs no tā vēlaties?

Video: Kas ir kompilators jeb Kā likt datoram saprast, ko jūs no tā vēlaties?
Video: Kā es nopelnīju $ 320 + vienā dienā, atkārtojiet to! (Bezmaksas kopēšanas un ielīmēšanas n... 2024, Maijs
Anonim

Pēdējais programmas izveides posms ir vienā no programmēšanas valodām (C/C++, Pascal utt.) rakstīta algoritma pārtulkošana zema līmeņa mašīnvalodā. Tas ir saistīts ar faktu, ka, lai veiktu jebkuru uzdevumu, datoriem ir jādod komandas viņiem saprotamā valodā, kas ir tuvu binārajai un darbojas ar primitīvām datu struktūrām (bitu, baitu vai vārdu). Augsta līmeņa valodu domēnspecifisko paziņojumu tulkošanas procesu binārajā kodā sauc par tulkošanu. Ir divas tulkošanas metodes – apkopošana un tulkošana.

kompilators ir
kompilators ir

Kompilators - kas tas ir?

Jēdienu "kompilators" un "kompilācija" daudzu interpretāciju analīze ļauj izcelt šādu definīciju. Kompilators ir programma, kas izstrādāta, lai tulkotu avota algoritma tekstu no augsta līmeņa valodas līdzvērtīgā instrukciju kopā mašīnorientētā valodā. Šis ir tā sauktais objekta kods, kas paredzēts iegūtā objekta koda turpmākai montāžai lietošanai gatavā programmas modulī.

Kompilators un tulks - līdzības un atšķirības

Tulks ir utilīta, kaskā arī kompilators, kas paredzēts avota koda tulkošanai mašīnkodā. Tomēr atšķirībā no kompilatora tulks darbojas katru reizi ar programmu un veic tulkojumu pa rindiņai.

Var teikt, ka kompilators un tulks ir valodu procesori, kas ļauj datoram atpazīt un izpildīt programmētāja dotās komandas.

Kompilatoru klasifikācija

kompilators ir programma
kompilators ir programma

Kompilatorus klasificē galvenokārt pēc pazīmēm, kas saistītas ar to praktiskā pielietojuma jomām.

Vectorizing kompilators ir utilīta, kas pārvērš pirmkodu objekta kodā un ir pielāgota datoriem, kas aprīkoti ar vektoru procesoriem.

Elastīgs kompilators ir ieprogrammēts augsta līmeņa valodā modulārā veidā. Tās vadība tiek veikta, izmantojot tabulas. To ir iespējams izpildīt arī, izmantojot kompilatoru kompilatoru.

Inkrementālais kompilators ir valodas procesors, kas atkārtoti pārtulko atsevišķus avota koda fragmentus un tā papildinājumus. Tomēr tas ļauj izvairīties no visas lietojumprogrammas atkārtotas kompilēšanas.

Interpretējošs (pakāpju) kompilators ir utilīta, kas secīgi veic katra augsta līmeņa pirmkoda priekšraksta vai komandas neatkarīgu kompilāciju.

Kompilatoru kompilators ir tulkotājs, kas spēj pieņemt formālu programmēšanas valodas aprakstu un neatkarīgi ģenerēt kompilatoru jebkurai valodai.

kompilators un tulks
kompilators un tulks

Atkļūdošanas kompilators ļauj atrast un labot noteikta veida sintakses kļūdas, kas radušās, rakstot avota kodu

Pastāvīgs kompilators ieņem pastāvīgu vietu RAM, un tāpēc to var atkārtoti izmantot dažādiem uzdevumiem.

Pašu sastādītais kompilators ir uzrakstīts tajā pašā valodā kā tulkojums.

Universālais kompilators ir balstīts uz formālu ievades valodas semantisko un sintaktisko parametru aprakstu. Šādas utilītas galvenās sastāvdaļas ir kodols, sintaktiskais un semantiskais ielādētājs.

Kompilatora ierīce

Kompilators un saistītājs ir jebkura kompilatora pamatā. Bieži vien, veicot kompilēšanu, tiek izmantots ārējais linkeris, un pats kompilators veic tikai tulkošanas funkciju. Gadās arī, ka kompilators tiek realizēts kā sava veida pārvaldnieka programma, kas ir saistīta ar tulkotāju (vai tulkotājiem, ja avota koda rakstīšanas laikā tika izmantotas dažādas programmēšanas valodas) un linkeri un vajadzības gadījumā sāk to izpildi.

Programmēšanas valodas un tulkošanas metodes

valodas kompilators
valodas kompilators

Neskatoties uz to, ka jebkurā programmēšanas valodā rakstītu programmu var gan kompilēt, gan interpretēt, daudzām augsta līmeņa valodām ir nosliece uz vienu vai otru tulkošanas metodi. Tātad C valoda sākotnēji bija paredzēta kompilēšanai, bet Java - rakstītās programmas interpretācijai. Tiek izstrādātiC kompilatori ir diezgan vienkārši, pateicoties tā salīdzinoši zemajam līmenim un nelielajam strukturālo elementu skaitam.

Kompilatoru un tulku priekšrocības un trūkumi. Pieteikumi

Ņemiet vērā, ka kompilētās lietojumprogrammas ir ātrākas nekā interpretētās, taču tajā pašā laikā kompilācijas rezultātā iegūtais mašīnkods ir atkarīgs no aparatūras platformas. Tātad programma, kas rakstīta un kompilēta operētājsistēmai Windows, nedarbosies, piemēram, operētājsistēmā Linux. Tāpēc interneta aplikāciju gadījumā, kad nav iespējams iepriekš pateikt, kurā vidē tās strādās, tās izmanto interpretāciju jeb baitkodu (šajā gadījumā avota programma tiek pārveidota starpformā, kuru var izpildīt uz dažādas aparatūras platformas).

Ieteicams: