Корисник:РенатоТру/Појам парадигме. Шта су програмске парадигме
Појам Парадигме
уредиРеч парадигма потиче од грчке речи парадеигма, што значи "модел" или "узор". У ширем смислу, парадигма означава скуп основних претпоставки, принципа или образаца који дефинишу одређени начин размишљања, разумевања и решавања проблема. У филозофији, науци и друштвеним наукама, појам парадигме често се користи да означи основну теоријску структуру која обликује начин на који се размишља о одређеном феномену.
Када говоримо о програмирању и софтверском инжењерингу, појам "парадигма" се користи за означавање различитих приступа развоју софтверских система. Програмске парадигме дефинишу стилове, технике и методологије у развоју софтверских решења, као и начин на који програмер размишља о проблему који решава.
Програмске Парадигме
уредиПрограмске парадигме су различити стилови програмирања, односно основни приступи који дефинишу како програмери структурирају и организују код. Свака парадигма нуди свој начин размишљања о решењу проблема, управљању подацима, токовима извршења и интеракцији са рачунаром.
Програмске парадигме обухватају:
1. Императивно програмирање
У императивном програмирању, програмер пише низ инструкција које рачунару говоре како да изврши одређене задатке. Програм је низ команди које мењају стање програма. Императивне парадигме се заснивају на идеји да рачунар извршава команде које се директно односе на промене стања система.
Примери језика: C, C++, Јава, Пyтхон (у императивном стилу)
Основни принципи: Промена стања, секвенцијално извршавање, петље, гранање
2. Декларативно програмирање
У декларативном програмирању, програмер описује шта треба да се уради, а не како то да се уради. У овом приступу, програмер се фокусира на описивање резултата, а не на тачне кораке за постизање тог резултата. Рачунар је одговоран за одлучивање о начину имплементације решења.
Примери језика: СQЛ (за рад са базама података), ХТМЛ (за описивање структуре wеб страница)
Основни принципи: Описивање циљева, апстракција од имплементације
3. Објектно-оријентисано програмирање (ООП)
Објектно-оријентисано програмирање темељи се на организацији кода у облике познате као објекти. Објекти су ентитети који садрже податке и функционалности које се односе на те податке. ООП се фокусира на креирање објеката који комуницирају путем метода и интеракција.
Примери језика: Јава, C++, Пyтхон (у ООП стилу)
Основни принципи: Енкапсулација, апстракција , полиморфизам, наслеђивање
4. Функционално програмирање
Функционално програмирање (ФП) је парадигма у којој су функције основни грађевински блокови програма. Функције су непроменљиве (не мењају стање система), а програмирање је засновано на апликацији функција на податке. У ФП, функције се могу третирати као грађевински блокови и могу се користити као аргументи других функција или као повратне вредности.
Примери језика: Хаскелл, Лисп, Сцала (у ФП стилу), Елиxир
Основни принципи: Не-промене стања, висока апстракција, функције као објекти прве класе
5. Логичко програмирање
У логичком програмирању, програми се изражавају у форми логичких исказа. Рачунар користи правила логике (обично у форми предиката) како би развео закључке из дефинисаних чињеница и правила. Логичко програмирање је засновано на математичкој логици, где програмери дефинишу чињенице и правила, а рачунар изводи закључке.
Примери језика: Пролог
Основни принципи: Користи логику, решавање проблема кроз претрагу
6. Реактивно програмирање
Реактивно програмирање је парадигма која се користи за стварање апликација које реагују на промене у спољним подацима или догађајима у реалном времену. У овој парадигми, ток података и зависности између објеката се моделују као токови података или реакције на промене.
Примери језика: РxЈава, ЈаваСцрипт (уз библиотеке као што је РxЈС)
Основни принципи: Реакција на промене података, асинхроно програмирање