Забонҳои алгоритмӣ

Печать

Барномасозӣ аз сабти барнома бевосита дар намуди фармонҳо барои компютер (дар намуди коди мошинӣ, чи тавре ки барномасозон мегӯянд) оғоз ёфта буд. Дертар барои сабуктар гардонидани барномасозӣ забони Ассемблер ихтироъ карда шуд. Ин забон имконият медиҳад, ки коди мошинӣ дар намуди рамзӣ навишта шавад. Масалан, ба барномасоз азёд донистани коди ададии амали ҷамъ лозим набуда, ба ивази ин барномасоз метавонад аз ишораи рамзии ADD истифода барад. Забони Ассемблер аз маҷмӯи фармонҳои компютери конкретӣ вобаста аст. Он барои сохтани барномаҳои хурде, ки суръати баландро талаб мекунанд, бисёр қулай аст. Лекин иҷро кардани лоиҳаҳои калон дар забони Ассемблер душвор аст.

Душвории асосӣ ин аст, ки барномаи дар Ассемблер сохташуда ба сохти компютери конкретӣ вобаста буда, ба машинаҳои дигар гузаронида намешавад. Ҳангоми мукаммал гардонидани мошина ҳамаи барномаҳои дар Ассемблер навишташударо азнав навиштан зарур мегардад.

Қариб баробари пайдошавии компютерҳо забонҳои савияи баланд, яъне забонҳои аз сохти конкретӣ вобастанабуда, пайдо шуданд. Барои иҷро намудани барномаи забони савияи баланд, онро аввал ба забони фармонҳои машина тарҷума кардан зарур аст. Барномаи махсусе, ки чунин тарҷумаро иҷро мекунад, транслятор (translator) ё ки компилятор (compiler) номида мешавад. Баъдан, барномаи тарҷумашуда бевосита бо компютер иҷро карда мешавад. Инчунин имконияти тарҷумаи барнома ба забони мобайние, ки аз сохти компютери конкретӣ вобаста нест, мавҷуд аст. Баъд, барномаи дар забони мобайнӣ навишташуда аз тарафи барномаи махсусе, ки интерпретатор ном дорад, иҷро карда мешавад. Боз, тарзе мавҷуд аст, ки порчаи иҷрошавандаи барнома аз забони мобайнӣ ба забони фармонҳои машинӣ бевосита пеш аз иҷро шуданаш тарҷума мешавад.

Забонҳои машҳуртарини компилятсияшаванда ин Си, С++, Фортран, Паскал. Забонҳои интерпретатсияшаванда асосан забонҳои объектнигаронидашуда, ба мисоли Java, Visual Basic, С#, PHP. Ҳамаи онҳо дар аввал ба забони мобайнӣ тарҷума мешаванд: барои Java ин байткоди забони Java, барои Visual Basic ва C# ин забони мобайнии Intermediate Language ё ки IL аст, ки он яке аз қисмҳои асосии платформаи “.Net”-и ширкати Microsoft мебошад. Масалан, барномаи JVM (Java Virtual Machine) – Машинаи Виртуалии Java коди дар забони Java навишташударо тарҷума карда, ба иҷро шудан омода месозад. Таърихан яке аз аввалин забонҳои савияи баланд Фортран буд. Ин забон бениҳоят бобарор баромад, он содда ва бисёр самаранок аст. То ҳозир қисми калони барномаҳои илмӣ ва муҳандисӣ дар Фортран навишта шудаанд. Бо вуҷуди ин, дар 20 соли охир барномасозон забони Си ва гурӯҳи забонҳои бо он алоқаманд: С++, Java ва C#-ро мепазиранд.

