Компилятордағы фаза мен өту арасындағы айырмашылық

Компилятордағы фаза мен өту арасындағы айырмашылық
Компилятордағы фаза мен өту арасындағы айырмашылық

Бейне: Компилятордағы фаза мен өту арасындағы айырмашылық

Бейне: Компилятордағы фаза мен өту арасындағы айырмашылық
Бейне: Oh my eyes🙄#shorts#theloveyougiveme #你给我的喜欢#wangziqi #王子奇 #wangyuwen #王玉雯 #cdrama #fyp 2024, Қараша
Anonim

Компилятордағы кезең және өту

Жалпы алғанда, компилятор – бастапқы тіл деп аталатын бір тілде жазылған бағдарламаны оқып, оны басқа тілге аударатын, аударма тілі деп аталатын компьютерлік бағдарлама. Дәстүрлі түрде бастапқы тіл C++ сияқты жоғары деңгейлі тіл болды, ал мақсатты тіл Ассамблея тілі сияқты төмен деңгейлі тіл болды. Сонымен, жалпы компиляторларды бір тілден екінші тілге аударатын аудармашылар ретінде қарастыруға болады. Pass және Phase - бұл компиляторлармен жиі қолданылатын екі термин. Компилятордың өту саны - оның дереккөзден (немесе оны көрсетудің қандай да бір түрі) өту саны. Құрастыру ыңғайлы болу үшін компилятор бөліктерге бөлінген. Фаза жиі компилятордың жалғыз тәуелсіз бөлігін шақыру үшін пайдаланылады.

Компилятордағы рұқсат деген не?

Компиляторларды классификациялаудың стандартты тәсілі – «өту» саны. Әдетте компиляция ресурсты қажет ететін процесс болып табылады және бастапқыда компьютерлерде толық жұмысты орындаған мұндай бағдарламаны сақтау үшін жады жеткіліксіз болды. Алғашқы компьютерлердегі аппараттық ресурстардың бұл шектелуіне байланысты компиляторлар бастапқы кодты (көзден немесе оның басқа нысанынан «өткізу» жасаған) өту арқылы өзінің жартылай жұмысын орындайтын кішірек қосалқы бағдарламаларға бөлінді және талдау жүргізді., түрлендірулер және аударма тапсырмалары бөлек. Осылайша, осы классификацияға байланысты компиляторлар біржолды немесе көпжолды компиляторлар ретінде белгіленеді.

Аты айтып тұрғандай, бір жолғы компиляторлар бір өтуде құрастырады. Бір жолғы компиляторды жазу оңайырақ, сонымен қатар олар көпжылдық компиляторларға қарағанда жылдамырақ жұмыс істейді. Сондықтан, сізде ресурс шектеулері болған кезде де, тілдер бір жолғы (мысалы, Паскаль) құрастырылатындай етіп жасалған. Екінші жағынан, әдеттегі көп өтуді компилятор бірнеше негізгі кезеңдерден тұрады. Бірінші кезең - сканер (лексикалық анализатор деп те аталады). Сканер бағдарламаны оқиды және оны белгілер жолына түрлендіреді. Екінші кезең - талдаушы. Ол таңбалауыштар жолын бағдарламаның синтаксистік құрылымын түсіретін талдау ағашына (немесе дерексіз синтаксис ағашына) түрлендіреді. Келесі кезең – синтаксистік құрылымның семантикасын түсіндіру. Кодты оңтайландыру кезеңдері және соңғы кодты жасау кезеңі осыдан кейін жүреді.

Компилятордағы фаза дегеніміз не?

Термин фазасы компилятор құрылысы туралы айтқан кезде жиі шығады. Бастапқыда компиляторлар қарапайым тілді құрастыру үшін бір адам жазған жалғыз, монолитті бағдарламалық қамтамасыз етудің әрбір қарапайым бөліктері болды. Бірақ аударылатын тілдің бастапқы коды күрделі және үлкен болған кезде, компилятор бірнеше (салыстырмалы түрде тәуелсіз) фазаларға бөлінген. Әртүрлі фазалардың артықшылығы - компиляторды әзірлеу әзірлеушілер тобы арасында таратылуы мүмкін. Оған қоса, ол фазаларды жетілдірілгендермен ауыстыруға немесе компиляторға қосымша фазаларды (бұдан әрі оңтайландырулар сияқты) қосуға мүмкіндік беру арқылы модульдік пен қайта пайдалануды жақсартады. Компиляцияны фазаларға бөлу процесі Карнеги Мелон университетінде PQCC (Өндіріс сапасының компилятор-компилятор жобасы) арқылы енгізілген. Олар фронт, ортаңғы және артқы жақ терминдерін енгізді. Көптеген компиляторлардың кемінде екі фазасы бар. Бірақ әдетте артқы жағы мен алдыңғы жағы бұл фазаларды қамтиды.

Компилятордағы фаза мен өтудің айырмашылығы неде?

Phase және Pass - компиляторлар саласында қолданылатын екі термин. Өткізу - компилятордың бастапқы кодты немесе оның басқа көрінісін бір рет өтуі (өтетін). Әдетте, компиляторлардың көпшілігінде алдыңғы және артқы жағы деп аталатын кемінде екі фаза болады, ал олар бір өту немесе көп өту болуы мүмкін. Фаза компиляторларды құрылысына қарай жіктеу үшін пайдаланылады, ал pass компиляторларды жұмыс істеу тәсіліне қарай жіктеу үшін пайдаланылады.

Ұсынылған: