transform fold_additive_constants:
\c1 + \c2 -> \sum\(\c1,\c2\)
if constant(\c1) & constant(\c2)
transform division_by_self:
\d / \d -> 1
if NotZero(\d)
transform eliminate_parentheses:
( \x ) -> \x
set SimplifyExpression =
{ additive_identify,
fold_additive_constants,
division_by_self,
eliminate_parentheses }
Metadasturlar: Ko'pincha o'zgarishlarni qo'llash tartibini ketma-ketlashtirish muhimdir. Metadasturlar buni amalga oshirish uchun vositadir. Metadasturlar ko'pincha protsessual tillarda yoziladi, shuning uchun ularning protsessual transformatsiya tizimlarida qanday amalga oshirilishini ko'rish oson. Manbadan manbaga o'zgartirish tizimlarida ba'zan ushbu ketma-ketlikni belgilash uchun maxsus metadasturlash tillari mavjud; yuqoridagi to'plam yozuvi bunga oddiy misoldir. DMS murakkab vazifalarni bajarish uchun qulay va zarur bo'lgan narsaga qarab turli xil tartiblarda analizatorlarni, protsessual o'zgarishlarni va manbadan manbaga o'zgartirishlarni ishga tushirishi mumkin bo'lgan protsessual metadasturlash vositalarini taqdim etadi.
Language Frontends: Haqiqiy kompyuter dasturiy taʼminotiga oʻzgartirishlarni qoʻllash uchun oʻzgartirish vositasi kompyuter dasturiy taʼminotini ushbu dastur uchun kompilyator bilan bir xil darajadagi tafsilotlar bilan tahlil qila oladigan yuqori aniqlikdagi old qismga ega boʻlishi kerak. Haqiqiy tillar uchun old qismlarni yaratish juda qiyin, chunki tafsilotlar to'g'ri bo'lishi kerak; C++ juda murakkabligi tufayli oldingi qurilish maydonida o'ziga xos muqaddas graildir. Yaxshi dasturni o'zgartirish tizimi mustahkam old qismlarni olish uchun vositaga ega va ideal holda, dasturni o'zgartirish vositasini dasturiy ta'minot muhandisligining haqiqiy vazifalariga darhol qo'llash imkonini beradigan bunday old tomonlar to'plami mavjud. DMS C++, Java, C# va COBOL kabi eng koʻp qoʻllaniladigan dasturlash tillari, jumladan, koʻpgina dialektlarni oʻz ichiga olgan sanoat quvvatining keng doirasini taqdim etadi.
Xulosa:
Men ushbu mustaqil ishda transfarmatsion sementika haqida ko’plab narsalarni o’rgandim. Dasturlash tilining semantikasi - yadro tiliga nisbatan - ta'riflarni o'zgartirish orqali tilning ma'lum konstruktsiyalarini oddiyroq bo'lganlarga qisqartirish orqali aniqlanadi. Mavhum ma'lumotlar turlarining algebraik spetsifikatsiyasiga parallelliklari muhokama qilinadi. "Transformatsion semantika" ning bunday yondashuvi dastur o'zgaruvchilarini sof amaliy konstruktsiyalar nuqtai nazaridan tushuntirish orqali tasvirlangan.
Foydalanilgan adabiyotlar va veb-saytlar ro’yxati:
https://www.semanticscholar.org/
https://en.wikipedia.org/
http://www.semanticdesigns.com/
Do'stlaringiz bilan baham: |