Дигар воқеаи муҳим дар таърихи забонҳои алгоритмӣ ин сохта шудани забони Алгол-60 (ALGOL-60 аз ALGOrithmic Language) мебошад. Пайдоиши забони Алгол-60 бо инкишофи муносибати сохторӣ ба барномасозӣ алоқаманд аст. Дар барномасозии сохторӣ дохили ҳамдигар ҷойгир кардани сохторҳои забон татбиқ карда мешавад. Воҳиди асосии забон оператор аст. Оператор метавонад содда ва таркибӣ бошад. Оператори таркибӣ худ аз чанд операторҳое, ки ба блок муттаҳид шудаанд, иборат аст. Забони Алгол-60 ба инкишофи забонҳои алгоритмӣ кӯмак кардааст, ворисони он забонҳои Паскал, Modula-2, Oberon, Delphi мебошанд. Ба ҳамаи ин нигоҳ накарда, забони Алгол-60 аз Фортран бадтар ҳисобида мешавад. Имконияти навиштани як зербарнома дохили дигар зербарнома, механизми нокулайи додугирифти параметрҳои зербарнома мисоли норасогиҳои ин забон ҳисобида мешаванд.

Забони Паскал ҳамчун ислоҳи Алгол-60 пайдо гашт, лекин ин забон низ носарогии муҳими Алгол-60ро соҳиб гашта буд: дохили ҳамдигар будани зербарномаҳо. Инчунин, дар шакли аввалаи забони Паскал имконияти ҷудо кардани барнома ба якчанд файл мавҷуд набуд. Ин норасогиҳо баъдан аз тарафи муаллифи он, олим ва муаллими машҳури Швейцария Никлаус Вирт дар забонҳои Modula-2 ва Oberon ислоҳ гардиданд. Дар забони ҳозира забони Паскал дар таълими барномасозӣ истифода шавад ҳам, дар барномасозии амали қариб истифода намешавад. Вориси он Delphi дар амалияи барномасозӣ барои муҳити Windows хело машҳур аст.

Аз ҳама забони бобарои барномасозӣ забони Си аст ва силсилаи забонҳои бо он алоқаманд C++, Java, C# низ мавҷуданд. Забони Си на аз тарафи олимони назария, балки бо барномасозони амалие, ки бар илова маданияти баланди математикӣ доштанд, офарида шудааст. Забон охири солҳои 60-уми асри XX сохта шуда буд. Воқеан маҳз ҳамин забон имконият дод, ки барномасоз аз Ассемблер раҳои ёбад. Масалан, қариб тамоми матни муҳити оператсионии Unix дар забони навишта шудааст ва ба шарофати ин аз компютери конкретӣ вобаста нест.

Қадру қимати асосии забони Си дар соддагӣ ва мураттабии он аст. Си аз норасогии воқеъ будани як зербарнома дар дохили дигараш фориғ аст. Дар Си ба ивази калимаи зербарнома калимаи функсия истифода мешавад ва ягон функсия дар дохили худ функсияи дигарро надорад. Тағйирёбандаҳо қатъӣ ба глобалӣ ва локалӣ ҷудо шудаанд. Ҳар як тағйирёбандаи истифодашаванда ҳатман бояд эълон гардад. Барномасозе, ки дар Си барнома месозад, ҳама вақ аниқ медонанд, ки ин барнома чи тавр иҷро мешавад. Мафҳуми ишоракунак (pointer), тағйирёбандаҳои статикӣ ва автоматики забони Си сохтори компютерҳои ҳозираро инъикос мекунанд, бинобар ин барномаҳои дар Си навишташуда барои ислоҳ қулай мебошанд.

Дар замони ҳозира қисми зиёди барномаҳо дар забонҳои Си ва С++ навишта мешаванд. Интерфейси ҳаргуна муҳити оператсионӣ (бо ном API – Application Programming Interface), яъне маҷмӯи фармонҳои системавие, ки барои созандагони барномаҳои амалӣ офарида шудаанд, дар асл маҷмӯи функсияҳо (зербарномаҳо) дар Си мебошанд. Забонҳои объектнигаронидашудаи С++, Java, C# низ дар асоси забони Си сохта шудаанд.

Добавить комментарий


Защитный код
Обновить

Произведение «OFTOB.COM» публикуется на условиях лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Непортированная.