C (programski jezik)
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 engl. kratica prezimena dvaju autora najpoznatijeg C priručnika "The C Programming Language", a to su Brian Kernighan i Dennis Ritchie. Prvo izdanje te vrlo sažeto i precizno pisane knjige koje datira iz 1978. godine ujedno je de facto standardiziralo jezik u 70-ima. Drugo izdanje iz 1988. godine opisuje "ANSI C", standard kojeg je 1983. godine 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 jedan manji dio komercijalnih proizvođača softvera. Kao jedan od najvažnijih jezika u historiji komercijalne računarske industrije, C je do danas ostao jedini programski jezik prilagođen za sve računarske platforme, od malih sistema pa do mrežnih superračunara. Programi napisani u njemu vrlo su bliski načinu rada hardvera te u načelu zahtijevaju od programera dobro razumijevanje rada procesora, memorije, ulazno-izlaznih sklopova itd. No, rad s registrima procesora i adresiranje memorije apstrahirani su pomoću koncepta varijabli i pokazivača što uz eksplicitne kontrolne strukture i funkcije znatno olakšava programiranje u odnosu na izravno programiranje u masinskim jezicima. Tokom 1980-ih, Bjarne Stroustrup zajedno s drugim istraživačima u Bell Labs proširuje C dodavajući sposobnosti objektno orijentiranog programiranja, a naziv ovog novog programskog jezika je C++. Nažalost, ta je 100%-na kompatibilnost ujedno i razlog što su problemi koje programiranje u C-u nosi sa sobom naslijeđeni u C++-u. Efikasno i sigurno programiranje u C-u vrlo je zahtjevna vještina koja traži višegodišnje iskustvo pa je stoga C jezik koji se ne preporučuje početnicima, posebice ako im programiranje nije primarni posao. Mnogobrojni problemi vezani prije svega za upravljanje memorijom koje programer mora sam eksplicitno kodirati razlog su da je danas većina novih korisničkih aplikacija napisana u nekom modernijem jeziku koji ima ugrađeno automatsko upravljanje memorijom (engl. garbage collection), ne dopušta izravan rad s memorijom pomoću pokazivača te ima podršku za upravljanje kodom odnosno njegovom okolinom za vrijeme njegova izvođenja. Danas se relativno rijetko ukazuje potreba za pisanjem novih korisničkih aplikacija izravno u C-u, pa čak i u vrlo malim sistemima kao što su na primjer mobilni telefoni. Glavno područje njegove upotrebe su sistemski programi na strani poslužitelja (engl. servers), programi prevoditelji (engl. compilers) i jezgre operativnih sistema (engl. operating system kernels), gdje je potreba za najvećom mogućom brzinom izvođenja, efikasnom kontrolom resursa i izravnom kontrolom hardvera od primarne važnosti.