Кіріспе

Action semantics – Дэвид Уатт пен Питер Д. Мосс 1990 жылдары ойлап тапқан бағдарламалау тілдерінің семантикасын ресми түрде сипаттаудың құрылымы. Ол денотациялық, операциялық және алгебралық семантиканың үйлесімі. Action semantics прагматикалық болуға бағытталған, ал action semantics сипаттамалары (ASD) нақты бағдарламалау тілдерін қолдану үшін кеңейтілуге арналған. ASD-нің кеңейтілуі мен өзгеруі осыған көмектеседі. Бұл кеңейтулер мен өзгерістер сипаттамада көп өзгерістерді қажет етпеуге мүмкіндік береді. Бұл, әдетте, денотациялық немесе операциялық семантиканы кеңейту кезінде кездесетін жағдайдан өзгеше, онда бүкіл сипаттаманы қайта жазу қажет болуы мүмкін. Action semantics құрылымы бастапқыда Орхус университеті мен Глазго университетінде жасалған. Содан бері әлемнің түкпір-түкпіріндегі топтар мен жеке тұлғалар осы тәсілге үлес қосып келеді.

Семантикалық мәндер

Іс-әрекет семантикасының маңызды бөлігі, бұрынғы бағдарламалау тілдерінің семантикасында көрінбеген модульділікті қамтамасыз ететін нәрсе – бірінші реттік семантикалық элементтерді пайдалану. Бірінші реттік дегеніміз, денотациялық семантикада семантикалық функция басқа семантикалық функцияға қолданыла алатын болса, іс-әрекет семантикасында семантикалық элемент өзінің түріндегі басқа семантикалық элементке қолданылмайды. Бұдан әрі, іс-әрекет семантикасы қолданатын семантикалық элементтер бағдарламалау тілінің құрылымдарын сипаттау мүмкіндігін кеңейтеді, өйткені олар кез келген нақты іске асырылудан тәуелсіз бағдарламаның мінез-құлқы мен бағдарлама бөліктерінің жалпы өнімділікке тигізетін әсерін көрсетеді. Іс-әрекет семантикасындағы үш түрлі семантикалық элементті – іс-әрекеттерді, деректерді және нәтиже берушілерді білдіру үшін осыған орай аталған іс-әрекет нотациясы қолданылады. Бұл жүйедегі орталық семантикалық элемент – іс-әрекеттер, ал деректер мен нәтиже берушілер қосымша рөл атқарады. Нақтырақ айтқанда, нәтиже берушілер мен деректерді өңдейтін механизм – іс-әрекеттер. Іс-әрекет, басқа іс-әрекеттің ішінде орын алатын, бағдарламаның қадамдық түрдегі бейнелеуі болып табылады, онда әрбір қадам ағымдағы ақпаратқа қол жеткізеді, ағымдағы ақпаратты өзгертеді немесе екеуін де жасайды. Нәтиже берушілер іс-әрекеттердің ішінде пайда болады және тек ағымдағы ақпаратқа қол жеткізеді. Нәтиже беруші элементті бағалауға болады, ал бағаланған кезде ол дерек элементіне айналады.

Іс-қимыл субъектілері

