Crc press баспасы Taylor & Francis баспа тобы


Абстрактілі есептеу машиналары



Pdf көрінісі
бет22/26
Дата20.12.2019
өлшемі6,26 Mb.
#53875
1   ...   18   19   20   21   22   23   24   25   26
Байланысты:
Бағдарламалау тілдеріне кіріспе (1)
corel-draw-zhayly-zhalpy-tusinik, corel-draw-zhayly-zhalpy-tusinik, Jobs and professions

5.1 Абстрактілі есептеу машиналары
Абстрактті бағдарламасын іске асыру машинада фон Нейман (машина-
сында) негізгі бес компоненттерден тұрады: деректердің облысы, код-

233
тардың облысы, қадамдық нұсқаулық үшін көрсеткіш нұсқаулықтардың 
облыстар коды,  тіркелімдер үшін қара есептеулер мен сөздер жай-күйі 
бағдарламасы (PSW) —арнайы тіркелімде сақталатын жалаушалар жи-
нағы.  Әрбір  нұсқаулықтан    кейін  тиісінше  PSW  жалаушалары    қойы-
лады және орындалатын бағдарламаның жай-күйін есептеуде маңызды 
бөлігі  болып  табылады.  Код  сақталатын  облыс  жады  облыс  коды  деп 
аталады , ал деректер сақталатын облыс жады деректер облысы  деп 
аталады. Бірінші сыныпты объектілерді қолдамайтын тілдер үшін об-
лыс коды тіркелген болып табылады және қайталап пайдаланылған де-
генді білдіреді, әр кез  сайын шақырылатын кіші бағдарлама бастапқы 
жай-күйден яғыни басынан бастап басталады.
Деректер аумағы үш  сызықтық құрылым  (үйінді, стек басқару, стати-
калық облыс) болып табылады. Кучи және стек басқару қарама-қарсы 
бағытта әр түрлі соңдарынан бастап. Олар қолда бар жад кеңістігін ба-
рынша максималды пайдалану үшін бір-біріне қарама-қарсы өседі. Стек 
басқармасы    кадрлар  реттілігін  білдіреді,  көрсететін  шақырушы  кіші 
программа  үлгісі  соңғы  келді  -  бірінші  қызмет  көрсетілді  тәртібімен 
жүргізіледі.  Әрбір  кадр,  сондай-ақ  жазылып  белсендіру  деп  аталады, 
жад облыстарында  индексирлі реттілікті білдіретін іске қосуды сақтай-
ды, ақпаратты сақтайды (1), қажетті ақпаратты есептеу үшін ағымдағы 
кіші бағдарлама (2), қайтушы  басқару элементі кері шақырушы бағдар-
ламасы және (3) шақырылатын кіші бағдарлама жандандырылған кез-
дегі шақыратын бағдарламаның мұздатылған күйі.  Кадрдағы ақпарат 
мыналардан  тұрады:  (1)  жергілікті  динамикалық  айнымалылар  үшін 
сақтау бағыттары - статикалық айнымалылар болып табылмайтын айны-
малылар; (2) шақырушы кіші бағдарламада  суреттерді тіркеу жаңарты-
лады;(3) шақырушы бағдарламасының ақпараттық объектілерді, аймақ 
кодын және бақылау бумасының жоғарғы түрлі индекстері;(4) бағдар-
ламалық қамтамасыз ету,  бағдарламалық ортаны және қазіргі уақытта 
орындау  тәртібін  сақтау  мұрағатталған  бөлігі;(5)  қарапайым  динами-
калық объектілерде кіші бағдарлама бір рет құрылады қызмет мерзімі 
кіші бағдарлама мерзімінен аспайды.(6) ағымдағы шақырылатын кіші 
бағдарламаның шақыру кезіндегі  мұздатылған күйі; (7) шақырылатын 
кіші бағдарламалардың берілетін параметрлері;  
Кіші  бағдарламаның  әрбір  жандандыруы  стек  шыңына  тиісті  кадрды  
орналастырады.  Аяқталғаннан  кейін  шақырылатын  кіші  бағдарлама, 
жадыны  босату  үшін  кадрды  жойылады.  Рамка  индекстеледі  қолдау 
үшін  қол  жеткізу  әр  түрлі  ақпараттық  объектілері  сақталатын  кадрда 
және  сілтемелер  үшін  басқа  кадрлар  немесе  байламы  .  Аяқталғаннан 
кейін  шақырылатын  кіші  отыскивается  жағдайы  шақырылатын  кіші 

234
және орындау кодын облысы қиқар бағдарламасы жаңартылады келесі 
нұсқаулықты шақырғаннан кейін орындалған кіші бағдарама.
Аудан коды - төмен деңгейлі командалардың блоктар тізбегі. Әрбір блок 
командасы күнделікті төмен деңгейлі командалар тізбегі болып табы-
лады.  Бақылау  логикалық  келесі  командасының  қадам  пайдаланады 
немесе  өтпелі  командасын  пайдалану  арқылы  бір  команда  басқасына 
секіру. Бақылау элементі бірінен екіншісіне кіші секіру нұсқаулығымен  
жылжытылады.  Код    облысында  бақылау  логикасы  көрсеткіштік  ко-
манданы пайдалана отырып, ол ұқсас есептегіш командалар, команда-
лар деңгейінде орналасу.   Сипатталған нұсқаулық  команда мен есеп-
тегіш  команда    арасында  бір  басты  айырмашылық  болып  табылады  
және процессор бағдарламасы есептегіш: нұсқаулық сілтегіш ағымдағы 
команданың сәтті аяқталғаннан кейін артып, процессор бағдарламасы 
қарсы  дереу  ағымдағы  командасына  қоңырау  кейін  өседі.  Бұл  айыр-
машылық біздің ыңғайлы тұжырымдамасын түсіндіру және ауыстыру 
өңдеу шашылуды  азайту үшін түсіндіріледі. Секвенсоры - көшу коман-
дасы  -  орнына  көршілес  командалардың  тізбегінен,  берілген  мәнімен 
пайдалаушы тағайынды командамен бақылауға алуға, көшу командасы 
мұндай дәстүрлі конструкцияларын және итерациялық дизайн сияқты 
төмен деңгейлі хабар тарату басқару абстракцияның, үшін маңыздысы  
болып табылады. Келесі бөлімде біз түрлі абстракция басқаруды төмен 
деңгейлік    абстрактілі  командалар  көмегімен  диаграммалар  логика 
басқарушы трансляциялауды талқылаймыз
Төмен  деңгейдегі  командалар  командалар  ішкі  жиынына  ретінде  жік-
теледі ; (1) жадында тұрақтылар маңызы сақтауға арналған (2) жад тір-
келімі мәндерін сақтау үшін тізіліміне (3) тұрақты жүктеу үшін жады 
кеңістікте сақталған мәндерді тиеу үшін (4) және  (5)команда подмно-
жеств санатына жатады өрнектердің бағалау үшін) арифметикалық және 
логикалық  операциялар  (6)  арифметикалық  және  логикалық  өрнектер 
салыстыру операциялар командасы (7) шартты және шартсыз секіру (8) 
бақылау стеке деректерді жіберу және (9) бақылау дестесін деректерді 
басу .
Біз  жадқы қол жеткізудің  үш түрін болжаймыз: (1) жадқа тура рұқсат, 
(2) жадқа жанама қол жеткізу  және (3) жадқа ығысу негізінде қол жет-
кізу. Жатқа тура қол жеткізу  бастап берілген жад ұяшық (дейін) дерек-
терді оқу немесе жазу үшін жады қатынасады, және ең жылдам болып 
табылады. Статикалық айнымалы жадқа тікелей қатынас. Жанама жады 
басқа жадқа немесе мәні жадында сақтайды ұяшықты, кіру үшін сілте-
гішті пайдаланады. Жанама қол жад құнына қол жеткізу көрсеткіштер 
сериясы арқылы өту және бірнеше жад қол жеткізуді қажет етеді. Жа-

235
нама жадқа қатынау тіркелген жад орындардан тәуелсіздігін қамтама-
сыз етеді. Алайда, бұл байланысты бірнеше жад қатынаған баяу жүреді. 
Әдетте  жанама  қол  жеткізу  пайдаланылатын  көп  рет  көрсеткіштер 
тиімділігін  арттыру  үшін  процессор  тізілімдері  сақталады.  Офсеттік 
негізінде  жад  қол  ақпаратқа  қол  жеткізу  үшін  пайдаланылатын  құра-
ма деректер объектінің шегінде ақпараттық заттарды немесе астыртын 
бірге нысандарды. Базалық мекенжайын, және объект немесе астыртын 
жылжуы туралы ақпаратты көрсетеді өрнекті: еңісі негізінде сөйлеген 
сөзінде екі ақпарат бөліктерін талап етеді. Базалық мекен-жайы —бірін-
ші объект орналасқан ұяшықты мекен-жайы  ОЗУ.  
PSW  жалаушалар  күйін    өрнекті  бағалау  нәтижелерін  өңдеу  үшін  қа-
жетті болып табылады. Салыстыру оң болса салыстыру теріс мәні «0» 
берсе терістеу биті N  «1» белгіленеді, нәтижесі емес нөлдік логикалық 
өрнектің мәні болып табылады, егер салыстыру нөлге тең мәні береді 
және  «0»  егер  салыстыру  оң  мәні  береді.  Нөлдік  бит  мәні  "1"  болған  
кезде салыстыру мәні нөл "0" болса, нәтижесі болып табылады маңызы 
жоқ,  нөлге тең. Операторлар шартты филиалы далалық командаларға 
шартты секіру шалу үшін осы құсбелгілерді қажет. Кейбір операторлар 
breq  (бәрібір-не  нәрсеге  тармақталған),  brne  (емес,  сондай-ақ  қандай 
тармақталған), brle (menee- үшін тармақталған, brgt (неғұрлым-кем тар-
мақталған) (аз-кем тармақталған) шартты секіру brlt болып табылады 
астам немесе тең-қабылдау) және brge (а тең қарағанда--көп немесе--не 
дейін тармақталған).
Instruction  pointer  -  нұсқаулық  көрсеткіш;  code  area  -  код  орыны; 
registers – регистрлер; PSW – PSW; Data area - деректер орыны
5.1 –сурет.  Үлестіруге арналған абстрактілі машинаның сызбасы
Сурет 5.1 программалау тілдерін іске асыру үшін төмен деңгейлі рефе-
рат машинаны көрсетеді. Бірде, құрастырылған деректер мен бақылау-
ды сақтау үшін аударылған абстракция код беріледі. Аудан коды және 

236
деректер  аумағы  бір  өлшемді  массивтер  түрінде  қалыптастырылған. 
коды  саласындағы  жад  ұяшық  [коды-индексі]  ретінде  айқындалған 
кезде, есептеу білдіру «коды индексі» аймақ кодын бірінші командаға 
офсет берген. Деректер саласындағы жад ұяшық индексі деректер са-
ласындағы  базалық  мекен-жайы,  қазіргі  уақытта  көрінетін  жылжуын 
есептеу кезінде бұл деректер өрнек болып табылады D [Index деректер], 
сондай-ақ белгіленеді.
Бағдарламалау парадигмасын, деректер саласындағы, сондай-ақ аймақ 
коды  байланысты  одан  әрі  атап  айтқанда,  бағзы  машинаны  анықтау 
үшін  тазартылған  болады.  Реферат  машиналар  көпшілігі  бақылау  бу-
масының, үйіндісіне, сондай-ақ жаһандық және статикалық айнымалы 
ауданы тікелей қолжетімді жады кем дегенде талап етеді. Схемаларын 
жылы жасалғаннан кейiн статикалық тарату базасы мекенжай 0 болып 
табылады.
Алайда стек бөлу негізінде схемада, жақтаулар дестесін түрлі жады жа-
сушаларының  орналастырылады,  сондай-ақ  (1)  сілтегіш  пайдаланып 
базалық жақтау мекенжайларын жақтау индексі деп аталады және (2) 
жақтау базалық мекен-жайы қатысты өзара есепке алу арқылы деректер 
элементтеріне қол жеткізіеді.
Төрт  мұржалары  бар  SECD  машина  деп  аталатын  функционалдық 
бағдарламалау  парадигмасын  қараапайым  дерексіз  машина:  мұндағы 
S, бағалауды білдіру үшін стек; Е, бағдарламалық ортаның сақтауға ар-
налған стегі; C, командалық жолдарды сақтауа арналан стек;  D, дам-
пының сақтауы үшін стек - соңғы келіп-бірінші қызмет негізін Тапсы-
рысқа сериялық бағдарламалау рәсімі қоңырау. Кері қайтып есептеулер 
кейбір  болдырмау  және  шешімдерді  табуға  балама  жолдарын  көріңіз 
жолын - логикалық бағдарламалау парадигмасы құрылады курс қолдай-
ды. Қайтару іске асыру стек деп аталатын қосымша дестесін, сондай-ақ 
стандартты бақылау бумасын талап етеді. Стек қайтып барып, баламалы 
іс-әрекеттерді табу үшін болдырмау үшін басқару ұпай санын қадағалап 
отыратын.
Нысан бағдарланған тілдер виртуалды машина негізіндегі дестесін, Java 
виртуалды  машинасын  пайдалану,  сондай-ақ  сақтау  объектілерін  бай-
ламы пайдаланамыз. Императивтік тілдері бір дестесін және көптеген  
негізінде іске асыруды қолдайды.
Бұл тарауда біз аманатты бағдарламалау парадигмасын фон Нейман ре-
ферат машинаны талқылаймыз. Тиісті тараулар да басқа дерексіз маши-
налар қаралады. Мысалы  SECD машинасы  9 тарауда талқыланды, сон-
дай-ақ  логикалық  бағдарламалауға арналған Уоррен (WAM) абстракты 
машинасы 10-тарауда талқыланды. Объектілі-бағытталған тілдерді  схе-

