Ma’ruza: Assemblerning ikkita o’tishli translyatori Reja


Download 98.36 Kb.
bet1/8
Sana10.02.2023
Hajmi98.36 Kb.
#1186799
  1   2   3   4   5   6   7   8
Bog'liq
maruza 5 (1)


Ma’ruza: Assemblerning ikkita o’tishli translyatori
Reja:

  1. O’tish tushunchasi. Ko’po’tishli va biro’tishli kompilyatorlar.

  2. Assembler tilining translyatorlari («assemblerlar»).

  3. Kompilyatorning strukturasi. Ko’po’tishli va biro’tishli kompilyatorlar.

Dasturlami kompilyasiya jarayoni bir necha fazalardantashkil topadi. Anik kompilyatorlarda ushbu fazalaming tarkibi yuqorida ko’rib o’tilganlardan farqlanishi, ba'zi birlan bir necha tashkil etuvchilarga ajralishi, boshqalari esa, aksincha, bitta fazaga birlashtirilishlari mumkin. Kompilyasiya fazalarini bajarilish tartibi ham turli kompilyatorlarda turlicha o’zgarishi mumkin. Bir holatda kompilyator kiruvchi dastur matnini qarab chiqadi, tezda kompilyasiyaning barcha fazalarini bajaradi va natija- ob'ekt kodni oladi. Boshqa variantda u kiruvchi dastur matni ustida kompilyasiyaning faqat ba'zi bir fazalarini bajaradi va oxirgi natijani olmay, balki oraliq ma'lumotlaming to’plamini oladi. Ushbu ma'lumotlar yana qayta ishlashga qo’yiladi va ushbu jarayon bir necha marta takrorlanishi mumkin.
Aniq kompilyatorlar kiruvchi dastur matnini o’girishni bir necha o’tishlar orqali bajaradilar.
O’tish - bu tashqi xotiradan berilganlami ketma-ket o’qish jarayoni, ularni qayta ishlash va tashqi xotiraga joylashtirishdir. Kompilyasiyaning bir fazasi - bir o’tishdir. Oraliq o’tishlaming natijasi bo’lib, kiruvchi dastur matnini ichki ifodalanishi hisoblanadi, oxirgi o’tishning natijasi esa natijaviy ob'ekt dastur hisoblanadi.
Tashqi xotira sifatida ixtiyoriy ma'Iumot tashuvchilar, kompbyuterning operativ xotirasi, magnit disklari, magnit lentalari va x.k. kelishi mumkin.
Zamonaviy kompilyatorlar, ma'lumotlami saqlash uchun kompsyutemi operativ xotirasidan maksimal ravishda foydalanishga xarakat qiladilar, va mumkin bo’lgan xotirani etishmagan hollaridagina qattiq magnit disklaridan foydalanadilar. Boshqa ma'lumot tashuvchilar zamonaviy kompilyatorlarda, ma'lumot almashinuvining yuqori bo’lmagan tezligi sababli, foydalanilmaydi.
Har bir o’tishning bajarilishida kompilyatorga barcha awalgi o’tishlaming natijasida olingan ma'lumotlarga ruxsat mavjud. O’tishlaming bajarilishidagi olinadigan ma'lumotlarga foydalanuvchi uchun ruxsat yo’q. Ular translyasiya jarayoni tugaganidan so’ng kompilyator tomonidan ozod etiladigan operativ xotirada, yoki vaqtinchalik fayllar ko’rinishida disklarda saqlanadi, va ular kompilyator ishining tugatilishi bilan yo’qotiladi. Shu sababli, kompilyatorda ishlovchi inson kompilyator nechta o’tishni bajarishini bilmasligi mumkin, u har doim kiruvchi dastur matnini va natijaviy ob'ekt dastumi quradi. Lekin bajarilgan o’tishlar soni - bu kompilyatoming muhim texnik xarakteristikasi bo’lganligi sabab, taniqli firmalar —kompilyatorlami ishlab chiqaruvchilar, ko’pincha uni o’zlarining mahsulotlarini ifodalanishida ko’rsatadilar.
Kompilyatorlarni ishlab chiqaruvchilar o’tishlar sonini maksimal darajada qisqartirishga xarakat qiladilar, chunki bu holda kompilyator ishining tezligi oshadi va unga zarur xotira hajmi kamayadi.
Kirishida boshlang’ich dastumi oluvchi va o’sha zaxoti natijaviy ob'ekt kodini tug’diruvchi biro’tishli kompilyator bu ideal variantdir. Ammo o’tishlar sonini qisqartirishni har doim ham amalga oshirish mumkin emas. O’tishlaming zarur soni kiruvchi tilning grammatikasi va semantika qoidalari asosida aniqlanadi. Tilning grammatikasi qanchalik murakkab bo’lsa va semantik qoidalar qanchalik ko’p variantlami taklif etsalar, kompilyator shunchalik ko’p o’tishlami bajaradi. Masalan, xuddi shu sababli Pascal tilining kompilyatorlari S tilining kompilyatorlariga nisbatan. tezroq ishlaydi. Pascal tilining grammatikasi oddiyrok, semantik qoidalari esa qattiqroqdir. Biro’tishli kompilyator juda sodda tillar uchun mumkin bo’lib, ular juda kam uchraydilar. Real kompilyatorlar kamida ikkitadan beshtagacha o’tishlarni bajaradilar. SHunday qilib, real kompilyatorlar kupo’tishli hisoblanadilar. Eng ko’p tarqalganlari ikki- va uch o’tishli kompilyatorlar, masalan: birinchi o’tish– leksik tahlil, ikkinchisi — sintaksis tahlil va semantik tahlil, uchinchisi – generasiyalash va kodni optimallash (bajarilish variantlari albatta ishlab chiqaruvchilarga bog’liq).
Zamonaviy dasturlash tizimlarida, ko’p hollarda, kompilyatomi birinchi o’tishi (kodni leksik tahlili) boshlang’ich dastur kodini tahrirlash bilan parallel bajariladi (kompilyatorlami bunday qurilishi varianti kitobning keyingi bo’limlarida keltiriladi).

Download 98.36 Kb.

Do'stlaringiz bilan baham:
  1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling