§ 1.6. Программалаш тиллари ва технологиялари
Программалаш тиллари сунъий тиллар ҳисобланади, уларда синтаксис ва семантик қоидалар қатъий аниқланган бўлади. Шу сабабли Программалаш тиллари табиий тиллардан фарқли равишда жумлаларни кўпмазмунли ва эркин талқин этишга йўл қўймайди. Бунинг асосий сабаби тилдаги хар бир кўрсатма машина тилидаги аниқ бир буйруққа ўтади.
Синтаксис-бу қоидалар тўплами бўлиб, Программалаш тилида рухсат этилган белгиларнинг кетма-кетлиги ва асосий ички тузилишни аниқлайди.
Семантика-тил бирликларига (сўз, сўз бирикмалари, жумлаларига) бериладиган қийматлардир.
ЭҲМлар энди юзага келган пайтда программа тузишда, фақат машина тилларида, яъни сонлар ёрдамида ЭҲМ бажариши керак бўлган амалларнинг кодларида киритилган. Бу ҳолда машина учун тушинарли саноқ, системаси сифатида 2 лик, 6 лик, 8 лик саноқ системалари бўлган. Программа мазкур саноқ системасидаги сонлар воситасида киритилган.
Юқори босқичли программалашда, машина тилларига қараганда машинага мослашган (йўналтирилган) белгили кодлардаги тиллар ҳисобланади. Белгилар кодлаштирилган тилларнинг асосий тамойиллари шундаки, унда машина кодлари уларга мос белгилар билан белгиланади, ҳамда хотирани автоматик тақсимлаш ва хатоларни ташҳис қилиш киритилган. Бундай машина мослашган тил - АССЕМБЛЕР тили номини олди.
ЭҲМ фақат машина тилини-буйруқлар, операнд ва сонларнинг иккилик санок, системасидаги кўринишини «тушинади». Шу сабабли, Ассемблер тилида ёзилган программалар учун уларни машина тилига ўтказувчи «таржимон» керак бўлади.
Ассемблер тилидаги программани машина тилига ўтказувчи махсус программа транслятор дейилади, айрим ҳолларда уни ассемблер деб ҳам аташади.
Машинага мослашган тилларнинг асосий камчилиги бир турдаги машина учун тузилган программа бошқа машиналарда бажарилмайди, яъни бундай тиллар машинанинг аппарат тузилишига боғлиқ қилиб яратилади. Масалан, Правец машинаси учун тузилган программа IBM ёки YАМАНА туридаги машиналар учун ўтмайди ва аксинча.
Программалаш тилларининг кейинги босқичида процедурали тиллар жойлашади. Бу тилларинг асосий хусусияти шундаки, уларнинг синтаксис ва семантикаси конкрет ЭҲМ (процессор) буйруқлари таркибига боғлиқ, эмас. Тузилган программани конкрет ЭҲМ га боғлашни транслятор амалга оширади.
Программанинг бошланғич матни Оператив хотирага киритилгандан кейин у трансляция қилинади. Натижада, айнан шу машина «тушинадиган» буйруқлар кетма-кетлиги ҳосил бўлади ва уларни бажариш асосида ЭҲМ масалани ечади.
Программани таржимаси ва уни бажариш жараёни икки усулда амалга оширилиши мумкин:
Биринчи усул-комплилятор деб номланувчи усулда программани ЭҲМда бажарилиши-таржима жарёни тўлиқ, тугагандан кейин амалга оширилади. Бунда таржима программасини оператив хотирада сақлаб туришга ҳожат йуқ, шу сабабли хотирани тежашга эришилади.
Иккинчи усул – интерпретация - программадаги айрим операторлар улар таржима қилинган заҳоти бажарилади, шундан кейин навбатдаги оператор таржима қилинади, бажарилади ва хоказо. Бу режимда хотирада интерпретатор программаси ҳам бўлиши керак, натижада қўшимча хотира ишлатилади ва программанинг ишлаши компиляция қилинганга нисбатан секин ишлайди. Интерпретаторнинг афзаллик томонлари программаларни созлаш пайтида кўринади, яъни йўл қўйилган хатолар тузатилиши мумкин. Компиляторда бундай имконият йук.
Процедурали тилларнинг умумий хусусиятларини кўрайлик. Бу тилларда программадаги ёзувлар умумий қабул қилинган математик ёзувларга жуда яқин ва тушуниш учун енгилдир. Масалан, 7 ва 5 сонларинг йиғиндисини ҳисоблаш амалини программалаш тилларида ёзилишини кўрайлик:
машина тилида
Буйруқ
|
Операнд адреси
|
0011 1111
|
1101 0001
|
0000 0101
|
1101 0010
|
0000 0110
|
1101 00111
|
0000 0111
|
1101 0100
|
1000 0000
|
1101 0101
|
2) машинага мослашган тилда
МОV А, 7
МОV В, 5
ADD В
процедурали тилларда А75.
Кўриниб турибдики, процедурали тиллардаги ёзув табиий ёзувга яқин.
Биринчилар қаторида юзага келган процедурали тиллар ичида FORTRAN (FORmula ТRANslаtion - формулаларни бошқа кўринишга айлантириш). Ўзининг содда тузилиши, самарали трансляцияланиши бу тилни нафақат шу кунгача сақланиб қолишига сабаб бўлди, балки унинг илмий тадкдқот, инженер-техник масалаларини ечишда энг самарали тил сифатида ривожланиб, кенг тарқалишига сабаб бўлди.
Фортран тили Бейсик тилининг асосига қўйилди. Бейсик сўзи инглизча «ВАSIC-Веginners Аll-purpose Symbolic Instruction Соdе» маънони англатади. Бу жумла қуйидагича таржима килинади: бошловчилар учун кўпмақсадли белгили буйруқлар тили.
Бейсик тили мутахассис бўлмаган одамларни программалаш технологияларига жалб қилиш имкониятини берди. Бейсик тилида программа операторларининг камлиги, тузилишининг соддалиги уни программалашга ўргатиш тили сифатида кенг тарқалишига сабаб бўлди. Бу тил асосан мактабларда ўргатилади.
Алгол-60 тили Фортранга нисбатан такомиллашган тил, унда тузилган программалар мослашувчанлик ва юқори ишончлилик хусусиятлари билан характерланади.
Пролог ва Лисп тиллари сунъий тафаккур соҳасидаги масалаларни ечишга мослашган. Бу тиллар белгили берилганларни қайта-ишлаш орқали математика ва мантиқий масалаларни ечишга энг қулай тиллардир.
1971 йилда пайдо бўлган Паскал тили программалаш технологияларига структурали программалаш ғоясини олиб кирди. Натижада битта масала бир нечта бўлакларга бўлинган ҳолда алоҳида ечилиши ва охирида битта программага жамланиш имконияти юзага келди.
Си тили замонавий компьютерлар хусусиятларини ўзида акс эттирган ва самарали программалар яратишда Ассемблерга мурожаат қилмайдиган тил сифатида намоён бўлди. Бу тил UNIX операцион системасида ёзилган.
Айни пайтда программалаш технологиясининг истиқболли йўналишларидан бири объектга йўналтирилган программалаш тилларидир (объектно-ориентированное программирование).
Объектлар кўп ишлатиладиган программа модулларидир. Ўз навбатида объектлар иккита қисмдан ташкил топади: методлар ва ўзгарувчилар. Методлар процедура ва функциялар тўплами бўлиб, объект ишлаш алгоритмини аниқлайди. Ўзгарувчилар турли хил қийматларни қабул қилади.
Объектга мослашган программалашнинг асосий моҳияти шундаки, содда объектлардан ворислик орқали мураккаб объектлар шажарасини яратиш мумкин. Бунда бирор масалани ечиш деганда масала алгоритмига мос объектлар шажарасини қуриш тушинилади.
Объектага йўналтирилган тилларнинг яққол намунаси - бу Delphi визуал программалаш муҳитидир. Бу муҳит Турбо Паскал тили асосида яратилган бўлиб, унда программа яратиш муҳитидаги мавжуд компоненталарни лойиҳалаш асосида бўлади. Шунинг учун ҳам бош программа Ргoject дейилади. Delphiнинг яна бир муҳим хусусияти визуал программалашдир, яъни программа яратилаётган пайтда тузувчи ҳосил бўладиган программа шаклини кўриб туради ва график интерфейс ёрдамида компоненталар шаклини ўзи маъқул топган жойига қўйиши мумкин.
Visual Basic тили ҳам объектга мослашган тил ҳисобаланади ва Windowsнинг офис программаларида макрослар ёзиш учун тил сифатида ишлатилади.
Интернет учун программалар яратиш учун НТМL (Нурег Техt Маrкuр Language) 1989 йилда яратилган бўлиб, WWW саҳифаларини яратиш учун асосий тил бўлиб қолмоқда. Бу тил ёрдамида саҳифа полиграфик усулда яратишилиши мумкин, унда матн, аудио, видео, анимация ва бошқа маълумотлар жойлашиши мумкин.
Jаvа тили компьютер тармоқларида амал қиладиган программаларни яратишга мўлжалланган, яъни Java тилида ёзилган программалар глобал тармоқларда динамик рекламаларни (анимация, телетайп ленталари) глобал тармоқда жойлаштириш учун ишлатилади, Java тилининг афзаллиги шундаки, у турли операцион системаларда ҳам бирдек амал қилаверади. Java программаси бир пайтда Windows, UNIX ва Macintosh операцион системаларида ишлаши мумкин.
Қуйидаги жадвалда программалаш тиллари хақида маълумотлар келтирилган.
Тил
|
Яратилган йили
|
Муаллифлар
|
Ташкилот, фирма
|
Аdа, Ада
|
1979-80
|
Jean Ichbian
|
Cii-Honeywell (Франция)
|
Аlgol, Алгол
|
1960
|
|
International Commitee
|
АРL, АПЛ
|
1961-1962
|
Kenneth Iverson, Adin Falkoff
|
IBM
|
DELPHI, ДЕЛЬФИ
|
1995
|
|
Borland
|
ВАSIС, Бейсик
|
1964-1965
|
JohnKemeny, Thomas Kurtz
|
Dartmouth Colleje
|
С, Си
|
1972-1973
|
Dennis Ritchie
|
Bell Laboratories
|
С, Си
|
1980
|
Bjarne Strostrup
|
Bell Laboratories
|
СОВОL, Кобол
|
1959-1961
|
Grace Murray Hopper
|
|
Fort
|
1971
|
Charles H.Moore
|
|
FORTRAN, ФОРТРАН
|
1950-1958
|
John Backus
|
IBM
|
HTML
|
1989
|
Тим Бернерс-Ли
|
CERN, Женева
|
LISP, ЛИСП
|
1956-1960
|
John MCCarthy
|
|
LOGO, ЛОГО
|
1968-70
|
Seymour Papert
|
Massachusetts Institute of Techn.
|
Pascal, Паскаль
|
1967-1971
|
Niklaus Wirth
|
Federal Institute of Technology (Швейцария)
|
PL1, ПЛ1
|
1964-1966
|
|
|
PROLOG, ПРОЛОГ
|
1978
|
Алан Калмероэ
|
|
SIMULA, СИМУЛА
|
1967
|
Оле-Йохан
Дал, Кристен Нигаард
|
Норвегия ХМ
|
Java, Джава
|
1995
|
Джеймс Гослинг
|
Sun Microsystems
|
II. БОБ
Do'stlaringiz bilan baham: |