2-маъруза: Алгоритмик тилларнинг умумий тавсифи ва металингвистик формулалар тили.
Режа:
ЭЩМнинг «машина тили» ва унинг имкониятлари;
Алгоритмик тиллар ва уларнинг афзалликлари;
Алгоритмик тилларнинг алфавити, синтаксиси ва семантикаси;
Алгоритмик тилларга =иёсий тавсифнома;
Бэкус-Наурнинг металингвистик формулалар тили.
1. ЭЩМнинг «машина тили» ва унинг имкониятлари
Маълумки ЭЩМлари берилган алгоритмларни формал бажарувчи автомат щисобланади, шунинг учун бирор масалани ЭЩМда ечишда унга мос алгоритмни бериш зарур. Алгоритмни ЭЩМга узатишда эса уни махсус «машина тили»га ыгириб машина кодида ёзилган программага айлантирилади. Шу билан бир =аторда ЭЩМнинг турли хил типлари турлича тилларга эга былади, яъни бирор ЭЩМ учун ёзилган программа бош=а ЭЩМ учун тушунарсиз былиши мумкин. Шундай =илиб, щар бир ЭЩМ фа=ат ызининг «машина тили»да ёзилган программаларнигина тушуниши ва бажариши мумкин.
Машина кодида ёзилган программаларнинг кыриниш сифати жуда камба\алдир, чунки бу программалар фа=ат 0 ва 1 ларнинг махсус кетма-кетлигидан ташкил топади. Бу эса мутахассис былмаган одамга тушунарсиз былиб, программа тузишда но=улайликлар келтириб чи=аради.
Айтиб ытилганлардан шуни хулоса =илиш мумкинки, машина тилидан фойдаланиш одам учун уни =изи=тирган, яъни ечиши лозим былган масаланинг алгоритмини ишлаб чи=ишда ва ёзишда жуда катта =ийинчиликлар ва муаммолар ту\диради.
2. Алгоритмик тиллар ва уларнинг афзалликлари
Ю=орида айтиб ытилган =ийинчиликларни бартараф =илиш, дастурчининг ишини осонлаштириш ва яратилган программаларнинг ишончлилик даражасини ошириш ма=садида ю=ори даражадаги программалаш тиллари ёки алгоритмик тиллар яратилган.
Алгоритмик тилларнинг машина тилларидан асосий фар=лари сифатида =уйидагиларни кырсатиш мумкин:
машина тили алфавитидан алгоритмик тил алфавитининг ыта кенглиги - тузилган программа матнининг кыриниш сифатини кескин оширади;
ишлатилиши мумкин былган амаллар мажмуи машина амаллари мажмуига бо\ли= эмас;
бажариладиган амаллар одам учун =улай кыринишда, яъни амалда =абул =илинган математик белгилашларда берилади;
амаллар операндлари учун дастурчи томонидан бериладиган шахсий исмлар =ыйиш мумкинлиги;
машина учун кызда тутилган маълумот типларидан таш=ари янги типлар киритиш имконияти яратилганлиги.
Шундай =илиб, =айсидир маънода айтиш мумкинки, алгоритмик тиллар машина тилига бо\ли= эмас.
Ю=орида айтилганлардан келиб чи==ан щолда маълум былдики, алгоритмик тилда ёзилган масала ечимининг алгоритми ты\ридан-ты\ри ЭЩМда бажарилиши мумкин эмас экан. Бунинг учун эса, алгоритм олдиндан ишлатилаётган ЭЩМнинг машина тилига транслятор (компилятор ёки интерпретатор) ёрдамида ыгирилиши лозим. Транслятор - машина тилида ёзилган махсус программа былиб, унинг асосий ма=сади алгоритмик тилларда ёзилган программа матнини ЭЩМ тилига таржима =илишдан иборатдир.
Амалда программалашда фойдаланилаётган алгоритмик тиллар ыз маъносига кыра алгоритмни сызли-формулали ёзиш услубига ыхшаб кетади, яъни маълум бир =исм кырсатмалар оддий математик формулалар, бош=а =исмлар эса сызлар ёрдамида ифодаланиши мумкин. Мисол сифатида n ва m натурал сонларнинг энг катта умумий былувчиси(ЭКУБ)ни топиш алгоритмини кыриб чи=айлик:
An, Bm дейлик
Агар АВ былса 5-пунктга, акс щолда 3-пунктга ыт.
Агар А>B былса А нинг янги =иймати деб А-В ни =абул =ил, В ни =ийматини ызгартирма; акс щолда В нинг янги =иймати деб В-А ни =абул =ил, А ни =ийматини ызгартирма.
2-пунктга ыт.
ЭКУБА ва щисобни тыхтат.
Ушбу алгоритмни =ис=аро= кыринишда =уйидагича ифодалашимиз щам мумкин:
An, Bm дейлик;
Агар А>B былса АА-В акс щолда ВВ-А, АВ былгунча 2-пунктни такрорла.
ЭКУБА ва щисобни тыхтат.
Ушбу мисолдан кыриниб турибдики алгоритмларнинг бундай ёзиш услуби одам учун щам =улай ва щам тушунарлидир. Лекин бу услубда щам маълум камчиликлар кызга ташланади:
алгоритмни орти=ча кып сызли ва узун дейиш мумкин;
бир хил маънодаги кырсатмани турли хил услубларда бериш мумкинлиги;
бундай эркин кыринишда ифодаланган алгоритмни ЭЩМ тилига ытказиш имконияти камлиги.
Do'stlaringiz bilan baham: |