Укратко о мени

Зовем се Петар Влаховић. Завршио сам средњу електротехничку школу „Никола Тесла” и тренутно сам студент прве године Високе школе електротехнике и рачунарства. Волим да путујем и проводим време са људима које волим. Слободно време често проводим за рачунаром.
Теме из области информационих технологија које су ме највише заинтересовале
Највише ме интересује креирање апликација. Посебно ме занима логика иза њиховог видљивог дела.
Програмски језици
Садржај:
- Увод
- Шта је програмски језик?
- Машински језик
- Асемблерски језик
- Програмски језици вишег нивоа
- Објектно оријентисани језици
- Језици четврте генерације
- Језици пете генерације
- Најпопуларнији прогмаски језици
- Закључак
- Литература
Увод
У овом раду ћу Вам помоћи да јасније разумете развој програмских језика кроз генерације и даћу Вам тачну информацију о томе који је програмски језик тренутно најпопуларнији.
Шта је програмски језик?
Програмски језик је скуп правила којих се треба придржавати да би се успешно успоставила интеракција са рачунаром. Сваки програмски језик је другачији јер сваки има јединствену синтаксу за писање.
Синтакса је скуп симбола и правила за употребу симбола при изради програма на том језику.
Програмски језици се могу поделити на 6 генерација:
- Машински језик (најнижи ниво)
- Асемблерски језици (прелаз ка вишим језицима)
- Програмски језици вишег нивоа
- Објектно оријентисани језици
- Језици четврте генерације
- Језици пете генерације
Машински језик
Машински језик је основни језик рачунара. Рачунар га директно разуме и он je једини језик који хардвер може извршити.
Сваки програмски језик мора да се преведе у њега да би програм радио.
Рачунари и њихови процесори раде на струју па се зато kористе само 0 и 1 за представљање инструкција.
0 – искључено
1 – укључено
Програмирање и налажење грешака на машинском језику је било скоро немогуће па се баш због тога појављује следећа генерација програмских језика.
Асемблерски језик
Пошто машински језик није читљив људима, измишљен је асемблерски језик. Асемблерски језик користи „мнемонички код” (код који људи разумеју и који је лакше запамтити за разлику од бинарног), он тачно одређује и задаје задатке процесору. За превођење асемблерског језика користи се асемблер.
Мењао се кроз пет генерација:
- Вакумске цеви (1940-1950)
- Транзистори (1950-1960)
- Интегрисана кола (1960-1970)
- Микропроцесори (1970-1980)
- Паралелно процесирање (1980-данас)

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

Објектно оријентисани језици
Објектно оријентисани језици се састоје од класа, објеката, апстракције, енкапсулације, наслеђивања и полиморфизма.
Објекат је конкретан пример класе нпр. BMW плаве боје са 5 врата. Класа је шаблон по коме се попуњавају подаци нпр. која је марка, које је боје, колико врата има.
Енкапсулације су нивои заштите:
-Public служи да би нека функција била доступна било где у програму
-Protected се користи када хоћемо да нека функција буде доступна само у класи и њеним изведеним класама
-Private користимо када желимо да нам одређена функција буде доступна само унутар класе
Апстракција служи да би поједноставила програмирање, некада без апстракције би за обичан испис неке речи требало би да напишемо 50 линија кода а данас једну.
На дијаграму испод (слика 3) можемо видети класу Ауто која је родитељска класа и три подкласе. Овај дијаграм приказује хијерархију наслеђивања. Наслеђивање је процес разврставања где од класе Ауто правимо детаљније врсте као што су BMW, Audi, Mercedes.

Када имамо једну главну родитељску класу и више подкласа ми користимо полиморфизам који нам омогућава да позивамо једну функцију за исте ствари. У нашем примеру са аутомобилима моземо да имамо у класи Ауто функцију укључи и да је користимо за објекте подкласа нпр. када правимо објекат за подкласу BMW можемо да позовемо функцију укључи. Свака подкласа може ту функцију да изврши на свој начин нпр један ауто се пали на кључ а други на дугме.
Језици четврте генерације
У односу на претходну генерацију језици четврте генерације су прављени да тако да обезбеде већи ниво апстракције. Њихов циљ је да буду више програмерски оријентисани и они се најчешће користе за рад са базама података.
Најпознатији језик четврте генерације је SQL (Structured Query Language).
Уместо да се пише сложени код за претрагу датотека у SQL напишемо само једну реченицу и језик ће сам одрадити цео посао и исписати тражене податке.

Језици пете генерације
За њих није потребан програмер да програмира већ да се брине о проблемима који треба да се реше и да прати да ли су услови испуњени. Они се најчешће користе у истраживањима вештачке интелигенције. Неки од примера пете генерације су језици Пролог, ОПС5 и Меркур. Највећа мана је смишљање ефикасних алгоритама. Тај део још увек није аутоматизован и потребан је увид програмера.
Најпопуларнији прогмаски језици

Закључак
Будућност програмирања ће се кретати према развоју логике. Циљ је да програмски језици постану све сличнији људском говору. Вештачка интелигенција ће писати линије кода уместо нас, људи ће бити архитекте који управљају тим кодом и баш зато је кључно знати како рачунар размишља.
Литература
- https://holistic-digital.com/blog/programski-jezici
- https://www.secondtalent.com/resources/top-programming-usage-statistics
- https://raf.edu.rs/citaliste/clanci/programiranje/istorijski-razvoj-programskih-jezika
- https://www.geeksforgeeks.org/computer-organization-architecture/what-is-assembly-language
- https://sr.wikipedia.org/wiki/Програмски_језик_високог_нивоа
- https://cubes.edu.rs/programiranje/sta-je-objektno-orijentisano-programiranje
- https://sr.wikipedia.org/wiki/Програмски_језици_четврте_генерације
- https://sr.wikipedia.org/sr-ec/Програмски_језици_пете_генерације
Оставите одговор