Програмски језик

Из Википедије, слободне енциклопедије

Програмски језик је вештачки језик који се може користити за контролу понашања машине, нарочито рачунара.

Програмски језици су дефинисани преко синтаксних и семантичких правила која респективно описују њихову структуру и значење. Многи програмски језици имају неку форму писаних спецификација њихове синтаксе и семантике, а неки су дефинисани једино преко званичне имплементације.

Програмски језици се користе да олакшају комуникацију са рачунаром приликом организовања и манипулације информација, али и да прецизно изразе алгоритме. Неки аутори ограничавају израз „програмски језик“ само на језике којима се могу изразити сви могући алгоритми, а понекад се користи израз „рачунарски језик“, који се односи на више ограничене вјештачке језике.

У међувремену је створено више хиљада програмских језика, и нови се стварају сваке године.

Дефиниције[уреди]

Програмски језик је било који од вјештачких језика којим је могуће дати детаљне инструкције рачунару. Те инструкције се могу извршавати директно када су уграђене у рачунар у посебном облику који је одредио произвођач, тзв. машински језик, послије једноставног процеса замјене изражене у одговарајућем асемблерском језику, или послије превођења из неког језика вишег нивоа.

Машински и асемблерски језици су језици ниског нивоа, који захтијевају од програмера да се посвети управљању свим стварима везаним за чување података и операције над њима. На другом крају налазе се језици високог нивоа, који су ближи природном језику и ослобађају програмера бриге о тим стварима, такође читљивији и далеко лакши за писање програма.

Програмски језици се, према начину описивања рада програма, дијеле на функцијске (Лисп, Ским), процедуралне (C, Паскал, Бејзик), секвенцијалне и објектно-оријентисане (Јава, Ада), структуралне (SQL) и многе друге. Програмски језици по овој подјели могу бити и мјешовити, тј. да дозвољавају различите парадигме у оквиру истог програма, те нпр. C++ дозвољава и објектно-оријентисани и процедурални приступ, штавише процедурални приступ је неопходан при дефиницији почетне тачке програма у функцији main.

Машински и асемблерски језици[уреди]

Машински језик се састоји од нумеричког кода за операције који одређени рачунар може директно извршити. Тај код је алфанумеричка серија 0 и 1, или бинарни код (бајт), који се често претвара у хексадецимални код (на бази броја 16), ради лакше читљивости и модификације. Инструкције машинских језика обично користе један број бајтова за представљање операција, сабирање на примјер, а други за представљање операнда (бројева са којима се врши операција) и/или локације за слиједећу инструкцију. Машински језик је тежак за читање и писање, пошто не личи на конвенционално математичко представљање нити на природни језик, а његов код варира од рачунара до рачунара.

Асемблерски језик је један ниво изнад машинског језика. Користи кратки мнемонички код за инструкције и омогућава програмеру да уноси имена за блокове меморије која садржи податке. Дизајниран је да омогући лако превођење у машински језик. Иако се блокови података у асемблерском језику позивају преко имена, a не преко адресе у меморији, ипак не постоји могућност софистикованог организовања сложених информација. Као и машински језик, асемблерски језик захтијева од програмера детаљно познавање рачунарске архитектуре. Користан је када су ти детаљи важни, односно приликом програмирања рачунара за интеракцију са улазним и излазним уређајима, као што су штампачи, скенери, уређаји за чување података и информација (оптички и чврсти дискови), итд.

Алгоритамски језици[уреди]

Алгоритамски језици су дизајнирани да изразе математичка и симболичка израчунавања. Њима се могу изразити алгебарске операције на сличан начин као у математици и омогућавају коришћење потпрограма у којима се пакују најчешће коришћене операције, које је могуће поново искористити.

Фортран[уреди]

Први важнији алгоритамски језик у историји програмирања је Фортран (скраћеница од енглеског „formula translation“). Дизајнирао га је тим програмера америчке компаније ИБМ, 1957. године, на чијем је челу био Џон Бакус. Дизајниран је са идејом да служи потребама научника и научних израчунавања са реалним бројевима (бројевима са покретним зарезом) као и скуповима реалних бројева организованих у један или више низова.

Алгол[уреди]

Алгол (скраћеница од енглеског израза algorithmic language - „алгоритамски језик“) је дизајнирао комитет америчких и европских научника рачунарства за сврху објављивање алгоритама, али и за рачунарска израчунавања, између 1958. и 1960. године. Алгол посједује рекурзивне потпрограме, односно процедуре које могу саме себе позивати приликом ријешавања задатог проблема, редукујући га на мањи проблем било које врсте. Новост у Алголу је блоковна структура, гдје је програм компонован од блокова и може да садржи и податке и инструкције које имају исту структуру као и сам програм. Блоковна структура је врло брзо постала стандард за конструисање масивних програма од малих компоненти.

Лисп[уреди]

Лисп (скраћеница од енглеског list processing) је развио и имплементирао Џон Макарти око 1960. године, базирајући га на математичкој теорији рекурзивних функција. Програм развијен у Лиспу је функција примијењена на податке, а не секвенца процедуралних корака, као што је случај у Фортрану и Алголу.

C[уреди]

Програмски језик C су развили Денис Ричи и Брајан Кемиган 1972. године, у АТ&Т корпорацији за програмирање оперативних система.

Развој програмских језика

Види још[уреди]

Спољашње везе[уреди]

Викиостава
Викимедијина остава има још мултимедијалних датотека везаних за: Програмски језик