Ақпарат алмасу. Әрбір программа блогы басқа бағдарламаны шақыруды қоса алғанда, бағдарламаларды орындайды. Бағдарлама блогы басқа бағдарлама блогын шақыру арқылы шақырады немесе оның өзі басқа бағдарлама блогымен шақырылуы мүмкін. Әрбір программа блогы бағдарлама, функция немесе объект ішіндегі әдіс болуы мүмкін. Көптеген тілдер бағдарлама блоктарын орналастыруды қолдайды, бағдарлама блогын иерархиялық ретпен орналастыруға болады, яғни бағдарлама блогын басқа бағдарлама блогында кірістіруге болады. Бағдарлама блогын басқа бағдарлама блогына аргумент ретінде беруге де болады. Бағдарлама блогы басқа бағдарлама блогын шақырған сайын, ортаның бір бөлігі сақталады, ақпараттың көп бөлігі шақырылатын бағдарлама блогы арқылы шақырылады, ал нәтиже шақырылатын бағдарлама блогынан шақырылатын бағдарлама блогына қайтарылады. Бағдарлама блоктары арасындағы ақпарат алмасу есептерді сәтті шешу үшін қажет.
4.5. Коммуникациялық механизмдер
Ақпарат алмасу жолдары. Ақпарат алмасудың бірнеше жолы бар. Ақпаратпен алмасу үшін шақырушы бағдарлама блогы қол жеткізе алатын ортаның және жад блогының ішкі тобы шақырылатын бағдарлама блогына көрінетін етіп жасалуы керек. Көрінуге (1) ішкі топты барлық бағдарлама блоктарына көрінетін ету арқылы қол жеткізуге болады; (2) бағдарлама блоктарының кірістіру деңгейіне негізделген бағдарлама блоктарының ішкі тобына ішкі топты көрінетін ету; және (3) айнымалының үш негізгі атрибуттарының бірін: атауды, жад орнын немесе мәнді алмасу арқылы бағдарлама блоктары арасында нүктеден нүктеге көрінетін ішкі топты көрінетін ету. Көрінуге бірнеше жолмен қол жеткізуге болады: (1) шақырушы бағдарлама блогынан мәннің көшірмесін арнайы жасау арқылы; (2) жад ұяшықтарына сілтеме беру; (3) бірінші деректер элементінің жады орны үшін сілтемені көшіру; немесе (4) айнымалы атауын беру.
Блоктық құрылымды тілдер ақпаратты әрбір бағдарлама блогына көрінетін ету үшін жаһандық айнымалыларды, ал кірістірілген бағдарлама блоктары үшін жергілікті емес айнымалыларды пайдаланады.
Жергілікті емес айнымалылар тек ішіне салынған бағдарлама блоктары үшін қол жетімді. Сыртқы бағдарлама блоктарына ақпарат сыртқы блокқа жергілікті айнымалы арқылы берілуі мүмкін, ол сыртқы бағдарлама блогында кірістірілген бағдарлама блогы үшін жергілікті емес айнымалы болып табылады. Сонымен қатар, блок-құрылымдық тілдер айнымалының атын немесе жад орнының мекенжайын немесе айнымалылардың мәнін шақыратын бағдарлама блогы мен шақырылатын бағдарлама блогы арасында ақпаратты беру үшін пайдаланады. Параметрлер берілген кезде шақырушы программадағы аргументтер нақты параметрлер деп аталады, ал шақырылатын программа блогындағы сәйкес аргументтер формальды параметрлер деп аталады. Параметрлерді беру кезінде параметрлерді сәйкестендіруге төрт жолмен қол жеткізуге болады:
1. Нақты және формальды параметрлер солдан оңға қарай біріктірілген, бұл сәйкестік позиция бойынша позиция болып табылады. Бұл бағдарламалау тілдерінің көпшілігінде жиі қолданылатын параметрлерді сәйкестендіру режимі.
2. Нақты және формальды параметрлердің атаулары атау ассоциацияларының көмегімен салыстырылады. Егер атау байланыстары пайдаланылса, позиция бойынша сәйкестендірудің қажеті жоқ. Ішкі бағдарлама шақыруындағы нақты және ресми параметр арасындағы сәйкестік. Бүркеншік атау жағдайында – бірдей нақты параметр екі басқа формальды параметрмен байланысты – позицияның реті нақты параметрдің атрибуттарын формальды параметрлермен байланыстыру үшін қолданылады.
3. Процедура шақыруындағы аргументтер саны мен формальды параметрлердің саны сәйкес келмесе, онда формалды және нақты параметрлерді сәйкестендіргеннен кейін қалған формальды параметрлер әдепкі бойынша инициализацияланады.
4. Формальды параметрлер тізім сияқты кеңейтілетін типті болуы мүмкін және шақырылатын бағдарламаға дәлелдердің белгісіз санын жіберуге болады, мысалы, C# тілінде «парам» мәлімдемесі бар.
Объектіге бағытталған бағдарламалау тілдерінде кірістірілген класс құрылымдары болуы мүмкін. Осылайша, айнымалы сыныпта жариялануы және кірістірілген ішкі сыныптарда көрінуі мүмкін. Сыныпта жарияланған айнымалы класс айнымалысы деп аталады және сол сыныптағы барлық әдістер мен деректер мүшелеріне көрінеді. Айнымалы статикалық жаһандық айнымалы болуы мүмкін, бұл оның барлық сыныптарда, демек, барлық нысандарда қолжетімді екенін білдіреді. Айнымалы әдіске тән болуы мүмкін. Ақпаратты объектілер арасында жаһандық айнымалыларды, класс айнымалыларын, әдістер арасында параметрлерді беруді және объектілер арасында хабарламаларды беруді пайдалана отырып беруге болады.
Функционалды бағдарламалау тілдерінде ақпарат алмасудың күшті механизмі бар. Олар шақырылатын функцияда қол жеткізуге болатын параметр ретінде бүкіл функцияны бере алады. Функцияның деректер және функция ретіндегі қосарлы сипаты функционалдық тілдердің ерекшелігі болып табылады. Функционалды бағдарламалау сонымен қатар өрнекті бағалау алдында формалды параметрді нақты параметр атымен мәтіндік ауыстыруды пайдаланады. Егер өрнекті бағалау талап етілгенге дейін кешіктірілсе, ақпарат шақырылған функцияға жіберілмейінше оны бағалау мүмкін емес. Керісінше, ол мәтінді алмастыруға сүйенуі керек. Формальды параметрді нақты параметр атымен мәтіндік ауыстыруды пайдалану арқылы ақпаратты берудің бұл қасиетін ат бойынша шақыру деп атайды.
Достарыңызбен бөлісу: |