Programski jezik C
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.
Vsebina |
Osnovne značilnosti jezika [uredi]
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:
- preprost jedrski jezik s pomembno funkcionalnostjo, kjer na primer matematične funkcije ali delo z datotekami omogočajo knjižniški podprogrami,
- usmeritev na proceduralno programiranje z zmožnostjo programiranja v slogu strukturalnega programiranja,
- preprost sistem podatkovnih tipov, ki obvaruje pred brezpredmetnimi operacijami,
- uporaba predprocesorskega jezika, predprocesorja C, za naloge kot so določevanje makrojev in vključevanje večkratnih datotek z izvorno kodo,
- nizkonivojski nepreverjeni dostop do računalniškega pomnilnika s pomočjo uporabe kazalcev,
- parametri, ki prehajajo v funkcije po vrednosti in ne po sklicu (referenci),
- kazalci na funkcije, ki omogočajo osnovno obliko zaprtja (closure) in polimorfizma,
- slovarsko področje spremenljivk,
- zapisi ali skupki podatkovnih tipov (
struct), ki jih določi uporabnik, in omogočajo združevanje in upravljanje podobnih podatkov v celoti, - zelo omejena raba ukaza
else(načelo KISS).
Zgled programa [uredi]
Program PozdravljenSvet [uredi]
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]
Rezervirane besede [uredi]
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:
|
|
|
|
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]
Opombe in sklici [uredi]
- ^ Stewart, Bill (2000-01-07). History of the C Programming Language (v angleščini). Living Internet. Pridobljeno dne 2006-10-31.
- ^ Programming Language Popularity (v angleščini) (2009). Pridobljeno dne 2009-01-16.
- ^ TIOBE Programming Community Index (v angleščini) (2009). Pridobljeno dne 2009-05-06.
- ^ Lawlis, Patricia K. (1997). Guidelines for Choosing a Computer Language: Support for the Visionary Organization (v angleščini). c.j. kemp systems, inc.. Ada Information Clearinghouse. Pridobljeno dne 2006-07-18.
- ^ 5,0 5,1 Kelley, Pohl (1984), str. 61.
- ^ 6,0 6,1 C Language Reference (v angleščini) (PDF). openwatcom.org. Pridobljeno dne 2010-12-31.
Viri [uredi]
- Banahan, Mike; Brady, Declan; Doran, Mark (1991). The C Book (2. izdaja izd.). Addison-Wesley. http://publications.gbdirect.co.uk/c_book/.
- British Standard Institute. The C Standard. John Wiley & Sons. ISBN 0-470-84573-2. Uradni standard ISO (C99) v knjižni obliki.
- Harbison, Samuel P.; Steele, Guy L.. C: A Reference Manual. Ta knjiga je odlična kot definitivni referenčni priročnik, ter za tiste, ki delajo na prevajalniku za C in procesorjih. Vsebuje skladnjo BNF za C.
- 4. izdaja, Prentice Hall 1994; ISBN 0-13-326224-3.
- 5. izdaja, Prentice Hall 2002; ISBN 0-13-089592-X.
- Jones, Derek M.. The New C Standard: A Cultural and Economic Commentary. Addison-Wesley. ISBN 0-201-70917-1. http://www.coding-guidelines.com/cbook/cbook1_2.pdf.
- Kelley, Al; Pohl, Ira (1984). Knjiga o C-ju: Programiranje v C-ju (A Book on C: Programming in C) (4. izdaja izd.). Menlo Park, Kalifornija: Benjamin/Cummings Publishing Company, Inc.. ISBN ISBN 0-201-18399-4.
- Kernighan, Brian Wilson; Richie, Dennis. The C Programming Language. Znana tudi kot K&R — The original book on C.
- 1. izdaja, Prentice Hall 1978; ISBN 0-13-110163-3. Pred standardom ANSI C.
- 2. izdaja, Prentice Hall 1988; ISBN 0-13-110362-8. ANSI C.
- King, K. N. (april 2008). C Programming: A Modern Approach (2. izdaja izd.). W. W. Norton & Company. ISBN 978-0-393-97950-3.
- Ritchie, Dennis (1993). "The Development of the C Language". The second ACM SIGPLAN History of Programming Languages Conference (HOPL-II) (ACM): 201–208. doi:10.1145/154766.155580. http://cm.bell-labs.com/cm/cs/who/dmr/chist.html.
- Sedgewick, Robert. Algorithms in C. Addison-Wesley. ISBN 0-201-31452-5 (deli 1–4) in ISBN 0-201-31663-3 (del 5).
- Thompson, Kenneth. A New C Compiler. Murray Hill, New Jersey: AT&T Bellovi laboratoriji. http://doc.cat-v.org/bell_labs/new_c_compilers/new_c_compiler.pdf.
Zunanje povezave [uredi]
| Wikimedijina Zbirka ponuja več predstavnostnega gradiva o temi: Programski jezik C |
- Stran o programskem jeziku C na eŠtudentu
- http://www.educa.fmf.uni-lj.si/izodel/sola/2001/di/Rupar/izobrazevanje/tutorc/index.html
- Summit, Steve, comp.lang.c Frequently Asked Questions (v angleščini)
- Programming in C (zbirka dokumentov na Lysator) (v angleščini)
| 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
|