Оқулық Қазақстан Республикасы Білім және ғылым министрлігі бекіткен Алматы, 2011



Pdf көрінісі
бет114/121
Дата31.08.2022
өлшемі2,81 Mb.
#38343
түріОқулық
1   ...   110   111   112   113   114   115   116   117   ...   121
НОРМА бағдарламалау жҥйесі. 
НОРМА тілі мамандандырылған процедуралық емес тіл болып 
табылады. Ол негізінен есептеуіш сипатындағы мәселелерді шешуге, дербес 
жағдайда математикалық физика есептерін шешуге арналған десе болады. 
Тілдің барлық конструкциялары декларативті сипатта және мәндерді есептеу 
ережесін суреттейді. Тілдің негізгі тағайындалуы бағдарламаны құрастыру 
процесін автоматтандыру болып табылады. Бағдарламашы мұнда негізінен 
математикалық формулалар терминінде жұмыс істегендіктен, ол ӛз кезегінде 
оның жұмысын айтарлықтай жеңілдетеді және ықшамдайды. Транслятордың 
жұмысы күрделенеді. Дәстүрлі мәселелермен қатар, мысалы, дербес 
жағдайда 
синтаксистік 
және 
семантикалық 
талдау, 
ол 
шығыс 
бағдарламасының синтезін орындайды. 
Берілген есептің спецификациясына сәйкес бағдарламаны автоматты 
түрде құруға мүмкіндік беретін идеялар, 1963 жылы И. Б. Задыхайлоның 
жұмысында [21] келтірілген. Ол идеялардың одан ары дамуы НОРМА тілінің 
және әртүрлі платформалар үшін транслятордың бірнеше нұсқауының пайда 
болуына әкелді. 
Алғашында НОРМА термині (Непроцедурное Описание Разностных 
Моделей 
Алгоритмов) 
алгоритмдердің 
айырымдық 
модельдерінің 


199 
процедуралық емес сипаттамасы деп таратылып айтылды. Соңынан басқа 
трактовка пайда болды: – (НОРМАльный уровень общения прикладного 
математика с компьютером) қолданбалы математиктің компьютермен 
қатысының НОРМАльды деңгейі. Қолданбалы бағдарламаны құрастырушы
нақты компьютердің ерекшеліктерін негізге ала отырып, ӛз пәндік 
облысының үйреншікті терминінде ойлайды. РҒА (РАН) В. М. Келдыш 
атындағы қолданбалы математика институтының нақты қажеттіліктерін 
ескере отырып, тілдің авторлары математикалық физика мәселелерін шешуді 
барынша (максималды) ықшамдауға тырысты. Пәндік облыс спецификасы - 
бұл торлық тәсілдерді негізге алу, соларға бағытталу. 
НОРМА тіліндегі бағдарлама жазбасы операцияның орындалу реті 
туралы ешқандай мәліметті қажет етпейді. Тіл сөйлемдерінің реті еркін болуы 
мүмкін. Есептеулерді қалай ұйымдастыру керек екенін түсіндірмей ақ, бұл 
тілде есептеулерге сұраныс жасау мүмкіндіктері қарастырылған. Барлық 
ақпараттық байланыстар, берілген бағдарламаны талдау және шығатын 
тексті синтездеу этапында транслятор–синтезатормен анықталады және 
ескеріледі.
Есептеулерді ұйымдастырудың нақты тәсілін таңдау трансляторға 
жүктеледі. Дербес жағдайда, мысалы, қорытынды бағдарламаны синтездеу 
этапында, ол тізбекті кодты да, параллель кодты да генерациялай алады. 
НОРМА тілінің жоғары деңгейін таңдау оның ӛзіне тән сипатын 
анықтайды – бұл айнымалыны бір реттік меншіктеу тілі. Мұнда әрбір 
айнымалы ӛзіне бір рет қана мән қабылдай алады және жады, қосымша әсер, 
меншіктеу операторы және басқарушы операторлар сияқты түсініктер 
НОРМА тілінде «анықтама бойынша» жоқ. Барлық дәстүрлі бағдарламалау 
тілдерінде бұл түсініктер бар, себебі олардың кӛмегімен үнемділік, жадының 
таратылуы, операторлардың орындалу ретін анықтау және т.б. сұрақтарды 
ескере отырып нақты алгоритм құру керек болады. Негізінде НОРМА 
тіліндегі жазба, берілген нақты есепті шешудің сандық әдісінің жазбасы 
болып табылады.
НОРМА тіліндегі жазбаларда артық ақпараттық байланыстар 
болмайтындығы да маңызды. Мұндай байланыстар әдетте бағдарламалау 
процесі барысында пайда болады, және олар алгоритмдер мен бағдарламаны 
ықшамдау кезінде анық кӛрінеді. Бағдарламалардың дәл ақпараттық 
құрылымын анықтау күрделі мәселе болып табылатыны белгілі. НОРМА тілі 
бізге бағдарламаның тізбекті этапын ӛткізуге мүмкіндік береді, ал параллель 
бағдарламаны генерациялау үшін бірден математикалық формулалар 
терминіндегі жазбасынан бастауды ұсынады. Бұл пайымдау бойынша
dataflow-компьютерлерін бағдарламалау үшін НОРМА тілінің потенциалын 
зерттеу ӛте қызықты болары анық. 
Алынған нәтижелер авторлармен шынайы транслятор-синтезатор құру 
барысында пайдаланылды. НОРМА тілінің сипаттауы бойынша, ол тізбекті 
компьютерлер үшін де, таратылған жадылы және ортақ жадылы параллель 
есептеу жүйелері үшін де шығыс бағдарламаларын алуға мүмкіндік береді. 


