Компилятор деген эмне, же компьютер андан эмнени каалап жатканын кантип түшүнсө болот?

Мазмуну:

Компилятор деген эмне, же компьютер андан эмнени каалап жатканын кантип түшүнсө болот?
Компилятор деген эмне, же компьютер андан эмнени каалап жатканын кантип түшүнсө болот?

Video: Компилятор деген эмне, же компьютер андан эмнени каалап жатканын кантип түшүнсө болот?

Video: Компилятор деген эмне, же компьютер андан эмнени каалап жатканын кантип түшүнсө болот?
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Май
Anonim

Программаны түзүүнүн акыркы этабы программалоо тилдеринин биринде жазылган алгоритмди (C/C++, Pascal ж.б.) төмөнкү деңгээлдеги машина тилине которуу. Себеби, кандайдыр бир тапшырманы аткаруу үчүн компьютерлерге экиликке жакын жана примитивдүү маалымат структуралары (бит, байт же сөз) менен иштеген алар түшүнгөн тилде буйруктар берилиши керек. Жогорку деңгээлдеги тилдердин доменге тиешелүү билдирүүлөрүн бинардык кодго которуу процесси котормо деп аталат. Котормонун эки ыкмасы бар - компиляция жана чечмелөө.

компилятор болуп саналат
компилятор болуп саналат

Компилятор - бул эмне?

"Компилятор" жана "компиляция" терминдеринин көптөгөн интерпретацияларынын анализи төмөнкү аныктаманы бөлүп көрсөтүүгө мүмкүндүк берет. Компилятор – бул баштапкы алгоритмдин текстин жогорку деңгээлдеги тилден машинага багытталган тилдеги нускамалардын эквиваленттүү топтомуна которуу үчүн арналган программа. Бул объект коду деп аталган, натыйжада объекттин кодун колдонууга даяр программа модулуна кийинчерээк чогултуу үчүн.

Түзүүчү жана котормочу - окшоштуктар жана айырмачылыктар

Котормочу бул пайдалуу программаошондой эле компилятор, баштапкы кодду машина кодуна которуу үчүн иштелип чыккан. Бирок, компилятордон айырмаланып, котормочу ар бир жолу программа менен иштейт жана котормону сап-сап аткарат.

Сиз компилятор жана котормочу бул компьютерге программист тарабынан берилген буйруктарды таанууга жана аткарууга мүмкүндүк берген тил процессорлору деп айта аласыз.

Түзүүчү классификация

компилятор бул программа
компилятор бул программа

Компиляторлор негизинен практикалык колдонуу чөйрөлөрүнө байланыштуу өзгөчөлүктөрү боюнча классификацияланат.

Векторизациялоочу компилятор бул баштапкы кодду объект кодуна которуучу утилита жана вектордук процессорлор менен жабдылган компьютерлерге ылайыкташтырылган.

Ийкемдүү компилятор модулдук түрдө жогорку деңгээлдеги тилде программаланган. Аны башкаруу таблицалардын жардамы менен ишке ашырылат. Аны компиляторлордун компилятору аркылуу да аткарууга болот.

Инкременттүү компилятор – бул баштапкы коддун айрым фрагменттерин жана ага кошумчаларды кайра которгон тил процессору. Бирок, ал толугу менен колдонмону кайра компиляциялоодон качат.

Тертмелөөчү (кадамдык) компилятор жогорку деңгээлдеги баштапкы коддун ар бир билдирүүсүн же буйругун көз карандысыз компиляциялоону ырааттуу аткарган утилита.

Компиляторлордун компилятору – бул программалоо тили үчүн расмий сүрөттөмөлөрдү кабыл алууга жана каалаган тил үчүн компиляторду өз алдынча түзүүгө жөндөмдүү котормочу.

компилятор жана котормочу
компилятор жана котормочу

Мүчүлүштүктөрдү оңдоо компилятору булак кодун жазууда кетирилген синтаксистик каталардын айрым түрлөрүн таап, оңдоого мүмкүндүк берет

Резиденттик компилятор оперативдүү эс тутумда туруктуу орунду ээлейт жана ошондуктан ар кандай тапшырмалар үчүн кайра колдонууга болот.

Өз алдынча түзүлгөн компилятор котормо менен бир тилде жазылган.

Универсалдуу компилятор киргизүү тилинин семантикалык жана синтаксистик параметрлеринин формалдуу сүрөттөлүшүнө негизделген. Мындай утилитанын негизги компоненттери болуп негизги, синтаксистик жана семантикалык жүктөөчүлөр саналат.

Компилятор түзмөгү

Компилятор жана байланыштыргыч бардык компилятордун өзөгүндө. Көбүнчө компиляциялоодо тышкы байланыштыргыч колдонулат, ал эми компилятор өзү котормо функциясын гана аткарат. Ошондой эле компилятор котормочу (же котормочулар, эгер баштапкы кодду жазууда ар кандай программалоо тилдери колдонулган болсо) жана шилтеме берүүчү менен байланышкан башкаруучу программанын бир түрү катары ишке ашырылат жана зарыл болгондо аларды аткарууну баштайт.

Программалоо тилдери жана которуу ыкмалары

тил компилятору
тил компилятору

Кандайдыр бир программалоо тилинде жазылган программа компиляцияга да, чечмелөөгө да боло тургандыгына карабастан, көптөгөн жогорку деңгээлдеги тилдер котормонун тигил же бул ыкмасына ыкташат. Ошентип, Си тили алгач компиляция үчүн, ал эми Java - жазылган программаны чечмелөө үчүн иштелип чыккан. Иштеп чыгуудаC компиляторлору салыштырмалуу төмөн деңгээли жана аз сандагы структуралык элементтеринин аркасында абдан оңой.

Компиляторлордун жана котормочулардын артыкчылыктары жана кемчиликтери. Колдонмолор

Көңүл буруңуз, компиляцияланган тиркемелер чечмеленгендерге караганда тезирээк, бирок ошол эле учурда компиляциянын натыйжасында алынган машина коду аппараттык платформадан көз каранды. Ошентип, Windows үчүн жазылган жана түзүлгөн программа, мисалы, Linuxда иштебейт. Ошондуктан, Интернет-тиркемелерде, алар кайсы чөйрөдө иштей турганын алдын ала айтуу мүмкүн болбогондо, алар интерпретацияны же байт-кодду колдонушат (бул учурда, баштапкы программа ар кандай жабдыкта аткарыла турган аралык формага айландырылат. платформалар).

Сунушталууда: