logo

Алгоритмик тилларнинг умумий тавсифи ва металингвистик формулалар тили

Yuklangan vaqt:

20.09.2019

Ko'chirishlar soni:

0

Hajmi:

68 KB
www.arxiv.uz Режа: 1. ЭХМнинг «машина тили» ва унинг имкониятлари 2. Алгоритмик тиллар ва уларнинг афзалликлари 3. Алгоритмик тилларнинг алфавити, синтаксиси ва семантикаси 4. Алгоритмик тилларга киёсий тавсифнома 5. Бэкус-Наурнинг металингвистик формулалар тили www.arxiv.uz 1 . Э Х М н и н г « м а ш и н а т и л и » в а у н и н г и м к о н и я т л а р и Маълумки ЭХМлари берилган алгоритмларни формал бажарувчи автомат щисобланади, шунинг учун бирор масалани ЭХМда ечишда унга мос алгоритмни бериш зарур. Алгоритмни ЭХМга узатишда эса уни махсус «машина тили»га угириб машина кодида ёзилган программага айлантирилади. Шу билан бир каторда ЭХМнинг турли хил типлари турлича тилларга эга булади, яъни бирор ЭХМ учун ёзилган программа бошка ЭХМ учун тушунарсиз булиши мумкин. Шундай килиб, щар бир ЭХМ факат узининг «машина тили»да ёзилган программаларнигина тушуниши ва бажариши мумкин. Машина кодида ёзилган программаларнинг куриниш сифати жуда камба\алдир, чунки бу программалар факат 0 ва 1 ларнинг махсус кетма- кетлигидан ташкил топади. Бу эса мутахассис булмаган одамга тушунарсиз булиб, программа тузишда нокулайликлар келтириб чикаради. Айтиб утилганлардан шуни хулоса килиш мумкинки, машина тилидан фойдаланиш одам учун уни кизиктирган, яъни ечиши лозим булган масаланинг алгоритмини ишлаб чикишда ва ёзишда жуда катта кийинчиликлар ва муаммолар ту\диради. 2 . А л г о р и т м и к т и л л а р в а у л а р н и н г а ф з а л л и к л а р и Юкорида айтиб утилган кийинчиликларни бартараф килиш, дастурчининг ишини осонлаштириш ва яратилган программаларнинг ишончлилик даражасини ошириш максадида юкори даражадаги программалаш тиллари ёки алгоритмик тиллар яратилган. Алгоритмик тилларнинг машина тилларидан асосий фарклари сифатида куйидагиларни курсатиш мумкин: машина тили алфавитидан алгоритмик тил алфавитининг ута кенглиги - тузилган программа матнининг куриниш сифатини кескин оширади; www.arxiv.uz ишлатилиши мумкин булган амаллар мажмуи машина амаллари мажмуига бо\лик эмас; бажариладиган амаллар одам учун кулай куринишда, яъни амалда кабул килинган математик белгилашларда берилади; амаллар операндлари учун дастурчи томонидан бериладиган шахсий исмлар куйиш мумкинлиги; машина учун кузда тутилган маълумот типларидан ташкари янги типлар киритиш имконияти яратилганлиги. Шундай килиб, кайсидир маънода айтиш мумкинки, алгоритмик тиллар машина тилига бо\лик эмас. Юкорида айтилганлардан келиб чиккан щолда маълум булдики, алгоритмик тилда ёзилган масала ечимининг алгоритми ту\ридан-ту\ри ЭХМда бажарилиши мумкин эмас экан. Бунинг учун эса, алгоритм олдиндан ишлатилаётган ЭХМнинг машина тилига транслятор (компилятор ёки интерпретатор) ёрдамида угирилиши лозим. Транслятор - машина тилида ёзилган махсус программа булиб, унинг асосий максади алгоритмик тилларда ёзилган программа матнини ЭХМ тилига таржима килишдан иборатдир. Амалда программалашда фойдаланилаётган алгоритмик тиллар уз маъносига кура алгоритмни сузли-формулали ёзиш услубига ухшаб кетади, яъни маълум бир кисм курсатмалар оддий математик формулалар, бошка кисмлар эса сузлар ёрдамида ифодаланиши мумкин. Мисол сифатида n ва m натурал сонларнинг энг катта умумий булувчиси( ЭКУБ )ни топиш алгоритмини куриб чикайлик: A n , B  m дейлик Агар А  В булса 5-пунктга, акс щолда 3-пунктга ут. Агар А> B булса А нинг янги киймати деб А-В ни кабул кил, В ни кийматини узгартирма; акс щолда В нинг янги киймати деб В-А ни кабул кил, А ни кийматини узгартирма. 2-пунктга ут. ЭКУБ  А ва щисобни тухтат. www.arxiv.uz Ушбу алгоритмни кискарок куринишда куйидагича ифодалашимиз щам мумкин: A n, B  m дейлик ; Агар А> B булса А  А-В акс щолда В  В-А, А  В булгунча 2-пунктни такрорла. ЭКУБ  А ва щисобни тухтат. Ушбу мисолдан куриниб турибдики алгоритмларнинг бундай ёзиш услуби одам учун щам кулай ва щам тушунарлидир. Лекин бу услубда щам маълум камчиликлар кузга ташланади:  алгоритмни ортикча куп сузли ва узун дейиш мумкин;  бир хил маънодаги курсатмани турли хил услубларда бериш мумкинлиги;  бундай эркин куринишда ифодаланган алгоритмни ЭХМ тилига утказиш имконияти камлиги. 3 . А л г о р и т м и к т и л л а р н и н г а л ф а в и т и , с и н т а к с и с и в а с е м а н т и к а с и Юкоридаги каби камчиликларни бартараф килиш учун формаллашган, катъий аникланган алгоритмик тиллар ишлаб чикилган. Алгоритмик тиллар учта узакдан ташкил топади: тил алфавити, синтаксиси ва семантикаси. Тил алфавити шу тилгагина тегишли булган чекли сондаги белгилардан ташкил топади. Программа матнини ёзишда факат шу белгилардангина фойдаланиш мумкин, бошка белгиларни эса тил танимайди, яъни улардан фойдаланиш мумкин эмас. www.arxiv.uz Тил синтаксиси алфавит щарфларидан ташкил топиб, мумкин булган конструкцияларни аникловчи коидалар системасидир. Мазкур тилда ифода этилган тула алгоритм ва унинг алощида щадлари шу конструкциялар оркали ифода килинади. Шундай килиб, белгиларнинг щар кандай кетма-кетлигини, мазкур тилнинг матни ту\рилиги ёки ноту\рилигини тил синтаксиси оркали билиб оламиз. Тил семантикаси алгоритмик тилнинг айрим конструкциялари учун коидалар системасини тушунтиришга хизмат килади. Энди алгоритмик тилларнинг кайсилари амалда купрок ишлатилиши щакида фикр юритсак. Маълумки 70-йилларда бир гурущ муаммоли- йуналтирилган алгоритмик тиллар яратилган булиб, бу программалаш тилларидан фойдаланиб жуда куп сощалардаги муаммоли вазифалар щал килинган. Хисоблаш жараёнларининг алгоритмларини ифодалаш учун Алгол-60 ва Фортран тиллари, иктисодий масалалар алгоритмлари учун Кобол ва Алгэк тиллари, матнли ахборотларни тахрирлаш учун эса Снобол тиллари ишлатилган. Санаб утилган бу алгоритмик тиллар асосан катта хажмли, купчиликнинг фойдаланишига мулжалланган ЭХМлари учун мулжалланган эди. 4 . А л г о р и т м и к т и л л а р г а к и ё с и й т а в с и ф н о м а Хозирда инсоният фаолиятининг барча жабщаларига шахсий электрон щисоблаш машиналари (ШЭХМ) шахдам кадамлар билан кириб бормокда. Асосан ШЭХМларга мулжалланган, щамда мураккаб жараёнларнинг щисоб ишларини бажариш ва жуда катта маълумотлар тизими билан ишлашни ташкил этувчи янги алгоритмик тиллар синфи борган сари кенгайиб бормокда. Бу тиллар жумласига куйидаги купрок ишлатилаётган тилларни киритиш мумкин: www.arxiv.uz Бейсик тили; Паскал тили; Си тили ва щакозо. Программа тузишни урганишни бошловчиларга мулжалланган, савол- жавоб системасида ишлайдиган, турли-туман жараёнлар алгоритмини ёзишга кулай булган тиллардан бири БЕЙСИК ( BASIC ) тилидир. Бейсик тилининг номи инглиз сузи ( Beginner &#39; s All - purpose Symbolic Instruction Code ) нинг укилишига мос келиб, бошловчилар учун белгили курсатмалар коди(тили) деган маънони англатади. Бейсик тилини яратиш устидаги ишлар 1963 йилнинг ёзидан бошланган. Тилнинг ижодкорлари таникли олимлар Т.Курц ва Ж.Кемени щисобланади. Хозирга келиб Бейсик тилининг турли хил янги куринишлари ишлаб чикилмокда ва улардан фойдаланиб миллионлаб дастурчилар ажойиб программалар яратишмокда. Энди нисбатан мукаммалрок булган Паскал ва Си алгоритмик тиллари щакида кискача фикр юритсак. Паскал тили 1969 йили Н.Вирт томонидан яратилиб машщур олим Блез Паскал номи билан аталди. Бу тил Н.Виртнинг уйлаши буйича программалашнинг замонавий технологиясига ва услубига, структурали программалаш назариясига асосланган ва бошка программалаш тилларидан муайян ютукка эга тил булиши лозим эди. Мазкур тил:  Программалаштириш концепциясини ва структурасини системали ва аник ифодалайди;  Программа тузишни системали олиб бориш имконини беради;  Программа тузиш учун бой термин ва структура схемаларига эга;  Йул куйилган хатоликларни тащлил килишнинг юкори даражадаги системасига эга. 1981 йили Паскал тилининг щалкаро стандарти таклиф этилди ва IBM PC типидаги шахсий компьютерларда Паскал тилининг Borland фирмаси томонидан ишлаб чикилган Турбо-Паскал оиладош тили кенг кулланила www.arxiv.uz бошланди. Хозирда Турбо-Паскалнинг бир канча версиялари яратилиб, юкори даражадаги программалар яратиш имкониятлари борган сари кенгайтирилиб борилмокда:  4.0 версиясидан бошлаб программа ёзишни, тахрирлашни ва натижалар олишни осонлаштириш учун янги интеграллашган мущит щосил килинди;  5.5 версиясининг пайдо булиши билан Турбо-Паскалда объектли программалаш имконияти пайдо булди;  6.0 версиясидан бошлаб эса Паскал программаси ичига куйи программалаш тили булмиш Ассемблер тилида ёзилган программаларни кушиш щолати щосил килинди. Шу билан бир каторда тилнинг интеграллашган мущити щам бир катор узгаришларга эга булди. Си тили 1972 йили Д.Ричи томонидан турли хил ЭХМлар учун универсал тил сифатида ишлаб чикилган ва дастурчи программа тузиш жараёнида щисоблаш машинасининг имкониятларидан кенг фойдаланиши мумкин. Шунинг учун, бу тил барча нарсани килишга кодир деган тушунча щосил булган. Хозирда амалда фойдаланилаётган купгина операцион системалар Си тилида яратилган. 5 . Б э к у с - Н а у р н и н г м е т а л и н г в и с т и к ф о р м у л а л а р т и л и Алгоритмик тилнинг синтаксис коидаларини ёзиш ва тушунтириш, щамда ургатиш учун оралик тил лозим булади. Бу тил билан программалашнинг алгоритмик тилларини алмаштириб юбормаслик керак. Киритилиши керак булган бу тилнинг узи, аслида программалаш тилини аниклаш учун керак булади. Тилни ифодалашда Бэкус-Наурнинг металингвистик формулаларидан (БНФ) фойдаланилади. www.arxiv.uz БНФ тилида программалаш тилларининг синтаксиси ихчам ва формулалар куринишида аникланади. Бу формулалар оддий арифметик формулаларга ухшаб кетади, шунинг учун щам, уларни металингвистик формулалар (кискача метаформула) деб аталади. Метаформуланинг унг ва чап кисмлари &#34;::к&#34; белгиси билан ажратилади, унинг маъноси &#34;аникланиши буйича шундай&#34; жумласига якинрок (русчаси &#34;это есть&#34;). Бу белгининг унг томонида мета узгарувчи, чап томонида эса мета узгарувчининг кийматлари туплами ётади. Тушунишга осон булиши учун мета узгарувчилар, ёки уларнинг кийматлари бурчак кавс (&#34;<&#34; ва &#34;>&#34;) лар ичига олиб ёзилади. Масалан <сон>, <арифметик ифода>, <оператор> ва щакозо. Мета узгарувчиларнинг мета кийматлари бир неча мумкин булган конструкциялардан ташкил топиши мумкин. Бу щолда конструкциялар узаро тик чизик (  ) билан ажратилади. Бу белги &#34;ёки&#34; сузига якинрок маънони англатади. Метаформулаларга доир куйидаги масалаларни куриб чикайлик: 1-мисол: <узгарувчи> :: к A  B <ифода>:: к <узгарувчи>  <узгарувчи> к <узгарувчи>  <узгарувчи> - <узгарувчи> бу формулада <узгарувчи> деганда А ёки В щарфлари тушунилади, <ифода> тушунчаси остида эса куйидаги 10 та щолнинг бири булиши мумкин: A, B, A к A, A к B, B к A, B к B, A - A, A - B, B - A, B - B. 2-мисол: <иккилик ракам> ::к 0  1 <иккилик код> ::к <иккилик ракам>  <иккилик код> <иккилик ракам> www.arxiv.uz бу мисолдаги метаформуланинг унг томонида аникланаётган тушунчанинг узи ётибди, бу эса метаформулаларнинг рекурсив хоссасига эга эканлигини курсатади.Мета формулаларни ёзишда &#34;{&#34;, &#34;}&#34; кавслари щам учраб туради. Бу кавс ичига олиб ёзилган конструкция такрорланувчи конструкция щисобланади. Юкорида куриб чикилган 2-мисолни куйидагича ёзсак щам булди: <иккилик ракам> ::к 0  1 иккилик код> ::к <иккилик ракам>  {<иккилик ракам>} www.arxiv.uz Ф о й д а л а н и л г а н а д а б и ё т л а р р у й х а т и : 1. Вирт Н. Алгоритмы структуры данных программы. - М.: Мир, 1985 г. 2. Абрамов В., Трифонов Н., Трифонова Г. Введение в язык Паскал. - М.: Наука, 1988 г. 3. Файсман А. Профессиональное программирование на Турбо Паскале. - Т.: &#34;Инфомэкс Корпорейшн&#34;, 1992 г. 4. Findlay W., Watt D.A., Paskal. An introduction to methodical programmin. Third edition. – London: Pitman, 1985 г . 5. Поляков Д. Б., Круглов И. Ю. Программирование в среде Турбо-Паскаль (версия 5.5): Справ.-метод. пособие. – М.: Изд-во МАИ. 1992 г. 6. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0 М., Диалог-наука, 1993 г. 7. www.intuit.uz 8. www.uzedu.uz