200 
Бұл бағдарламалар Fortran MPI, Fortran PVM, Fortran 77 және Fortran тілінің 
басқа да диалектілерінде жазылуы мүмкін. 
Тӛменде НОРМА тілінің қысқаша сипаттамасы жұмыс стандарты [1] 
және http:// www.keldysh.ru/norma сайтының деректері бойынша беріледі.
НОРМА тіліндегі бағдарлама бір немесе бірнеше бӛлімдерден тұрады. 
Бӛлімдер үш түрлі болуы мүмкін – негізгі (басты) бӛлім, қарапайым бӛлім 
және функция-бӛлім. Бӛлімнің түрі сәйкесінше MAIN PART, PART және 
FUNCTION кілттік сӛздерімен анықталады. Бӛлімдер бір-бірін ӛз 
атауларымен шақырулары және деректерді формальды және фактілік 
параметрлер механизмі, болмаса сыртқа файлдар арқылы INPUT және 
OUTPUT сипаттамалары кӛмегімен жіберуі мүмкін. Бӛлімдерді рекурсивті 
шақыруларға тыйым салынған.
НОРМА тілінде ауқымды айнымалылар түсінігі жоқ.
Бағдарламада, RESULT кілттік сӛзіне дейінгі формальды параметрлер 
тізімінде кӛрсетілген барлық параметрлер бастапқы деректер, ал ол кілттік 
сӛзден кейінгі келтірілген параметрлер есептеу нәтижелері болып есептеледі. 
Бір параметр бір мезгілде бастапқы және нәтиже бола алмайды, себебі бұл 
айнымалылардың мәндерді қайта меншіктеуіне алып келеді, ал НОРМА 
тілінде қайта меншіктеуге рұқсат етілмейді. Функция-бӛлімінде RESULT 
кілттік сӛзі қолданылмайды, себебі функцияны есептеу нәтижесі 
функцияның атауымен және типімен байланыстырылады.
Бӛлім денесінде сипаттаулар, операторлар және итерациялар 
берілулері мүмкін. Олардың орналасу тәртібі, жалпы айтқанда еркін – мүмкін 
болатын шектеулер транслятордың кіріс тілін сипаттау кезінде анықталады. 
НОРМА тілінің базалық ұғымы облыс болып табылады. Облыс - бұл n-
ӛлшемді индексті кеңістікте нүктелер координатасын беретін
{i


Достарыңызбен бөлісу:
1   ...   110   111   112   113   114   115   116   117   ...   121




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

    Басты бет