237
малық асыру 11-тарауда талқыланды.
...5.2 Басқару абстракциясын аудару               
...Төмендегідей аударма басқару абстракция топтастыруға болады: өр-
нек бағалау (1) трансфер, (2) тағайындау оператор беруге, дәстүрлі ите-
рациялық конструкцияларын құрылыстар, 4) беру, сондай-ақ (5) қоңы-
рау  аудару  күтімінің  (3)  трансфер-.  Бұл  бөлімде  біз  бөлімдерінде  5.3 
және 5.4 бөлек болады кіші қоңырау, сонымен қатар, басқа да бақылау 
абстракцияның барлық талқылайтын боламыз.
5.2.1 Айқындамалардың аудармасы
Процессор тізілімдер және жад жерлерде тіркесімін пайдалана отырып 
есептеу өрнектер. қол жад шығындарды азайту үшін, есептеудің кейін 
аралық мәні процессордың тізілімдері сақталады. Бірыңғай бағыныңқы 
өрнек бір рет есептеледі және болашақта пайдаланылуы тиіс тізілімдері 
сақталған; ортақ бірінші есептеу кейін, оңтайландыру әдістерін пайда-
лана отырып, түрлі компиляции талдау кезінде жүзеге бөлу тіркеліңіз. 
төмендегідей мысалы, білдіру (X + Y + 5) + 2 * (X + Y) бағалау түсін-
дірілген болады:
жүктеме X, R1 тіркелімінде жад ұяшық (X) сақталған мән, Y қосу R1% 
жүктеме, R1, R2,%, Тіркелу R2 жад ұяшық (Y) сақталған мәнді қосу, № 
5 қосып, R2, R3%, R3 тұрақты 5 қосу және Тіркелу R1 сақталған, # 2 кө-
бейту, R2, R4% мән-жылы (кейс R4) = 2 * маңыздылығы кіріс (кейс R2), 
R3 қосу, R4, R4%, сақталған мәндерді қосыңыз R3 және R4 тіркейді.
Жоғарыда мысал тиісті жады ұяшықтардан айнымалы мәндерін жүктеу 
үшін бағзы командалар төменгі деңгейде өрнектеледі, үзілу ретпен есеп-
теу суреттейді және уақытша тізілімдері ішінара нәтижелерін сақтайды. 
Тек бір рет есептеледі және болашақ қайта пайдалану үшін тіркелімі R2 
сақталады ортақ бағыныңқы өрнек (X + Y) екенін ескеріңіз. Болашақта, 
басқа да басқару абстракцияның беруді талқылау үшін, біз білдіру бе-
руді болдырмау болады және есептеу (өрнек) ретінде тағайындаймыз.
5.2.2 Иелену операторының аудармасы
Тағайындау оператор <айнымалы> = <өрнек> бірінші өрнекті бағалай-

238
ды, содан кейін сол жақ айнымалы жад ұяшықтағы мәнді сақтайтын ре-
ферат тапсырмаларын төмен деңгейлі ретпен, балама болып табылады. 
Мұнадай балама X = Y + 5 мысалы осындай тапсырма операторы:
Тіркелу R1 үшін Y, Y тіркеліміне R0 жүктеу # 5 ұяшықта R0% тиеу мәні, 
R1% тұрақты жүктеме 5 жүктеме
R0, R1, R0% қосылған құнды R0 және R1 қосып, және К0 сақтау R0 
нәтиже сақтап, X% мәні-жылы (R0) сақтап Х ұяшықта
Тағайындау  операция  (<өрнек>,  <айнымалы>)  қарапайым  команданы 
тағайындау үшін тағайындау операцияны жәйттерді, тиеу, есептеу және 
сақтау операцияларының тіркесі.
1. бағаламау  (<шарт>);  2.  дұрыс  тармағында,  тағы  3.  Орындау  <содан 
кейін – блок> 4. Шығу 5. Егер тағы басқа болса, онда <тағы-блок> орын-
дау 6. Шығу.
Condition – шарт; true – дұрыс; false – қате; then-block – содан кейін-блок; 
else-block – тағы басқа-блок. 
Сурет 5.2 Абстрактілі машинадағы логикалық басқарудың өту диагрра-
ма схемасы
5.2.3 Шартты операторлар құрылымының аудармасы
Шартты логиканы Басқарушы үш кезеңнен тұрады: Boolean шарттары 
білдіру (1) есептеу; (2) аппараттық деңгейде мәртебесі жалаушалар ло-

239
гикалық өрнектерді есептеу негізінде; және (3) өтпелі басқа бөліктерін-
дегі  бір,  содан  кейін-бөлігі  немесе  бірлігі  операторлары  Нұсқаудың 
терімінің  орындауға  жасауға,  жалаулар  мемлекеттік  филиалдарының 
құнының негізінде. Сурет 5.2 төмен деңгейлі аудару үшін шартты опера-
тор және керекті схемаларын бақылау логика диаграммасын көрсетеді.
Диаграмма  бақылау  логика  жазық  екі  өлшемді  сан.  Бұл  бір  өлшемді 
екенін  коды  айырбастауға  тиіс.  мақсатында  өзара  тастауды  <содан 
блок> және <қалғанының-блок> қамтамасыз ету және <, әйтпесе бло-
гында> арқылы жандандыру болдырмау үшін, оператор көшу кейін та-
лап етіледі <содан бұғаттау>.
<Содан блогында> арқылы бақылау логикасын өткеннен кейін, өтпелі 
оператор  <қалғанының-блок>  айналып  және  <қалғанының-блогында> 
кейін  ұйымдастырылуын  бақылау  үшін  жүзеге  асырылады.  жағдай 
жалған болса, басқару, <қалғанының-блок> өтеді. шарттар дұрыс бол-
са, бақылау автоматты түрде, <содан блок> енеді, өйткені алға бағыт-
та  әдепкі  мәні  бойынша  бақылау  логика  жүріп  жылдан  бастап  көшу, 
<қалғанының-блогында> жылжыту үшін ғана қажет. Бұл үшін бас тарту 
шарттарын  тексеріледі.  жағдай  бас  тарту  шынайы  болса,  онда  бақы-
лау <қалғанының-блок> өтеді. Әйтпесе, бақылау <содан блок> Әдепкі 
арқылы өтеді.
5.2.4 Нұсқау операторының аудармасы
Операторлар нұсқасы болса-содан есептілігін ретін пайдалана отырып 
үлгіленуі мүмкін - <содан бұғаттау>, төменде көрсетілгендей, өзара экс-
клюзивті опциялардың бірін орындауға:
Result – нәтиже; evaluate – бағалау; expression – білдіру; if – егер; value 
– құны; then – содан кейін; block – блок; jump-to exit – шығысқа қа-
рай секіру; default-block – әдепкі блок; exit – шығу.

240
Value – құны; evaluate – бағалау; expression – білдіру; index- көрсет-
кіш; hash – хэш; function – функция; label – заттаңба, search – іздеу; 
table – кесте; if – егер; null – нөл; jump – секіру; else – тағы басқа; 
default – әдепкі; block – блок; exit – шығу.
5.3 сурет. хэш-кестесі  арқылы ауысу операторының нұсқасы.   
Сонымен  қатар, ол бақылау суретте 5,3 көрсетілгендей, <өрнек> есеп-
теу аяқтауға болады орындарда жиымын сақтайтын хеш-кестені пайда-
ланып жүзеге асырылуы мүмкін. Өрнекті бағалау кейін нәтижесі хэш 
кесте болып табылады. Хеш-кестесін үш есе нысаны (күтілуде мәні, ке-
лесі триплетті үшін сілтегіш, белгісі-бөлме) бар. Күтілетін мәні туынды 
құны сәйкес келеді, онда ол тиісті белгіні қайтарады; әйтпесе, ол «нөл» 
бар мәнін қайтарады, және бақылау Әдепкі белгі барады. күтілетін құ-
нына тиісті блок бекітілгеннен кейін, басқару Марк басу арқылы басқа 
блоктар айланып «шығу».
5.2.5 Итерациялық конструкцияның аудармасы
Итерациялық жобалау аударма шартты құрылыстар пайдалана түрлен-
діріледі. Егер біз   шартты мәлімдеме пайдалану арқылы циклын аудар-
сақ, сондай-ақ мәлімдемеде мынадай болады:

