Поделби на програмските јазици


Најчесто се користат две поделби на програмските јазици: 

- според начинот на пресметување 
- според областа на примена 

1. Поделба според начинот на пресметување:
 - императивни програмски јазици 
- декларативни програмски јазици 

влезни податоци → наредби → резултати

Во програмите напишани во императивни програмски јазици проблемите се решаваат т.ш. се потенцира како компјутерот ќе ги изврши пресметувањата, а кај програмите напишани на декларативен програмски јазик се потенцира што ќе пресмета. 
Како треба операции - императивни јазици
Што треба ( резултати) - декларативни јазици

Императивни програмски јазици Императивен доаѓа од зборот imperare што значи наредува. Затоа се нарекувааат и наредбени јазици. Составени се од наредби со кои се менуваат вредностите на податоците.
Во нив спаѓаат: fortran, cobol, basic, pascal, modula, c, ada.

 Се делат на: 

- процедурални  (Basic, FORTRAN, Pascal, C, Ada, Modula, и др
- објектно ориентирани (C++, Java, C#, Delphi, Simula, и др.)

Со процедуралните јазици програмите се пишуваат според постапката која е опишана со избраната метода/процедура за решавање на задачата. Притоа се користат техники на т.н. структурно програмирање со кое задачата се дели на помали и поедноставни задачи. За секоја задача се користи соодветна метода за решавање со која од почетните влезни податоци преку аритметички и логички пресметувања се добиваат крајните резултати. 
Една иста метода може да се примени на различни влезни податоци. Затоа велиме дека во процедуралните јазици методите и податоците се разделени.
Пр. Ако радиус на кругот е 17 цм, со пресметување на плиштина на круг r 2 Pi се добива неговата плоштина, но ако 17 се годините на некој ученик (r 2 Pi) со истата метода, резултатот нема никаква смисла. 

Овој недостаток е решен со објектно – ориентираните јазици. Во нив секој објект (ученик, триаголник, автомобил, брод) има свои методи кои може да се применат на неговите податоци. 
Кај објектно-ориентираните јазици, техниките на програмирање можат да вклучуваат и карактеристики како што се криење на информации, податочна абстракција, модуларност, полиморфизам и наследување. ООП не беше често користен во развојот на апликации се до 1990-те години. Многу од модерните програмски јазици сега подржуваат ООП (Објектно-Ориентирано Програмирање).

Во процедуралните јазици процедурите со кои се обработуваат податоците се одвоени, додека кај објектно−ориентираните јазици процедурите се скриени во самите објекти.

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

Се делат на: 
- функциски 
- логички 

Програмите во функциските јазици претставуваат функција (или повеќе функции) составена од попрости функции. Една функција може да повикува друга, а резултатот од функцијата може да се користи како аргумент во друга функција. Главна карактеристика е тоа што се користат изрази и функции, за разлика од императивните јазици кои користат наредби и процедури. 
Попознати функциски јазици се Miranda, Haskell, Lisp, Scheme, ML и други.
Пр. Функцијата F со аргументи Х и У во lisp се претставува со(F X Y). Основните елементи кои се користат во lisp се наречени листи и атоми. 
Логичките јазици се наменети за решавање на проблеми од вештачката интелегенција. Ги користат принципите на т.н. формална логика каде се задава множество на тврдења (аксиоми) и правила на заклучување. Со примена на правилата на заклучување врз тврдењата се доаѓа до одговорот на поставената задача, односно се генерираат нови тврдења и правила на заклучување. Најпознат програмски јазик е prolog. Во него тврдењето „Ивица е пријател на Марица“ се запишува: Prijatel(Ivica, Marica). 


2. Поделба според областа на примена 
Со еден програмски јазик не може да се изразат решенијата на проблеми од различни области. Пр. Во техничките проблеми има голем број на математичкии пресметувања, а во економските опишување и табелирање. 
- деловни апликации
 - научни апликации 
- системски софтвер 
- компјутерска комуникација 
- вештачка интелегенција
 - специјална намена 

 Класификација на вишите програмски јазици според областа на примена









No comments: