Algoritmik tillarning alfaviti, sintaksisi va semantikasi
Yuqoridagi kabi kamchiliklarni bartaraf qilish uchun formallashgan, qat’iy aniqlangan algoritmik tillar ishlab chiqilgan. Algoritmik tillar uchta o’zakdan tashkil topadi: til alfaviti, sintaksisi va semantikasi.
Til alfaviti shu tilgagina tegishli bo’lgan chekli sondagi belgilardan tashkil topadi. Programma matnini yozishda faqat shu belgilardangina foydalanish mumkin, boshqa belgilarni esa til tanimaydi, ya’ni ulardan foydalanish mumkin emas.
Til sintaksisi alfavit xarflaridan tashkil topib, mumkin bo’lgan konstruktsiyalarni aniqlovchi qoidalar sistemasidir. Mazkur tilda ifoda etilgan to’la algoritm va uning aloxida xadlari shu konstruktsiyalar orqali ifoda qilinadi. SHunday qilib, belgilarning xar qanday ketma-ketligini, mazkur tilning matni to’g’riligi yoki noto’g’riligini til sintaksisi orqali bilib olamiz.
Til semantikasi algoritmik tilning ayrim konstruktsiyalari uchun qoidalar sistemasini tushuntirishga xizmat qiladi.
Endi algoritmik tillarning qaysilari amalda ko’proq ishlatilishi xaqida fikr yuritsak. Ma’lumki 70-yillarda bir gurux muammoli-yo’naltirilgan algoritmik tillar yaratilgan bo’lib, bu programmalash tillaridan foydalanib juda ko’p soxalardagi muammoli vazifalar xal qilingan. Xisoblash jarayonlarining algoritmlarini ifodalash uchun Algol-60 va Fortran tillari, iqtisodiy masalalar algoritmlari uchun Kobol va Algek tillari, matnli axborotlarni taxrirlash uchun esa Snobol tillari ishlatilgan. Sanab o’tilgan bu algoritmik tillar asosan katta xajmli, ko’pchilikning foydalanishiga mo’ljallangan EXMlari uchun mo’ljallangan edi.
Uch kishini bir necha yillardan buyon uzoq kosmosda olis sayyoralar tomon olib ketayotgan kosmik kema g‘alati oltinrang bulut orasidan uchib o‘tdi. Kemada tug‘ilgan va bir yosh bo‘lgan Bek ismli bola hali yurishni o‘rganmagani uchun g‘ildirakli aravachasida katta doira shaklidagi xonasida bir o‘zi aylanib yurishni yoqtirardi. U aravachasini g‘ildiratib borib o‘yinchoqlarini egilib olar, o‘ynab yana otib yuborar edi. Bek oltinrang bulut ta‘sirida o‘zida bir necha xil o‘zgarishlarni sezdi. Birinchi o‘zgarish zehni bilan bog‘liq bo‘lib, u endi bola bo‘lsa ham arifmetik amallarni juda tez bajarar, har xil narsalarni turli ko‘rinishdagi miqdorini bir qarashda juda tez aniqlab, taqqoslay olardi. Ikkinchisi, u tajanglashganligi va endi bolalar o‘yinchoqlarini o‘ynagisi kelmay qolganligi edi. Xonada bir o‘zi zerikib qolganligidan chinqirib yig‘lay boshladi. O‘g‘lini ovutishga kelgan ota-ona bolani qunt bilan ota-onasining suhbatini tinglayotganiga e’tibor berishdi. O‘g‘lidagi o‘zgarishlarni sezgach, zehni o‘tkir o‘g‘lini ovutish uchun ota-onasi xonani boshqacha jihozlab, faqat bir qo‘li bor hamda g‘ildirakda yuradigan sodda dasturli Saralovchi I nomli robot yasab berishdi. Keyin robotni boshqarishga mo‘ljallangan dastur tuzishga yo‘naltirilgan turli boshqotirmali masalalarni ayta boshlashdi. Biz endi Bek bilan birga shu masalalarni ko‘rib chiqamiz.
Avval xona haqida. Aytganimizdek, doira shaklidagi devorlari bo‘ylab bir xil balandlikda tokchalar o‘rnatildi. Har bir tokchaga tartib raqami berildi, xonani bir qismining ko‘rinishi 8.1-rasmda ifodalangan.
Kerak bo‘lsa, tokchalarni bir nechtasini qoldirib, qolganlarini yopib qo‘yish mumkin edi. Har bir tokchani qulaylik uchun quyidagicha nom bilan belgilab olamiz:
tokcha(1), tokcha(2), ..., tokcha(7), ..., tokcha(21), ..., tokcha(1963), ... va shu asosida ixtiyoriy A tokchadagi buyumni tokcha(A) orqali belgilay olamiz. Ya’ni, tokcha(A) deganda Bek va Saralovchi I tokchani emas, shu tartib raqamli tokchadagi
buyumni tushunadi. Tokchalar sonining quyi chegarasi — INF, yuqori chegarasi — SUP kabi belgilanadi. Yuqoridagi belgi- lashlarga ko‘ra INF=1, SUP esa masala shartlarida aniqlab boriladi.
Avval, tokchalarni alifbo bo‘yicha A, B, D kabi belgilamoqchi bo‘ldik. Lekin tokchalar soni ko‘payganda harflar ikkitalab, uchtalab va shu kabi qo‘shib yozilishi anchagina qiyinchilik keltirib chiqarishi noqulaylikka sabab bo‘lardi. Shuning uchun tokchalar soni 10 tadan kam bo‘lsa, biz haflardan ham foydalanaveramiz. Ya’ni, A harfi tokcha(1) ni, B harfi tokcha (2) ni va shu kabi tushunilaveradi. Bu ma’lumotlarning hammasi Bek va Saralovchi
I ga tushunarli ekan.
Yangi Ijrochimiz Saralovchi I sonlar ustida arifmetik amallarni bajara oladi va tekshirilayotgan quyidagi shartlarni ROST yoki YOLG‘ON ekanligini biladi, ya’ni bu shartlarni tekshira oladi hamda shu asosida mantiqiy xulosa chiqara oladi:
= (teng), <>(teng emas), <(kichik), < = (katta emas), >(katta),
> = (kichik emas).
Sodda dasturli Ijrochi Saralovchi I ning ko‘rsatmasi faqat bitta: o‘tkaz tokcha(N), tokcha (M)
Bu amalni bajarganda Saralovchi I qo‘li bilan tokcha (N) dagi buyumni ko‘tarib, tokcha (M) ga olib qo‘ya oladi. Agar bu jarayonda tokcha(M) bo‘sh bo‘lmasa, undagi buyumni surib tushirib yuborib, bo‘shatadi va so‘ng tokcha (N) dagi buyumni qo‘ya oladi. Umuman, buyum qo‘yilayotgan tokchani bo‘sh deb hisoblash mumkin, baribir undagi buyumlar tashlab yuboriladi. Bek faqat shu axborotlar asosida Saralovchi I ni boshqarish dasturini tuzishi kerak. Bu yerda qiziq bir usulni ko‘rish mumkin, miqdorni o‘zgartirib uning avvalgi nomini saqlab qoldik. Bundan qiymati o‘zgaradigan miqdor tushunchasi paydo bo‘ladi.
Do'stlaringiz bilan baham: |