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
Достарыңызбен бөлісу: