Programski jezik C

Iz Wikipedije, proste enciklopedije
Skoči na: navigacija, iskanje
Koda za program Hello world v urejevalniku Gedit

Prográmski jêzik C ali kar C (izgovorjava [cé] ali po izvirniku [sí]) je nizkonivojski standardizirani računalniški programski jezik za splošno rabo, ki sta ga v zgodnjih 1970-tih razvila Dennis Ritchie in Ken Thompson iz Bellovih laboratorijev (Bell Laboratories, Bell Labs).[1] Najprej sta razvila prevajalnik za operacijski sistem UNIX, kasneje pa se je hitro pojavil tudi na drugih operacijskih sistemih.

C velja za učinkovit jezik in je primeren za sistemska opravila, ni pa najprimernejši za učenje programiranja, čeprav se pogosto pojavlja v izobraževanju. Je tudi eden od najbolj razširjenih programskih jezikov, skupaj z javo, C++ ali PHP, od leta 2008 pa mu priljubljenost celo rahlo narašča.[2][3] Obstaja zelo malo arhitektur za katere ni na voljo prevajalnika za C. C se veliko rabi tudi za razvoj prenosljive uporabniške programske opreme.[4] Razvoj jezika C je zelo vplival na druge programske jezike, še posebej na C++, ki se je razvil kot razširitev C-ja.

Osnovne značilnosti jezika[uredi | uredi kodo]

C je dokaj skop programski jezik, ki deluje blizu strojne opreme, in je z razliko od večine programskih jezikov bolj podoben zbirniku. Včasih ga imenujejo »prenosljivi zbirnik«, kar tudi označuje njegovo pomembno razliko od zbirniškega jezika. Kodo, napisano v C, se da prevesti in pognati na skoraj vsakem stroju. Tega ne zmore skoraj noben obstoječ programski jezik in tudi kodo, zapisano v zbirniku, lahko poženemo le na določenih vrstah strojev. C po navadi imenujejo nizkonivojski ali srednjenivojski jezik, kar označuje kako blizu strojne opreme lahko deluje.

C so naredili zaradi enega samega pomembnega namena, kar ni slučajnost, da bi bilo moč pisati velike programe z manj napakami v proceduralnem programiranju in, da pisec programov ne bi nosil bremena tvorjenja prevajalnika za C, ki ga otežujejo zapletene značilnosti jezika. V tem smislu ima C naslednje pomembne značilnosti:

Zgled programa[uredi | uredi kodo]

Program PozdravljenSvet[uredi | uredi kodo]

Spodnji zgled izpiše znakovni niz »Pozdravljen svet!« na standardni izhod. Navadno je standardni izhod povezan z zaslonom monitorja, lahko pa je tudi datoteka ali kakšna druga strojna naprava. Program je napisan v skladu s standardom ANSI C.

#include <stdio.h>
 
int main(void)
{
   printf("Pozdravljen svet!\r\n");
   return 0;
}

Sledi analiza programa po vrsticah:

#include <stdio.h>

Prva vrstica v programu je predprocesorski ukaz #include. Pred samim prevajanjem programa predprocesor pregleda izvorno kodo in izvrši vse predprocesorske ukaze. Ti ukazi se vedno začnejo z znakom #. Ukaz #include povzroči, da se na njegovo mesto v izvorno kodo vključi datoteka stdio.h, ki vsebuje standardne vhodno izhodne funkcije.

int main(void)

V naslednji vrstici se definira funkcija z imenom main. Ta funkcija ima poseben pomen v C programih. Pri začetku izvajanja programa se najprej kliče ta funkcija. Ključna beseda int na začetku vrstice pove, da funkcija main() vrne celo število, ključna beseda void pa, da funkcija ne sprejme nobenih parametrov. Funkcija main po standardu ANSI C vedno vrača vrednost, čeprav nekateri prevajalniki prevedejo kodo uspešno, četudi temu ni tako. Tudi v jeziku C++ je ta funkcija še vedno C-jevska.

{

Odprti zaviti oklepaj pomeni začetek definicije main funkcije.

printf("Pozdravljen svet!\r\n");

V tej vrstici se kliče funkcija printf, ki je deklarirana v datoteki stdio.h. Pri tem klicu se funkciji printf poda en parameter v obliki znakovnega niza. Na koncu znakovnega niza je še posebni dvoznakovni niz \n, ki se prevede v znak EOL (end of line). Znak je namenjen kot ukaz izhodni napravi, da postavi trenutno lego na začetek naslednje vrstice.

return 0;

Vrstica zaključi izvajanje main funkcije in vrne celo število 0.

}

Zaprti zaviti oklepaj pomeni zaključek definicije funkcije main.

Skladnja jezika C[uredi | uredi kodo]

Glavni članek: skladnja jezika C.

Rezervirane besede[uredi | uredi kodo]

Naslednje besede (keywords; reserved words) so v jeziku C rezervirane in imajo strogi pomen kot posamezni znaki (tokens).[5] Ne smejo se na novo opredeliti ali se rabiti kot identifikatorji v drugih kontekstih:

auto
_Bool
break
case
char
_Complex
const
continue
default
do
double
else
enum
extern
float
for
goto
if
_Imaginary
inline
int
long
register
restrict
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while[6]

V različnih izvedbah prevajalnikov za C se lahko pojavijo tudi druge rezervirane besede, npr. ada, asm, fortran, pascal, čeprav se tam običajno nestandardne besede začnejo z enim ali dvema podčrtajema, npr. __asm, _Cdecl ipd.[6] V primerjavi z drugimi velikimi jeziki ima C majhno število rezerviranih besed. Ada jih ima na primer 62. Ena od značilnosti jezika C je, da lahko naredi veliko z relativno malo posebnimi simboli in rezerviranimi besedami.[5] Na začetku je imel C manj rezerviranih besed, na primer 29, sedaj pa jih pozna 37. Kasneje so bile dodane rezervirane besede, kot so: _Bool, _Complex, const, _Imaginary, inline, restrict, signed in volatile.

Glej tudi[uredi | uredi kodo]

Opombe in sklici[uredi | uredi kodo]

  1. ^ Stewart, Bill (2000-01-07). "History of the C Programming Language". Living Internet (v angleščini). Pridobljeno dne 2006-10-31. 
  2. ^ "Programming Language Popularity" (v angleščini). 2009. Pridobljeno dne 2009-01-16. 
  3. ^ "TIOBE Programming Community Index" (v angleščini). 2009. Pridobljeno dne 2009-05-06. 
  4. ^ Lawlis, Patricia K. (1997). "Guidelines for Choosing a Computer Language: Support for the Visionary Organization". c.j. kemp systems, inc. (v angleščini). Ada Information Clearinghouse. Pridobljeno dne 2006-07-18. 
  5. ^ 5,0 5,1 Kelley, Pohl (1984), str. 61.
  6. ^ 6,0 6,1 "C Language Reference" (PDF). openwatcom.org (v angleščini). Pridobljeno dne 2010-12-31. 

Viri[uredi | uredi kodo]

Zunanje povezave[uredi | uredi kodo]


Glavni programski jeziki (več)

Industrijski: ABAP | Ada | C | C++ | C# | COBOL | Delphi | Fortran | java | JavaScript | Lisp | Objective-C | Perl | PHP | PL/SQL | Python | SAS | sh | SQL | Visual Basic | zbirnik

Akademski: Eiffel | Haskell | Logo | ML | paskal | Prolog | Scheme | Smalltalk

Zgodovinski: ALGOL | APL | AWK | BASIC | Clipper | PL/I | Simula