Սի (ծրագրավորման լեզու)
- Անվան այլ կիրառումների համար տե՛ս՝ C
Տեսակ | իմպերատիվ ծրագրավորման լեզու, ծրագրավորման պրոցեդուրային լեզու, ծրագրավորման կառուցվածքային լեզու, ծրագրավորման կոմպիլյացվող լեզու, ծրագրավորման լեզու և computer science term? |
---|---|
Սեմանտիկա | պրոցեդուրային |
Կատարման ձև | կոմպիլացվում է |
Առաջացել է | 1972 |
Ստեղծող | Բելլի լաբորատորիա, Դենիս Ռիտչի[1], ANSI, ISO և Քեն Թոմփսոն |
Նախագծող | Դենիս Ռիտչի |
Ընդլայնումներ | .c և .h |
ՕՀ | Windows և յունիքսանման օպերացիոն համակարգ |
Տիպիզացիա | ստատիկ |
Համացանցի տվյալների տեսակ | text/plain[2] |
Հիմնական իրականացումներ | GCC, TCC, Sun Studio C, Turbo C, Open Watcom |
Տարբերակներ | «K&R» C (1978) ANSI C (1989) C90 (1990) C99 (1999) C11 (2011) C17 (2018) |
Հիմքի վրա է | B (ծրագրավորման լեզու)[3] |
Ներշնչվել է | Ալգոլ 68[4], B (ծրագրավորման լեզու), Ասսեմբլեր լեզու, Ֆորտրան, PL/I, CPL, BCPL, ALGOL 60 և Ալգոլ |
Նախորդ | B (ծրագրավորման լեզու) |
Կայք | iso.org/standard/74528.html և open-std.org/jtc1/sc22/wg14/ |
C (programming language) Վիքիպահեստում |
Սի (անգլ.՝ C)— ստանդարտացված, ընդհանուր օգտագործման համար նախատեսված պրոցեդուրային ծրագրավորման լեզու է։ Ստեղծվել է 1969-1973 թթ․ AT&T Bell Telephone Laboratories[5][6] ընկերությունում։ Ի սկզբանե նախատեսված է եղել օպերացիոն համակարգերի համար, սակայն օգտագործվում է նաև որպես կիրառական ծրագրավորման լեզու։ Ամենատարածված ծրագրավորման լեզուներից մեկն է։ Մեծ ազդեցություն է ունեցել իրենից հետո առաջացած լեզուների մեծ մասի վրա։ Մասնավորապես այսօր առավել տարածված ծրագրավորման լեզուների մեծ մասը (C++, Ջավա, C Sharp, ՋավաՍկրիպտ և այլն ․․․) ունեն այսպես կոչված C-ի նման սինտակսիս։ Լեզվի հեղինակ Դենիս Ռիտչին նպատակ է ունեցել ստեղծել B լեզվին փոխարինող լեզու, որը կփոխարինի այն որպես UNIX օպերացիոն համակարգի գրման հիմնական լեզու։ Այսպիսով C-ն սերտ կապված է UNIX ընտանիքի օպերացիոն համակարգերին։ Չնայած, որ C-ն նախատեսված չի եղել նորեկների համար այն լայնորեն օգտագործվում է որպես ուսուցողական լեզու։
Պատմություն
C-ն նախագծվել է 1969-1973 թվականներին Դենիս Ռիտչիի կողմից, և գրված է եղել DEC PDP-11 համակարգչի վրա ՝ UNIX օպերացիոն համակարգի համար։ Համաձայն հեղինակի, առավել ակտիվ շրջանը եղել է 1973 թ․։ Լեզուն անվանվել է C, որպեսզի ցույց տա, որ այն B լեզվի շարունակությունն է, որն էլ իր հերթին սկիզբ է առնում BCPL լեզվից։ Լեզվի ստեղծման հիմնական նպատակն էր նորաթուխ UNIX օպերացիոն համակարգը, որը գրված էր PDP-11/2 ասսեմբլերի լեզվով։ Մինչ այդ տարածված միայն երկու օպերացիոն համակարգ էր գրված եղել բարձր մակարդակի լեզվով (Multics-ը՝ գրված PL/I և TRIPOS գրված BCPL-ով)։
1978 թվականին լույս է տեսել Բրայան Կերնիգանի և Դենիս Ռիտչիի հայտնի «C ծրագրավորման լեզուն» (անգլ.՝ «The C Programming Language») գիրքը, որը մինչև լեզվի ստանդարտ ի հայտ գալը հանդիսացել է C լեզվի ոչ ֆորմալ նկարագրությունը։
Հետագա տարիներին C-ն լայն տարածում է գտել։ Ութսունականների սկզբներին Բյորն Սրտաուստրուպը սկսեց աշխատել C++ լեզվի վրա, որը հանդիսանում է C լեզվի ընդլայնումը։ Այս ամենի հետևանքով անհրաժեշտություն ստեղծեց լեզվի ստանդարտ մտցնել։ Այդ նպատակով 1983 թ. Ամերիկայի ազգային ստանդարտների ինստիտուտը (ANSI) ստեղծեց կոմիտետ, որը պետք է զբաղվեր C լեզվի ստանդարտի ստեղծմամբ։ 1989 թ․ ստանդարտը ընդունվեց, որպես «C ծրագրավորման լեզու» ANSI X3.159-1989. Մեկ տարի անց 1990 թ․ չնչին փոփոխություններից հետո այդ ստանդարտը ընդունվեց նաև Ստանդարտների միջազգային կոմիտետի(ISO) կողմից։ Տասը տարի անց՝ 1999 թ. լույս տեսավ C-ի հաջորդ ստանդարտը՝ ISO 9899։1999, որը սովորաբար անվանվում է C99։ 2000 թ․ այն ընդունվեց նաև ANSI-ի կողմից։
2007 թվականից սկսվել է C-ի հաջորդ ստանդարտի վրա աշխատանքը, որը անվանում են C1X, որտեղ X-ը ցույց է տալիս ստանդարտի ընդուման թվականի վերջին թվանշանը (օրինակ, եթե ստանդարտը ընդունվի 2013 թ․, ապա X = 3)։
Առանձնահատկություններ
C-ն հանդիսանում է բարձր մակարդակի ծրագրավորման լեզու։ C-ի համար կարելի է ձևավորել միակողմանի կոմպիլատորներ, որի հետևանքով էլ C-ն հասանելի է բազմաթիվ հարթակների վրա։ Նրա գրելաձևը ազատ ձևի է, և չունի ավելորդ բարդույթներ, որը թույլ է տալիս C-ով գրված պրոյեկտները հեշտությամբ տեղափոխել դեպի այլ հարթակներ։
Այդ ամենի հետ մեկտեղ այս լեզուն իր մեջ ներառում է տարբեր այլ առանձնահատկություններ․
- Ունի հեշտ լեզվային բազա․ ստանդարդ գրադարանում
[stdio.h]
են ներառված հիմնական ֆունկցիաները (մաթեմատիկական օպերացիաներ, ֆայլերի հետ աշխատանք և այլն)։ - Առկա է տիպերի համակարգ, որը զերծ է պահում կողմնակի օպերացիաներից։
- Կառավարում է համակարգչի հիշողությունը ցուցիչների միջոցով։
- Թույլ է տալիս օգտագործել պրեպրոցեսսորը միատեսակ օպերացիաները իրագործելու համար։
- Ունի անունների տեսանելիության տեղամասեր։
- Կարելի է ստեղծել սեփական ստրուկտուրաներ և միավորումներ, որոնք օգտվողը կարող է մանիպուլացնել։
Որոշ բացակայող հատկություններ C-ում կարելի է օգտագործել setjmp
և longjmp
միջոցով, սակայն կան նաև կողմնակի գրադարաններ (օրինակ ՝ GTK), որոնք նույնպես լրացնում են C-ի հատկությունները։
C-ում կարելի է ֆունկցիան կանչել հենց իր մեջից, որը առաջացնում է ֆունկցիաների ռեկուրսիա։
Կիրառությունները
C լեզվի հիման վրա են ձևավորվել բազմաթիվ ժամանակակից ծրագրավորման լեզուներ։ Օրինակ ՝ Python ծրագրավորման լեզուն գրված է C-ի վրա, C++-ը հանդիսանում է C-ի ավելի բարելավված տարբերակը։ Գոյություն ունեն տարբեր C-ի իրացումներ, որոնցից են ՝
- GCC (հանդես է գալիս GNU General Public License-ի ներքո)
- Microsoft Visual C/C++
- Clang
- Intel C
- K&R C
- Watcom C
- C++ Builder
և այլն։
Հայտնի ծրագրեր, որոնք գրված են C լեզվով
- Լինուքս ՕՀ-ի միջուկը։
- FreeBSD ՕՀ-ի միջուկը։
- mathlab
- Wolfram Mathematica
- Oracle DB
- MySQL (գրված է C և C++ լեզուներով)
- GCC
- PostgreSQL
- GIMP
Ծանոթություններ
- ↑ http://www.bell-labs.com/usr/dmr/www/chist.html
- ↑ https://www.sitepoint.com/mime-types-complete-list/
- ↑ https://www.bell-labs.com/usr/dmr/www/bintro.html
- ↑ http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
- ↑ «Արխիվացված պատճենը». Արխիվացված է օրիգինալից 2013-06-22-ին. Վերցված է 2010-07-29-ին.
{{cite web}}
: Unknown parameter|dead-url=
ignored (|url-status=
suggested) (օգնություն) - ↑ «Արխիվացված պատճենը». Արխիվացված է օրիգինալից 2013-06-22-ին. Վերցված է 2010-07-29-ին.
{{cite web}}
: Unknown parameter|dead-url=
ignored (|url-status=
suggested) (օգնություն)
|
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Սի (ծրագրավորման լեզու)» հոդվածին։ |
|