1. Транслятор және программалау тілдерінің жалпы айырмашылықтары
2. Программалау тілдерінің ортақ мінездемелері.
1. Программалау тілдері міндеттемесі, құрылымы, семантикалық күрделілігі, іске асу әдістері бойынша бір – бірінен едәуір айырмашылық жасайды. Бұл конкрет трансляторды жасауда өзіндік спецификалық ерекшіліктеріне бейімдейді.
Программалау тілдері әртүрлі пән облыстарындағы мәселелерді шешудің құрамы болып та табылады. Бұл олардың міндеті және ұйымдастырылу спецификасын анықтайды. Мысал ретінде ғылыми есептеулерге бағытталған Фортрон тілі, жүйелік программалауға арналған Си, логикалық мәселелерді ыңғайлы бейнелейтін Пролог, тізімдерді рекурсивті өңдеу үшін қолданылатын Лисп т.б. тілдерді айтуға болады. әрбір облыс тілдің ұйымдастырылуына өз талаптарын қояды. Осы себепті операторлар мен өрнектер көрінісінің формалары арқылы, базалық амалдар жиынтығында айырмашылықтар бар, басқа облыс мәселелерін шешуде эффектілігі кемиді.
Тілдік айырмашылықтар транслятор құрылымына әсер етеді . Лисп және Пролог есептеулер барысында берілгендер типінің динамикалық түзілуін қолдамайтындықтан, көбінесе интерпретатор режимінде орындалады. Фортран тілінің трансляторлары үшін машиналық код оптимизациясын барынша күшейту тән. Бұл тіл конструкция ларының қарапайым семантикасының арқасында мүмкін болып отыр. (Бұл тілде көрсеткіш және нұсқаулар жоқ).
Тіл құрылымы оның ұғымдары арасындағы иерархиялық қатынастарды бейнелейді. Ал ұғымдар синтаксистік ережелермен бейнеленеді. Программалау тілдерінің жекелеген ұғымдар және олардың арсындағы қатынастардың ұйымдастырылуы бойынша айырмашылықтары үлкен болуы мүмкін Мысалы С тілінде айнымалыны қолданудан алдын сипатталса болғаны. Ал Паскаль тілінде айнымалылар тек арнайы сипатталу бөлімінде ғана сипатталады. Ал Бейсик тілінде айнымалыларды сипаттамасыз-ақ қолдана береді.
Программалау тілдерінің семнтикасы өте кең көлемде өзгеруі мүмкін. Олар тек қана жеке операцияларды жүзеге асыру ерекшеліктері бойынша ғана емес программаны құру әдістаріндегі айырмашылықтар бойынша да еркшеленеді. Бір тілдің өзі әртүрлі әдістермен жүзеге асырылуы мүмкін. Бұл формальды грамматикалар теориясының бір сөйлемді әртүрлі әдіспен тануға мүмкіндік беруінен туындайды. Осыған байланысты бастапқы берілген текст бойынша бір нәтижені (объектілі кодты) әртүрлі әдістермен алуы мүмкін .
2. Дей тұрғанмен, барлық программалау тілдері бірқатар ортақ мінездемелерге ие. Бұл жалпылық трансляторларды ұйымдастырудың барлық тілдер принциптерін анықтайды. Программалау тілдері программа құруды жеңілдетуге арналады. Сондықтан олардың операторлары мен берілгендер құрылымы машиналық тілдерге қарағанда қуаттырақ. Программа көрнекілігін көтеру үшін конструкциялардың сандық кодтарының орнына адамдардың қабылдауына ыңғайлырақ символдық немесе графикалық көрінісі қолданылады. Кез-келген тіл үшін төмендегілер анықталады.
– Дұрыс программалар жазу үшін қолданылатын символдар жиыны .
– Дұрыс программалар (сөздер ) жиыны (синтаксис )
– Әрбір дұрыс программаның “мағанасы ”(семантика )
Программалау тілдері (басқа кез-келген күрделі жүйелер сияқты) элементтері арасындағы өзара байланысты беретін ұғымдар иерархиясы арқылы анықталады. Бұл ұғымдар өзара бір-бірімен синтаксистік ережелермен байланыстырылған. Бұл ережелер бойынша құрылған программа сәйкес иерархиялық құрылымға ие. Осыған байланысты барлық тілдермен олардың программалары үшін ортақ қосымша мынандай мінездемелер беруге болады:
Әрбір тілдің программа тудыруға (құруға )мүмкіндік беретін, жазылған программаның берілген тілге сәйкес келуін анықтауға(танитын ) мүмкіндік беретін ережелер болуы тиіс.
Лекция 22 Тақырыбы: Программалау тілдері теориясының негізгі
түсініктері мен анықтамалары
1. Транслятор. Ассемблер. Компилятор.
2. Интерпретатор. Эмулятор
3. Перекодировщик. Микропроцессор
1. Транслятор-қандай да бір программалау тілінде жазылған программалары объектілі тілде бейнеленген жұмыс істейтін программаға айналдыратын арнайы программа. Бұл анықтама трансляцияланатын программалардың барлық түрлеріне қатысты. Мұндай программалардың трансляциялау процесі бойынша өз ерекшелігі бар. Қазіргі уақытта трансляторлар негізгі 3 топқа бөлінеді:
1. Ассемблер. 2. Компилятор. 3. Интерпритатор.
Ассемблер-символдық құрылымды машиналық тілдің командаларына айналдыратын (жүйелік) қызмет көрсетуші жүйелік программа. Ассемблердің ерекшелігі символдық бір команданы машиналық бір командаға трансляциялайды. Ассемблер тілі (автокод деп атайды). Жүйенің компьютердің командаларын қабылдауын жеңілдетуге және осы командалар жүйесінде программаларды жеңілдетуге арналған.
Компилятор-программалау тілдерінің бірінде жазылған программаны машиналық тілдегі программаға трансляциялауды орындайтын қызмет көрсетуші программа. Ассемблер сияқты программаның бір тілден екінші тілге айналдыруды қамтамасыз етеді. Берілген тілдің командаларының машиналық тілдің командаларынан әжептеуір айырмашылығы бар. Мысалы: кейбір тілдердің бір командасы машиналық тілдің 7-10 командасына сәйкес келеді. Программалау тілдерінде алдын-ала сипатталатын берілгендердің типтері қолданылады. Себебі, программалау алгоритмдерді кодтауға емес берілгендер мен кластардың мұқият ойластырылған құрылымына сүйенеді. Мұндай тілдерден трансляциялау процесі компиляция деп, ал берілген тілдер жоғары программалау тілдері деп аталады.
2. Интерпретатор-берілген программаны әрбір оператор бойынша трансляциялайтын және орындайтын арнайы программа немесе құрылғы. Компилятор сияқты программаны машиналық тілге айналдырмайды. Берілген тілдің командасын қабылдаған соң орындайды. Интерпритатордың кемшілігі программаны орындау жылдамдығының төмендігі. Интерпритаторды пайдаланатын программалар машиналық тілде жазылған программаға қарағанда 50-100 есе баяу орындалады.
Эмулятор-кодты немесе операцияны орындау әдістерін пайдаланатын программа. Берілген ЭЕМ-нан басқа ЭЕМ-де программаны қайта құрмай орындауға мүмкіндік беретін программа немесе программалық техникалық құрал. Эмулятор қандай да бір тілде жазылған программаны орындауы жағынан интерпритаторға ұқсас. Бұл екеуі де операция кодын түсініп қабылдаған соң бірден орындалатын екі кодтағы командаларды бейнелейді. Эмулятор әр түрлі мақсатта пайдаланылады. Мысалы: жаңа есептеу техникасын құруда, алдымен әлі құрылмаған компьютер үшін программаларды орындайтын эмулятор құрылады. Бұл командалар жүйесімен базалық қамтамасыздандыру программаларын сәйкес құрылғы құрылғанға дейін анықтап алуға мүмкіндік береді. Эмулятор көбінесе ескі программаларды жаңа есептеу машиналарында орындау үшін пайдаланылады. Әдетте жаңа компьютердің жұмыс істеу жылдамдығы жоғары және сыртқы құрылғылары сапалы болып келетіні белгілі. Бұл ескі программаларды жаңа компьютерді ескі компьютерге қарағанда тиімдірек орындауға мүмкіндік береді. Эмуляторда интерпритатор сияқты бір ЭЕМ архетектурасынан екіншісіне оңай өте алады.
3. Перекодировщик (қайта кодтаушы)-бір ЭЕМ- нің машиналық тілінде жазылған программалаудың екінші ЭЕМ- нің машиналық тіліне аударатын программа немесе программалық құрылғы. Перекодировщиктер программалауды бір компьютер архетектурасынан екіншісіне өткізуде пайдалы.
Микропроцессор- бір символдар тізбегін екінші бір символдар тізбегімен ауыстыруды қамтамасыз ететін программа, бұл компилятордың бір түрі. Ол шығатын тексті түрлендіруде берілген тексте орналасқан арнайы қондырғыларды өңдеу жолы арқылы жүзеге асырады. Бұл қондырғылар арнайы белгіленіп микро тіл деп аталатын тіл құрылымына жатады. Микропроцессорлар көбінесе программалау жүйесінің функционалдық мүмкіншіліктерін арттыру үшін қолданылады. Ассемблердің барлығында микропроцессор бар. Олар машиналық программаларды пайдаланудың тиімділігін арттырады. Мұндай программалау жүйесін микроассемблер деп атайды. Микропроцессорлар жоғары деңгейлі программалау тілдерімен де қолданылады. Ол тілдердің функционалдық мүмкіндіктерін арттырады (мысалы:С + + программасы).
Достарыңызбен бөлісу: |