Кіріспе

Мод жүйесі қайта жазу логикасының іске асырылуы болып табылады. Ол жалпы көзқарасымен Джозеф Гогеннің теңдеу логикасын іске асырған OBJ3 жүйесіне ұқсас, бірақ реттік сұрыпталған теңдеу логикасының орнына қайта жазу логикасына негізделген, сондай-ақ рефлексия негізіндегі қуатты метапрограммалауға баса назар аударады. Maude – тегін бағдарламалық қамтамасы, және оқулықтары интернетте қолжетімді. Ол бастапқыда SRI International ұйымда әзірленген, бірақ қазір түрлі зерттеушілердің ынтымақтастығымен дамытылуда.

Кіріспе

Мод C, Java немесе Perl сияқты әдеттегі императивті тілдер шешетін проблемалар жиынтығынан өзгеше проблемаларды шешуге тырысады. Бұл формалды ой-пікір құралы, ол бізге нәрселердің «қалай болуы керек» екенін тексеруге көмектеседі және егер олай болмаса, неге олай емес екенін көрсетеді. Басқаша айтқанда, Мод бізге қандай да бір ұғымды өте абстрактілі түрде формалды түрде анықтауға мүмкіндік береді (құрылымның ішкі өрнегі және т.б. туралы ойланбай), бірақ біздің теориямызға қатысты теңдіктерді (теңдеулер) және оның қандай күй өзгерістерінен өте алатынын (қайта жазу ережелері) сипаттауға болады. Мод модульдері (қайта жазу теориялары) терминдер тілінен және теңдеулер мен қайта жазу ережелерінің жиынтығынан тұрады. Қайта жазу теориясындағы терминдер операторларды (бір немесе бірнеше аргументтерді қабылдайтын және белгілі бір типтегі терминді қайтаратын функциялар) пайдалана отырып құрастырылады. 0 аргумент қабылдайтын операторлар тұрақтылар деп есептеледі, ал олардың терминдер тілі осы қарапайым құрылымдар арқылы құрастырылады. Мод пайдаланушыға операторлардың инфикс, постфикс немесе префикс (дефолтты) пішінде болуын анықтауға мүмкіндік береді, бұл кіріс терминдері үшін орнын толтырушы ретінде астыңғы сызықтарды қолдану арқылы жасалады. Кеміту теңдеулері конгруэнтті және тоқтатылатын деп есептеледі. Қайта жазу ережелерінде мұндай шектеу жоқ. Мод «орындалған» кезде, ол теңдеулер мен қайта жазу ережелеріне сәйкес терминдерді қайта жазады. Мод, егер біздің теңдеулер жинағымыздағы теңдеудің сол жағына қайта жазуға (немесе кемітуге) тырысатын жабық термин сәйкес келсе, терминдерді теңдеулерге сәйкес қайта жазады. Сәйкестік дегеніміз – теңдеудің сол жағындағы айнымалыларды ауыстыру, нәтижесінде термин қайта жазуға/кемітуге тырысатын терминмен толықтай сәйкес келеді. Теңдеулер мен қайта жазу ережелері шартты ережелер де болуы мүмкін, яғни олар терминге қолданылуы үшін белгілі бір шарттарды орындауы керек (қайта жазу ережесінің сол жағына сәйкес келуден басқа). Ережелер Мод жүйесімен «кәдімгідей» қолданылады, яғни сіз бір ереженің екінші ереженің алдында қолданылатынына сенімді бола алмайсыз. Егер теңдеуді терминге қолдануға болады, онда ол әрқашан кез келген қайта жазу ережесінен бұрын қолданылады. Модтың кіріктірілген іздеу функциясы қажетсіз күйлерді іздеп, мұндай күйлерге жету мүмкін еместігін көрсетуге болады. Мод, қайта жазу логикасының рефлексивті қасиеттеріне байланысты, метабағдарламалау арқылы әр қадамда қандай ережелерді қолдану керектігін бақылауға мүмкіндік береді.

Қолданылуы

Мод қауіпсіздік протоколдары мен маңызды кодты тексеру үшін қолданылды. Maude жүйесі криптографиялық протоколдардағы қателерді жүйенің не істей алатынын ғана сипаттап, және протоколға жету мүмкін емес жағдайларды (күйлерді немесе терминдерді) іздеу арқылы дәлелдеді. Осылайша протоколдағы қателер анықталады, бұл бағдарламалау қатесі емес, көптеген бағдарламашылардың "сәтті жолмен" жүріп болжай алмайтын жағдайлардың туындауынан болады.