Іс-әрекет субъектілері бағдарламаның семантикасын мүмкін болатын мінез-құлқында сипаттау арқылы тікелей бейнелей алады немесе бағдарламаның жеке бөліктерінің, мысалы, операторлар немесе өрнектердің, бағдарламаның семантикасына тигізетін әсерін көбірек жасырын жолмен бейнелей алады. Олар есептеу мінез-құлқын, берілген мәндерден жаңа мәндерді жасау арқылы күйдегі өзгерістерді көрсете отырып, модельдейді. Нақтырақ айтқанда, іс-әрекет ағымдағы ақпарат арқылы берілген деректерді қабылдайды – уақытша деректер, алған байланыстар және сақтаудың қазіргі күйі, содан жаңа уақытша деректерді шығарып, жаңа байланыстарды құрып, сақтау күйін жаңартады немесе осылардың кез келген комбинациясын жасайды. Іс-әрекет субъектісі төрт мүмкін жолмен аяқталуы мүмкін: толыққанды (қалыпты түрде аяқталу), қашып кету (қосымша нұсқаумен аяқталу), сәтсіздікке ұшырау (баламасы жойылу) немесе тоқтамау (аяқталмау). Іс-әрекеттің орындалуы кезінде өңделетін ақпараттың төрт санаты бар. Уақытша ақпарат аралық нәтижелерге сәйкес келеді және іс-әрекет үшін дереу пайдалануға қолжетімді. Уақытша ақпаратты құрайтын деректер өрнектермен берілген мәндерді қамтиды. Егер бұл мәндер дереу қолданылмаса, олар жоғалады. Ауқымдық ақпарат символдар кестесіне сәйкес келеді және оны іс-әрекеттің және оның қосалқы іс-әрекеттерінің кез келген жерінен сілтемелеуге болады. Мұндай ақпаратты ішкі ауқымды құру арқылы қосалқы іс-әрекетте жасыруға да болады, онда ол тек сол ауқымдағы қосалқы іс-әрекетке жергілікті түрде қолжетімді болады. Тұрақты ақпарат айнымалыларға тағайындалған мәндерге сәйкес келеді және іс-әрекеттің орындалуы кезінде өзгертілуі мүмкін. Іс-әрекеттің орындалуы кезінде сақтауға енгізілген өзгерістер тұрақты болғандықтан, осындай өзгерістерді тек нақты іс-әрекеттер ғана тудыра алады. Осыған сәйкес, тұрақты ақпарат оны нақты жойғанға дейін қолжетімді болады. Ал, ауқымдық ақпараттан айырмашылығы, оны жасыруға болмайды. Тұрақты ақпарат – іс-әрекеттер арасында алмасылатын деректерге сәйкес келеді және кеңейтілуі мүмкін, бірақ өзгертілмейді. Уақытша ақпарат тек іс-әрекет аяқталғанда немесе қашқанда ғана, ал ауқымдық ақпарат тек іс-әрекет аяқталғанда ғана шығарылады. Тұрақты ақпаратты өзгерту және тұрақты ақпаратты кеңейту іс-әрекеттің орындалуы кезінде жүзеге асырылуы тиіс. Іс-әрекет субъектісінің бес түрлі қыры бар: бірі ақпаратқа тәуелсіз өңдеуге арналған, ал төрт түрлі ақпарат түрін өңдеуге арналған. Негізгі қыр, мысалы, басқару ағыны, ешқандай ақпаратқа байланысты емес. Функционалдық қыр уақытша ақпаратты өңдеумен айналысады және деректерді беру және қабылдау әрекеттерімен сипатталады. Декларативтік қыр ауқымдық ақпаратты өңдеумен айналысады және байланыстарды құру және қабылдау әрекеттерімен сипатталады. Императивтік қыр тұрақты ақпаратты өңдеумен айналысады және сақтау орындарын бөлу және босату, оларда сақталған деректерді алу және өзгерту әрекеттерімен сипатталады. Коммуникативтік қыр тұрақты ақпаратты өңдеумен айналысады және хабарламаларды жіберу және қабылдау әрекеттерімен сипатталады, сондай-ақ агенттерге келісімшарттар ұсынады. Әр қырдағы ақпаратқа тигізетін әсеріне қарай екі түрлі іс-әрекет бар. Бастапқы іс-әрекеттер ақпаратқа тек бір қырдан әсер етеді. Іс-әрекет комбинаторлары бірнеше қырларды қамтитын іс-әрекеттерге мүмкіндік береді, біріктірілген іс-әрекетке қатысқан әрбір қыр үшін басқару және ақпарат ағынын реттейді. Іс-әрекеттерді біріктіргенде, іс-әрекет комбинаторлары қосалқы іс-әрекеттердің орындалу реттілігін және әрбір қосалқы іс-әрекет үшін кіріс және шығыс дерек ағынын реттейді.

Деректер субъектілері

Деректер нысандары – іс-қимыл нысандарында өңделетін ақпаратты құрайтын элементтер. Деректер сорттар деп аталатын құрылымдарға ұйымдастырылады. Сорттар – математикалық нысандар жиынтығы болып табылады, олар осы нысандармен орындалатын амалдарды қамтиды және алгебралық критерийлер бойынша анықталады. Бұл құрылымдар әрбір жеке нысанға қол жеткізуге мүмкіндік береді. Деректер нысандарының мысалдарына карталар, тізімдер, жиынтықтар, жолдар, символдар, сандар және шындық мәндері сияқты нақты элементтер, сондай-ақ кейбір есептеу амалдары үшін ғана қолданылатын абстрактілірек элементтер, атап айтқанда, агенттер, жад орындарына сәйкес келетін жасушалар және белгілер, немесе келісімшарттар мен хабарламалар сияқты деректер компоненттерінен құралған элементтер жатады. Абстракция – іс-қимыл нысанын қамтитын дерек нысаны, мұндай жағдайда абстракцияны іске асыру нәтижесінде осы іс-қимыл орындалады. Бұл – іс-қимыл семантикасының кіші бағдарламаларды жариялау және шақыруын бейнелейтін тәсілі.

Табысты субъектілер

Табыс берушілер бағаланбаған деректер жиынтығынан тұрады. Бұл деректердің мәндері ағымдағы ақпарат пен есептеу күйіне байланысты. Табыс берушілер әрекеттермен өңделетін ақпаратты таңдау үшін уақытша деректерге, байланыстарға және жадқа сүйенеді. Әрекет орындалған кезде табыс берушілер бағаланады, ал олардың бағалау нәтижесі деректерді құрайды. Ағымдағы ақпарат табыс берушінің бағалауынан алынған деректерге әсер ете алады, бірақ бағалау ағымдағы ақпаратқа әсер ете алмайды. Егер деректермен жұмыс жасау табыс берушілерге қолданылса, оның нәтижесінде күрделі табыс берушілер пайда болуы мүмкін.

Іс-әрекет белгісі

Ағылшын тіліндегі қарапайым сөздер іс-әрекет нотациясының символдары ретінде қолданылады. Іс-әрекет нотациясы семантикалық ұғымдарды көрсету үшін қолданылатын сөз таптары арқылы табиғи тілді модельдеуге арналған. Іс-әрекеттер етістік фразалармен, ал деректер мен нәтижелер есім фразалармен бейнеленеді. Мұндай символдарды таңдаудың нәтижесінде жоғары оқылатын және басқа нотациялармен салыстырғанда кем емес формалды құрылым пайда болады, себебі ол нақты анықталған.

Басқа негізгі аспектілер

Іс-әрекет семантикасы түсініктілігін арттыратын абстракция деңгейін камтиды. Іс-әрекетке қатысты басқару және дерек ағынының ерекшеліктері, денотациялық семантикадағы семантикалық функциялардың толық сипаттамасы сияқты, ашық түрде айтылмастан, керісінше, жасырын түрде енгізіледі. Әрекет орындалғанда, көп бөлігі ақпараттық өңдеу және манипуляция автоматты түрде жүзеге асырылады. Бағдарламалық тілдің мағынасын анықтауда іс-әрекет семантикасы бағдарламалық сөз тіркестерін іс-әрекеттермен байланыстырады. Бағдарламалық фразаның орындалуы, оған сәйкес келетін іс-әрекеттің орындалуымен сәйкес келеді. Іс-әрекет семантикасын қолдану нәтижесінде алынған бағдарламалау тілінің сипаттамасын төменгі (микросемантика) және жоғарғы (макросемантика) деңгейлерге бөлуге болады. Төменгі деңгей іс-әрекет нотациясының мағынасын анықтаумен, ал жоғарғы деңгей бағдарламалау тілінің мағынасын анықтаумен, оны іске асыру үшін іс-әрекет нотациясын пайдаланумен айналысады.