|
Subjarayonlarning maqsadi, sxemasi va tashkil etilishi
|
bet | 47/78 | Sana | 19.02.2024 | Hajmi | 209,36 Kb. | | #158808 |
Bog'liq Tizimli dasturlash javoblar
Programmalashda subjarayonlarni tashkil qilish uchun quyidagicha ish ko’radilar.
Qo’yilgan masalani yechish uchun programmalar ketma-ketligi hosil qilinadi.
Bitta programma boshqasini chaqirishini rejalashtiriladi.
Chaqiruvchi boshqa programmani ishga yurgizgandan keyin xotirada qolishi e’tiborga olinadi.
Chaqirilgan programma o’z ishini tugatgandan keyin uni ishga da’vat etgan (nisbatan yuqori darajali) programma yana o’z ishini davom ettiradi.
Ana shu texnologiya asosida integrator programmalar tashkil qilingan. Bunday
programmalarda ishga da’vat etilishi kerak bo’lgan programmalar menyusi yordamida kerakli subjarayonlar (programmalar) ishga tushiriladi. Oddiy programma o’z ishini tamomlab xotirani bo’shatsa, subjarayonlar esa ketma-ket bir-biriga boshqaruvni uzatadi va oxirgi subjarayon esa operatsion sistemaga boshqaruvni beradi. Subjarayonlarni tashkil qilish uchun xotira hajmini ko’rsatish kerak. Subjarayonlar ozod xotirada, ya’ni operatsion sistema, rezident programmalar va ishga tushirilgan programmadan qolgan ortiqcha xotira sohasida tashkil qilinadi.
Subjarayonlarni tashkil qilish uchun quyidagi DOS-modulining protseduralari ishlatiladi.
SwapVectors; Bu protseduraning parametrlari yo’q, tizimning yoki tashqi uzilishlar vektorlarini tiklash (qayta tiklash) uchun ishlatiladi.
Exec (ExeFile, ComLine: String); Bu yerda ExeFile- subjarayon, ya’ni bajariladigan (.exe, .com) fayl va ComLine- parametrlar
Masalan, Exec( ’abc.exe’, parameters);
57
DosExitCode: word; Bu funksiya subjarayonni yakunlash kodini qaytaradi. Ya’ni subjarayon qanday bajarilganligi haqida ma’lumot beradi.
Translyatorlar ishlashining asosiy bosqichlari tahlili.
Boshlang’ich (kirish) tilida yozilgan programmani mashina tiliga tarjima qilish masalasi oddiy masala emas. Bu masala ketma-ket, bosqichlar bilan bajariladi. Tarjima qilish jarayoni quyudagi umumiy sxema yordamida tasvirlanadi.
Birinchi va ikkinchi bosqichlarni bajarishdan keyin boshlang’ich programmadan abstrakt programmani hosil qilamiz. Sxemadan ma’lumki tarjima jarayoni asosan ichki (analiz va sintez) bosqichlardan iborat. Birinchi bosqichda abstrakt programma va ikkinchi bosqichda
unga ekvivalent bo’lgan natijaviy programma hosil bo’ladi.
Leksik analiz jarayonida translyatr kirish satrini litera bo’yicha o’qib leksemalarni hosil qiladi. Leksemalar jadvalda saqlanadi. Har bir leksema deskriptorga ega bo’lib, deskriptor leksema turi va saqlash joyini belgilaydi. Sintaksis tahlil natijasida leksemani til sintaksisiga jabob berish yoki bermasligi aniqlanadi. Masalan ,a+b*c ifodasi tahlildan keyin (a+(b*c)) ko’rinishda keltiriladi. Buning natijasida programmaning ma’nosi yaqqol ko’rsatiladi. Tahlilning bu bosqichi natijasi programmani tahlil daraxtidir. Daraxt konstruksiya va leksemalarni o’z ichiga oladi. Keying bosqichda esa bu daraxt maxsus algoritmlar bilan aylanib o’tiladi va natijaviy programma satri hosil bo’ladi. Generatsiya bosqichida natijaviy programma satrlar to’plami ko’rinishida hosil qilinadi.
Generatsiya etapining yana asosiy vazifalaridan biri – bu xotirani taqsimlashdir. Bu yerda statik yoki dinamik taqsimlash usullari ishlatiladi. Birinchi usul xotirani translyatsiya jarayonida taqsimlashni talab qiladi. Agar programma obektlarning paydo bo’lishi va aktivlanishi ma’lum bo’lmasa dinamik taqsimlash usulidan foydalanadilar.
|
| |