241
1. айнымалылар инициализациясы;
2. циклегер (есептеу(жоқ <өрнек>) = шындық) {
3. шығысқа бару;
басқалай{орындау< блок кезінде >
4. циклге өту;}}
5. шығу:
біз  аударуға  {<өрнек>,  содан  кейін  {<блок  болып  табылады>  болса, 
онда;  Шартты  сөйлемнің  аудармасы  алдын  ала  білімдерін  пайдалана 
отырып,  өтпелі-дейін}  цикл,  содан  кейін  аударым  суретте  5.4  сияқты 
болады. (<Өрнек>) бірінші емес есептейді. (<Өрнек>) шын орнатылған 
жоқ болса, басқару әзірге, ілмектер тыс. Әйтпесе, бақылау <блогын дей-
ін> өзгертпелі, және әлі, ол артқы цикл басына барып  орындайды.
1.контур:бағаламау (<шарт>) 2. Дұрыс және шығу 3. Орындау <блок
кезінде> 4. Контурға секіру 6. Шығу. 
Not  ()-жоқ  (<шарт>);  false  –  қате;  true  –  дұрыс;  exit  – 
шығу; <while-block> - блок кезінде.
5.4 сурет. Төмен деңгейлі реферат есепте  аударым циклын қозғаушы
5.2.5.1 Контурға аудару
Контур үшін құрылыс келесі түрде:
For-loop-ты модельдеу үшін while-loop-ты қолданады, ол жерде соңғы 
шарт ол (in evaluate ()). While-loop-ты қолданып for-
loop-ты аудару үшін келесі жағдайлар болады:

242
Итеративтік құрастыру білімін қолданып, 5.5 суретінде контурдын ауда-
рымы корсетіліп тұр.
1. Тапсыру  (I,  бағалау  (<бастапқы  білдірме>))  2.  Контур:  бағаламау
(<соңғы  білідрме>)  3.  Дүрыс  тармағы  және  шығу  4.  Орындау  <блок 
үшін> 5. Тапсыру (I,i+бағалау (<қадам білдірмесі>) 6. Секіру контурға 
7. Шығу; i=eval(initial-expr) - I, бағалау (<бастапқы білдірме>); evaluate
not () - бағаламау (<соңғы білідрме>); true – дұрыс; false – 
қате;  - блок үшін; I=I+eval() – I=i+бағалау (<қа-
дам білдірмесі>).
5.5 сурет Төмен деңгейлі абстрактілі машинаға арналған циклінің ауда-
ру үшін схемасы.
Барлық 5.5 суретте аударма екі есептілікте қоспағанда цикл-болып ұқ-
сас:. (1) индекстелген айнымалы баптандыру үшін команданы тағайын-
дау, және (2) пайдаланушыға көрінбейтін индекстелген айнымалы тәсілі 
жаңарту.  Инкременте блок индексі пайдаланушы цикл-дейін басында 
қадам мөлшері қоспағанда өрнектер көрсете есептілігінің блок шегінде 
біртіндеп индекстелген айнымалы ешқандай бақылау жоқ екенін көрсе-
ту үшін сызықты сызықтар пайдаланып көрсетілді.
Мұндай аударым ілмек «біраз уақыт» енгізілген және студенттер үшін 
жаттығулар ретінде қалдыруға болады. Итерация цикл болып табыла-

243
ды  және  үшін  цикліне    өте  ұқсас.  Айырмашылық  тек  қана  кездейсоқ 
теріпалу элементтерінің бір жиынтығы арқылы өтеді, яғни, және цикл 
басында, олар жиынтығында соңына жеткендігі тексереді.
5.3 Статикалық үлестіру
Қазіргі заманғы тілдер рекурсивті тәртібін, қайта пайдалану жад рекур-
сивті динамикалық деректер құрылымы және деректер нысандарын қол-
дайды. Осылайша, гибридті моделін таңдайды. Алайда, кейбір статика-
лық жады бөлу ұғымдар дестесін және гибридті тәсіл негізінде жүзеге 
асыруды түсіну пайдалы болып табылады. Мысалын алайық Fortan-66, 
өйткені Fortan одан кейінгі нұсқасы стек негізінде бөлуді қолдайды.
Деректер  облысы  түрінде  берілген  массив,  I  ұяшықта  жад  облысына 
қол жеткізу үшін сондай-ақ d [i] деп белгілеу жазбасын пайдаланыла-
ды. Алғашында ағымдағы жоспарлы тапсырмасы қоңырау кейін келе-
сі тапсырмасы қайтару мекенжайын сақтау үшін жады жері кейін ор-
тақ жад ұяшықтарды бөлінеді. Әр кезде бағдарлама басқа орындардан 
шақырылған  сайын  оның  мағынасы  өзгеретіндіктен  кері  мекен-жайы 
деректер      саласында  сақталады.  Бірге  қолданылмайтын  барлық  жер-
гілікті айнымалылар, программа белсендірушілер жазбасында жергілік-
ті бөлінеді. 
Әр түрлі бағдарлама бірліктерін бөлек жасауға болады. Құрастырушы 
кодтары пайдаланушы белгіленген тәртіппен бір-бірімен байланысты. 
Деректер аудандары мен қала коды пайдаланушы белгіленген тәртіппен 
байланысты,  және  аралас  түрлі  кодтары  туралы  символы  кестеде  жи-
нақталған мәліметтер қол жетімді болып табылады. Олар бөлек құра-
стырылған  болса  шақырушының  бағдарламасының  ауданы  бойынша 
кез келген ақпарат және шақырылған аймақтың коды жайында дерек-
тер болмайды; ақпараттық кестеде нышандар ғана біріктіру кейін қол 
жетімді  болады.  Символ  кестелерден  алынған  ақпарат  қамтиды:  (1) 
ақпараттық объектілердің әкелу және әкету туралы ақпаратты, (2 Про-
грамманы шақыру кезінде қайда өзгеріс жасауға болатыны туралы ақпа-
ратты, (3) ағымдағы программа аяқталғаннан кейін қайтару үшін қайда 
бару туралы ақпарат. Компиляция кезінде, әрбір бағдарлама жетіспейтін 
мәліметтердің жиынтығы символы кестеде арқылы жалғастыру кезінде 
оған бағдарламаның тиісті бірлік қамтамасыз етіледі деп болжанады.
Байланысу  барысында  әртүрлі  кодтан  құрастырылған  деректер  ауда-
ны жалпы жарнам блогі бірге, содан кейін кері мекен-жай, содан кейін 
жергілікті айнымалылар бірігетіндей болып құрастырылады. Құрасты-
рылған кодтар аймағы (С, RI (I > 1), LI (I > 1)) делік, бұл жерде С – 
ортақ блок, RI – I құрастырылған код аймағындағы  жад ұяшығының  

244
кері мекен-жайы, LI- i деректер аумағындағы жергілікті ауыспаллардың 
жиынын білдіоеді, деректер аймағын біріктіргеннен кейін  қолданушы 
көрсеткен  тәртіппен  келісідей  болады  (С,  L1,  R2,  L2,...,  RI,  LI,...  RN, 
LN). Түрлі кодтардан жасалған осы аттас барлық ортақ блоктар ортақ 
бірлік ретінде бірге біріктіріледі және бірлескен деректер саласындағы 
басында орналастырылады. Осы салаларда бірігуі нәтижесінде байла-
нысу процесінің барысында кері мекен-жайларда жад адресі мен жер-
гілікті  хабарландырулар  біріктіріледі.  Байлау  —  екі  сатылы  процесс:   
(1) бірінші кезеңде, барлық деректер аудандар біріктіріледі,бағдарлама 
үшін есептелген қадам және бағдарлама қайтып, деректер облыстардың 
түрлі бағдарлама бірлік ауыстыру есептеу, ал (2) екінші кезеңде, тиісті 
бос коды облысында енгізілген.   
Шақыру бағдарлама қамтиды : (1) бағдарламаларды кері мекен-жаймен 
шақыратын  клесі орындалатын команданы жад ұяшығында сақтау , (2) 
мүмкіндіктері туралы ақпарат алмасу , (3) шақырылған бағдарламаның 
бірінші  тапсырмасына көшу.

Достарыңызбен бөлісу:
1   ...   18   19   20   21   22   23   24   25   26




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет