Paradigme programiranja su teorije ili ideje koje pomažu u oblikovanju različitih jezika koje koristite za izradu softvera. Oni predstavljaju glavne karakteristike programskog jezika, diktiraju njegovo ponašanje.

Stoga je sigurno reći da je paradigma jednako važna kao i sintaksa i semantika programskog jezika. Većina popularnih programskih jezika koristi jednu od nekoliko tipova programske paradigme.

1. Imperativno programiranje

Imperativna paradigma jedan je od najranijih pristupa programiranju, koji seže još od 1950-ih. Ova se paradigma uvelike oslanja na korištenje varijabli, naredbi i procedura.

Imperativno programiranje koristi naredbe za pregled i ažuriranje varijabli, pohranjivanje stanja u programu. Kombinacija naredbi tada stvara proceduru. Apstrakcija podataka igra ključnu ulogu u predstavljanju podataka, što olakšava labavo povezivanje.

Jedan od najpopularnijih jezika koji koristi imperativnu paradigmu je C. Ovaj programski jezik podržava samo funkcionalne procedure.

Primjer imperativnog programa

#uključiti 
#uključiti

struct Kupac
{
int CustomerId;
char Broj narudžbe[20];
char Ime[30];
float OrderTotal;
};

void main ()
{
struct Kupac Ivan = {4000, "HK1001", "John Doe", 200,00};
struct Kupac Jane = {4001, "HK1002", "Jane Doe", 600,00};

memcpy (Jane. Ime, "Jane Jones", 10);

printf ("Ukupni trošak za %s broj narudžbe %s je: $%.2f",Jane. Ime, Jane. Broj narudžbe, Jane. OrderTotal);
}

Gornji C program stvara a kupac struktura. The strukturirati type je izvrstan primjer apstrakcije podataka u C.

Program pokazuje kako naredbe mogu stvoriti, ažurirati i prikazati stanje - putem Jane varijabla strukture. Sve ove naredbe nalaze se u a glavni() funkciju, što je u cjelini postupak koji navodi koliko novca kupac treba platiti za narudžbu.

Izvođenje gornjeg programa će proizvesti sljedeći izlaz na vašoj konzoli:

Ukupni trošak za broj narudžbe Jane Jones HK1002 je: 600,00 USD

2. Objektno orijentirano programiranje

Paradigma objektno orijentiranog programiranja uzela je maha 1990-ih. Ova paradigma je potomak imperativne. Međutim, objektno orijentirana paradigma pohranjuje stanje u objekte, a ne varijable.

Programski jezici koji koriste objektno orijentiranu paradigmu često bolje obrađuju složene aplikacije. Osnovne značajke paradigme su objekti, klase, enkapsulacija podataka, nasljeđivanje i polimorfizam.

Klasa je temeljna komponenta objektno orijentiranog programa. Neke klase nasljeđuju svojstva i operacije od drugih klasa. Programeri to opisuju kao odnos roditelj-dijete. Spada u kategoriju polimorfizma podtipova.

Klase sadrže alate za skrivanje i zaštitu osjetljivih podataka putem enkapsulacije. Nakon što definirate klasu, možete je koristiti za stvaranje objekata.

Tri popularnija programska jezika koja koriste objektno orijentiranu paradigmu su Java, C++ i Python.

Primjer objektno orijentiranog programa

Ova aplikacija pokazuje većinu značajki objektno orijentiranog programskog jezika, Jave. Određeni tip kupaca nasljeđuje ponašanje općenitijeg tipa. Svi korisnici implementiraju sučelje. Određeni tip kupca nadjačava metodu iz sučelja.

Datoteka Discountable.java

javnostsučelje s popustom {

javnostponištiti grandTotal (String orderNumber, dvostruko ukupno);

}

Gornji kod stvara sučelje. U Javi je sučelje još jedan primjer polimorfizma. Omogućuje entitetima koji nisu izravno povezani pristup istim svojstvima, poput ukupno metoda. Ova se aplikacija fokusira na kupce, ali klasa zaposlenika također može koristiti sučelje Discountable.

Datoteka Customer.java

javnostrazreda kupac provodi s popustom {
zaštićenint customerId;
zaštićen String customerName;
zaštićen String customerCode;

javnost Kupac() {
ovaj.customerId = 0;
ovaj.customerName = "";
ovaj.customerCode = "";
}

javnost Kupac (int customerId, String customerName, String customerCode) {
ovaj.customerId = customerId;
ovaj.customerName = CustomerName;
ovaj.customerCode = kupacCode;
}

javnostint getCustomerId() {
povratak customerId;
}
javnostponištiti setCustomerId(int customerId) {
ovaj.customerId = customerId;
}
javnost String getCustomerName() {
povratak Ime kupca;
}
javnostponištiti setCustomerName (String customerName) {
ovaj.customerName = CustomerName;
}
javnost String getCustomerCode() {
povratak kod kupca;
}

javnostponištiti setCustomerCode (String customerCode) {
ovaj.customerCode = kupacCode;
}

javnostdvostruko customerType (String customerCode) {
dvostruko popust = 0;

ako (kod kupca.toLowerCase().equals("pre")) {
popust = 0,10;
} drugoako (kod kupca.toLowerCase().equals("gen")) {
popust = 0,02;
} drugoako (korisnički kod.toLowerCase().equals("new")) {
popust = 0,05;
}
povratak popust;
}

@Override
javnostponištiti grandTotal (String orderNumber, dvostruko ukupno) {

dvostruko popust = customerType (customerCode);
dvostruko postotak popusta = ukupno * popust;
dvostruko finalTotal = ukupno - postotak popusta;

Sustav.van.println("Za "+ getCustomerName() + " broj narudžbe " + broj narudžbe + " ukupni zbroj je: $" + finalTotal);
}

}

Gornji kod stvara a kupac razreda. Ona implementira Popustljivo sučelje, zatim koristi svoju metodu za izračunavanje i prikaz ukupnog zbroja, na temelju kategorije korisnika. The zaštićen ključna riječ u kodu iznad je primjer enkapsulacije podataka; ograničava pristup podacima stvorenim kroz ovu klasu. Dakle, samo podklase (ili podređene klase) od kupac klasa će imati pristup svojim podacima.

Datoteka NewCustomer.java

javnostrazreda Novi kupac proteže Kupac {
javnost Novi kupac() {
super();
}

javnost Novi kupac(int customerId, String customerName, String customerCode) {
super(CustomerId, customerName, customerCode);
}

}

Gornji kod stvara a Novi kupac klasa koja proširuje kupac razreda. Ovaj Java klasa koristi nasljeđivanje predstavljati odnos roditelj-dijete s kupac razreda. The Novi kupac je dijete u odnosu, tako da ima pristup svim svojstvima u klasi Customer. Uvozi atribute klase Customer koristeći super() metoda.

Datoteka App.java

javnostrazreda aplikacija {
javnoststatičkiponištiti main (String[] args) {
Mušterija Jane = novi Novi kupac (4001, "Jane Jones", "novi");
Jane.grandTotal("HK1002", 600);
}
}

Gornji kod stvara izvršnu datoteku App razreda. Ova klasa stvara Customer objekt (Jane) i polimorfizmom čini Jane a Novi kupac. Konačno, generira ukupni zbroj za Janeinu narudžbu. Izvođenje gornjeg programa će generirati sljedeći izlaz u konzoli:

Za narudžbu Jane Jones broj HK1002 ukupni zbroj iznosi: 570,0 USD

3. Funkcionalno programiranje

Ključni koncepti ove paradigme su izrazi, funkcije, parametarski polimorfizam i apstrakcija podataka. Izrazi su temeljne komponente funkcija koje koriste funkcionalni programski jezici. Parametarski polimorfizam je jedan od tri tipa polimorfizma. Ovaj tip olakšava generičko programiranje kroz funkcije i tipove.

JavaScript je jedan od najpopularnijih funkcionalnih programskih jezika.

Primjer funkcionalnog programa

const Kupac = {
Identifikacijski broj: 1002,
Ime: 'Jane Jones',
Korisnički kod: 'novo'
}

const main = (korisnik, funkcija, vrijednost) => {
var total = func.apply (null, [ kupac. CustomerCode, vrijednost ]);
console.log(`${customer. Naziv} ukupno je: ${total}`);
}

const grandTotal = (korisnički kod, ukupno) => {
if (CustomerCode == "novo") {
popust = ukupno * 0,05;
mainTotal = ukupno - popust;
vrati mainTotal;
} else if (CustomerCode == "pre") {
popust = ukupno * 0,10;
mainTotal = ukupno - popust;
vrati mainTotal;
}
}

glavni (Kupac, ukupno, 600);

Gore navedeni JavaScript program ima objekt literal i dvije funkcije. Svaku od funkcija deklarira kao izraz pomoću JavaScript funkcija strelice. The glavni() funkcija je funkcija višeg reda. Potrebno je ukupno funkciju kao jedan od svojih argumenata, a zatim poziva tu funkciju. Ovo je također primjer parametarskog polimorfizma.

The ukupno() funkcija sadrži nekoliko izraza, a kupacobjekt je primjer apstrakcije podataka. Gornji program generira sljedeći izlaz u konzoli:

Ukupno Jane Jones iznosi: 570 dolara

Složenost programskih jezika

Programski jezik može utjeloviti koncepte jedne programske paradigme, ali to ne znači da je ograničen na jednu paradigmu. Mnogi popularni programski jezici (kao što su Python, Java, JavaScript i C++) su jezici s više paradigmi.

Neke programske paradigme, kao što su imperativna i objektno orijentirana paradigma, također su povezane. No, unatoč tom srodstvu, postoje neke značajne razlike.

Objektno orijentirano programiranje vs. Proceduralno programiranje: što ih čini drugačijima?

Pročitajte dalje

UdioCvrkutUdioE-mail

Povezane teme

  • Programiranje
  • Programiranje
  • Funkcionalno programiranje
  • Objektno orijentirano programiranje
  • Programski jezici

O autoru

Kadeisha Kean (Objavljen 51 članak)

Kadeisha Kean je programerka punog softvera i tehnička/tehnološka spisateljica. Ona ima izrazitu sposobnost da pojednostavi neke od najsloženijih tehnoloških koncepata; proizvodnju materijala koji svaki početnik u tehnologiji može lako razumjeti. Ona je strastvena u pisanju, razvoju zanimljivog softvera i putovanju svijetom (kroz dokumentarne filmove).

Više od Kadeishe Kean

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu