C programski jezik spada u proceduralne programske jezike koji je razvijen u ranim 70-im godinama 20. vijeka. Autor ovog programskog jezika je Dennis Ritchie, no značajan doprinos nastanku C-a dali su Ken Thompson kao autor programskog jezika B i Martin Richards, autor programskog jezika BCPL. Dennis Ritchie je stvorio ovaj programski jezik za rješavanje praktičnih problema kodiranja sistemskih programa i jezgre operativnog sistema UNIX, koji je praktički u cijelosti napisan u C-u.

Programski jezik C dosta se mijenjao tokom godina te je u više navrata neformalno i formalno standardiziran. Prva važnija verzija poznata je pod nazivom "K&R C", što je eng. kratica prezimena dvaju autora najpoznatijeg C priručnika "The C Programming Language" – Brian Kernighan i Dennis Ritchie. Prvo izdanje te vrlo sažeto i precizno pisane knjige iz 1978. ujedno je de facto standardiziralo jezik u 70-ima. Drugo izdanje iz 1988. opisuje "ANSI C", standard kojeg je 1983. definirao američki nacionalni institut za standardizaciju, a koji je i danas najbolje podržan. Aktualni ISO/IEC standard, skraćeno poznat kao "C99", podržava u cijelosti samo manji dio komercijalnih proizvođača softvera.

Historija razvoja i verzije Prvobitni razvoj C programskog jezika započinje između 1969. i 1973. u AT&T Bell Labs, a po riječima Dennisa Ritchieja najkreativniji period bio je tokom 1972. Nazvan je C jer su mnoge od njegovih karakteristika potekle od ranijeg programskog jezika zvanog B.

Tokom 1980-ih, Bjarne Stroustrup zajedno s drugim istraživačima u Bell Labs proširuje C dodajući mogućnosti objektno orijentisanog programiranja, a naziv novog jezika postaje C++. Nažalost, ta 100%-na kompatibilnost naslijedila je i neke probleme koje programiranje u C-u nosi sa sobom.

Standardizacija Svaki program napisan u C-u obično sadrži sljedeće elemente:

Preprocesorski dio (npr. #include <stdio.h>) – Uključuje zaglavlja neophodna za osnovne funkcionalnosti ulaza i izlaza. Definisanje varijabli – Određivanje tipova i polja definisanosti varijabli koje se koriste u funkcijama. Glavna funkcija main() – Mora postojati u svakom C programu. Ostale funkcije – Definišu se prema vrsti ulaznih i izlaznih parametara.

Programski primjer

#include <stdio.h>

int main() { int a, b, c; scanf("%d %d", &a, &b); c = a + b; printf("%d\n", c); return 0; }

Napredne tehnike programiranja u C-u C omogućava nekoliko naprednih tehnika koje se često koriste u optimizaciji i sistemskom programiranju.

Rad sa pokazivačima

#include <stdio.h>

void swap(int *x, int *y) { int temp = *x; *x = *y; *y = temp; }

int main() { int a = 5, b = 10; swap(&a, &b); printf("a = %d, b = %d\n", a, b); return 0; }

Korištenje struktura i unija

#include <stdio.h>

struct Student { char ime; int godine; float prosjek;

int main() { struct Student s1 = {"Marko", 22, 8.5}; printf("Ime: %s, Godine: %d, Prosjek: %.2f\n", s1.ime, s1.godine, s1.prosjek); return 0; }

Naučna istraživanja i uticaj C jezika C programski jezik je temelj mnogih istraživanja u oblasti računarskih nauka. Naučnici su proučavali njegovu efikasnost, sigurnosne aspekte i uticaj na razvoj drugih jezika. Ključna istraživanja uključuju:

Efikasnost C jezika – Mnoge studije su pokazale da C omogućava visoke performanse zahvaljujući niskonivou kontroli memorije i direktnom pristupu hardveru. Sigurnosni izazovi – Naučni radovi analiziraju kako ručno upravljanje memorijom može dovesti do sigurnosnih ranjivosti (poput buffer overflow napada). Uticaj na moderne jezike – Istraživanja potvrđuju da su mnogi moderni jezici (Java, C#, Rust) inspirisani C-om, ali uvode poboljšanja u sigurnosti i upravljanju memorijom.

Danas se C koristi za razvoj operativnih sistema, kompajlera, ugrađenih sistema, te za programske aplikacije koje zahtevaju visoke performanse.

Kategorija:Programski jezici Kategorija:Američki izumi