Процес који води од оригиналне формулације рачунарског проблема до извршних рачунарских програма From Wikipedia, the free encyclopedia
Програмирање је термин под којим се најчешће подразумева креирање рачунарских програма, што укључује детаљну теоријску разраду проблема, налажење концептуалног решења и имплементацију коришћењем неког од програмских језика. Програмер је специјалиста за програмирање, односно креирање рачунарских програма.[1] Појам програмирање, међутим, обухвата и све остале процесе чији је циљ аутоматизовање решавања одређеног типа проблема, па тако постоји програмирање за телевизијске уређаје, веш-машине, мобилне телефоне, као и математичко програмирање и др. У најопштијем смислу програмирање значи дефинисање низа корака који се обављају један за другим у циљу извршења одређеног задатка.
Рачунарско програмирање је поступак дизајнирања и изградње извршног рачунарског програма за постизање одређеног рачунарског резултата или за извршавање одређеног задатка. Програмирање укључује задатке као што су: анализа, генерисање алгоритама, профилисање алгоритамске тачности и потрошње ресурса, и имплементација алгоритама на изабраном програмском језику (обично се назива кодирање).[2][3] Изворни код програма написан је на једном или више језика који су програмерима разумљиви, а не на машинском коду, који директно извршава централна процесорска јединица. Сврха програмирања је да се пронађе низ упутстава која ће аутоматизовати извођење задатка (који може бити сложен као оперативни систем) на рачунару, често за решавање датог проблема. Вешто програмирање стога често захтева стручност из неколико различитих предмета, укључујући знање из апликационог домена, специјализоване алгоритме и формалну логику.
Задаци који прате и односе се на програмирање укључују: тестирање, отклањање грешака, одржавање изворног кода, имплементацију система изградње и управљање изведеним артефактима, као што је машински код рачунарских програма. Они се могу сматрати делом процеса програмирања, али често се термин развој софтвера користи за овај шири процес, а термин програмирање, имплементација или кодирање резервисан је за стварно писање кода. Софтверски инжењеринг комбинује инжењерске технике са праксама развоја софтвера. Реверзни инжењеринг је сродни процес који користе дизајнери, аналитичари и програмери да би разумели и поново креирали/поново применили програм.[4]
У мањим развојним пројектима фазе креирања програма нису одвојене и изводе се синхроно - реализација зависи од концепције и обратно. У већим развојним пројектима су те фазе јасно одвојене. Фаза израде концепта се у тим случајевима назива дизајн, а реализације имплементација. Програмерима се тада, када су циљеви и методе реализације у претходној фази (дизајну и спецификацији) прецизно одређени, даје мање слободе при имплементацији и његова креативност се заснива првенствено на проналажењу најбољих и најефикаснијих алгоритама и метода реализације појединих задатака (израде компоненти), као и оптимизацији рада тих компоненти.
Програм се обично реализује у једном програмском језику. У њему програмер формулише алгоритме. При томе га све више подржавају генератори кода који на бази модела (производ фазе концепције) аутоматски производе изворни код.
Квалитетно програмирање се одликује ефикасним искориштавањем могућности програмског окружења. Првенствено се тежи ка употреби већ урађених (и проверених) софтверских компоненти (библиотека) а не изналажењу већ постојећих решења. Добар програмер се истиче подробним знањем датог програмског окружења (све компоненте потребне при раду и изради програма), брзим налажењем потребних функција при реализовању датог пројекта као и способношћу апстрактне анализе задатих проблема и њиховим представљањем у облику модела или алгоритама.
Сваки програмер пише програмски код у неком програмском језику. Различити програмски језици подржавају различите стилове програмирања (програмска парадигма). Различити програмски језици захтевају различите нивое знања, умећа и детаља које програмер треба да поседује.
Једини програмски језик који рачунар може директно извршавати је машински језик (машински код или бинарни код). У почецима рачунарства програмери су писали у машинском коду, што је било врло компликовано и заморно. Следећи корак у развоју рачунарског програмирања огледа се у употреби симболичких језика, познатих под заједничким називом асемблер. Асемблерски језици састоје се од једноставних инструкција које се директно и једнозначно могу превести у машински код који се директно извршава. Иако много погодније и од машинског програмирања, асемблерско програмирање карактерише велика количина посла коју програмер мора обавити, због чињенице да су операције и даље елементарне. Због тога су стручњаци створили програмске језике вишег нивоа помоћу којих се пише изворни код који се у машински код преводи посредством специјалних програма - преводилаца чији је задатак да преведе код вишег програмског језика у машински код тзв. интерпретер и компајлер.
При изради сваког програма потребно је проћи кроз 4 основне фазе или корака:
Први корак у изради рачунарског програма је анализа потреба, разматрање ситуације и проблем који треба решити дефинисати преко једначина, услова и кроз тзв. псеудо алгоритам. Програмеру мора бити јасно како ће се дешавати промене, зависности, узроци и последице, да би све то пренео и прецизирао кроз програмски код. Све мора бити математички прецизирано. Код једноставнијих програма овај део је у домену усмене анализе, док се код сложенијих програма овај део ради у писаној и симболичкој форми уз уредно документирање свих промена (овај део спада у домен софтверског инжењерства).
Реч алгоритам потиче од имена арапског математичара Џазиријаја који се сматра творцем алгоритма као скупом прецизно дефинисаних правила за извршавање аритметичких операција.[5][6] Алгоритам је процедура (поступак) са скупом јасно дефинисаних корака који недвосмислено воде ка решењу проблема. Сваки алгоритам мора испоштовати 5 основних законитости алгоритма:
Након завршетка алгоритма, приступа се писању програмског кода на папиру. У овом кораку се сваки корак алгоритма преводи у одговарајућу команду у програмском језику у којем се пише.
Када су извршене све (аналитичке) припреме и ручно исписан код потребно га је унети у рачунар прилагођавајући програмском алату у којем ће се програм тестирати и извршавати. Сваки програмски језик има свој едитор који омогућује унос програмског кода тзв. Изворни код уз контролу исправности исписа кључних речи и синтаксе уопће. Уз едитор у сваком програмском алату налази се и интерпретер који омогућава тестирање сваке линије кода или кода у целини како би се благовремено отклониле евентуалне грешке у синтакси или дефинисаним варијаблама, димензионисању варијабли и сл. Након уноса комплетног програма у рачунар програм се треба покренути да би се видело да ли ради. Програм се треба више пута покренути да би се видело да ли програм ради за различите улазне вредности, а ово подразумева и све граничне вредности.
Алгоритамске структуре се деле у три основне групе:
Пример алгоритма када није познат коначан број итерација са провером на почетку петље | |||
---|---|---|---|
Пример у Бејзику | Пример у Ц-у | ||
Код провере истинитости на улазу у петљу постоји могућност да се не изврши ни једно понављање. Разлог је једноставан, ако услов није испуњен одмах се „прескаче” на следећу линију изван петље. За ову врсту петље у већини програма се користи кључна реч прилагођена синтакси програмског језика. |
zbir = 0 WHILE zbir < 200 INPUT a zbir = zbir + a WEND PRINT zbir END |
#include <stdio.h> void main() { int a, zbir = 0; while (zbir < 200) { scanf("%d", &a); zbir += a; } printf("%d\n", zbir); } |
|
Пример алгоритма када није познат коначан број итерација са провером на крају петље | |||
Пример у Бејзику | Пример у Ц-у | ||
Код провере истинитости на крају петље, не постоји могућност да се не изврши ни једно понављање. Разлог је једноставан, провера се врши у последњем реду блока изворног кода, те се мора проћи барем једанпут кроз читав блок. За ову врсту петље у већини програма се користи кључна реч „DO..WHILE” прилагођена синтакси програмског језика. |
zbir = 0 DO INPUT a zbir = zbir + a WHILE (zbir < 200) PRINT zbir END |
#include <stdio.h> void main() { int a, zbir = 0; do { scanf("%d", &a); zbir += a; } while (zbir < 200); printf("%d\n", zbir); } |
Економским концептима се даље бави софтверско инжењерство.
Стварање неког програма укључује:
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.