Jump to content

«Սի (ծրագրավորման լեզու)»–ի խմբագրումների տարբերություն

Վիքիպեդիայից՝ ազատ հանրագիտարանից
Content deleted Content added
չ clean up, replaced: ) — → ) , oգտվելով ԱՎԲ
չ -dead-url=yes , +url-status=dead
 
(37 intermediate revisions by 23 users not shown)
Տող 1. Տող 1.
{{Այլ կիրառումներ|C}}
{{Այլ կիրառումներ|C}}
{{Տեղեկաքարտ Ծրագրավորման լեզու
{{Տեղեկաքարտ Ծրագրավորման լեզու
| անվանում=C
| սեմանտիկա = [[պրոցեդուրային ծրագրավորում|պրոցեդուրային]]
| սեմանտիկա = [[պրոցեդուրային ծրագրավորում|պրոցեդուրային]]
| կատարում = [[կոմպիլացիա|կոմպիլացվում է]]
| կատարում = [[կոմպիլյացիա|կոմպիլացվում է]]
| տիպիզացիա = [[ստատիկ տիպիզացված լեզուներ|ստատիկ]]
| ստեղծման թվականներ = 1969-1973 թթ․
| իրականացում = [[GCC]], [[TCC]], [[Sun Studio]] C, [[Turbo C]], [[Open Watcom]]
| հեղինակներ = [[Դենիս Ռիտչի]]
| տարբերակներ = «K&R» C (1978)<br />ANSI C (1989)<br /> C90 (1990)<br /> C99 (1999) <br /> C11 (2011) <br /> C17 (2018)
| տիպիզացիա = [[ստատիկ տիպիզացված լեզուներ|ստատիկ]]
| իրականացումներ = [[GCC]], [[TCC]], [[Sun Studio]] C, [[Turbo C]], [[Open Watcom]]
| տարբերակներ = «K&R» C (1978)<br />ANSI C (1989)<br /> C90 (1990)<br /> C99 (1999)
| ներշնչված = [[B(ծրագրավորման լեզու)|B]]([[BCPL]],[[CPL]]), [[ALGOL 68]], [[Ասսեմբլերի լեզու|Assembler]], [[PL/I]], [[FORTRAN]]
| ներշնչած = [[AWK]], [[csh]], [[C++]], [[C--]], [[C#]], [[Objective-C]], [[BitC]], [[D(ծրագրավորման լեզու)|D]], [[Go]], [[Java]], [[JavaScript]], [[Limbo]], [[LPC]], [[Perl]], [[PHP]], [[Pike]], [[Processing]], [[Python]]
}}
}}
'''Սի''' ({{lang-en|'''C'''}}) , ստանդարտացված [[պրոցեդուրային]] [[ծրագրավորման լեզու]] է։ Ստեղծվել է 1969-1973 թթ․ [[AT&T Bell Telephone Laboratories]] <ref>http://cm.bell-labs.com/cm/cs/who/dmr/chist.html</ref><ref>http://www.livinginternet.com/i/iw_unix_c.htm</ref> ընկերությունում: Ի սկզբանե նախատեսված է եղել [[համակարգային ծրագրավորում|համակարգային ծրագրավորման]] համար, սակայն օգտագործվում է նաև որպես [[կիրառական ծրագրավորում|կիրառական ծրագրավորման]] լեզու։ Ամենատարածված ծրագրավորման լեզուներից մեկն է։ Մեծ ազդեցություն է ունեցել իրենից հետո առաջացած լեզուների մեծ մասի վրա։ Մասնավորապես այսօր առավել տարածված ծրագրավորման լեզուների մեծ մասը ([[C++]],[[Java]],[[C#]],[[JavaScript]] և այլն ․․․) ունեն այսպես կոչված [[C-ի նման սինտակսիս]]: Լեզվի հեղինակ [[Դենիս Ռիտչի]]ն նպատակ է ունեցել ստեղծել [[B(ծրագրավորման լեզու)|B]] լեզվին փոխարինող լեզու, որը կփոխարինի այն որպես [[UNIX]] [[օպերացիոն համակարգ]]ի գրման հիմնական լեզու։ Այսպիսով C-ն սերտ կապված է UNIX ընտանիքի օպերացիոն համակարգերին։ Չնայած, որ C-ն նախատեսված չի եղել նորեկների համար այն լայնորեն օգտագործվում է որպես ուսուցողական լեզու։
'''Սի''' ({{lang-en|'''C'''}}) ստանդարտացված, ընդհանուր օգտագործման համար նախատեսված պրոցեդուրային [[ծրագրավորման լեզու]] է։ Ստեղծվել է 1969-1973 թթ․ [[Բելլի լաբորատորիա]]յում<ref>{{Cite web |url=http://cm.bell-labs.com/cm/cs/who/dmr/chist.html |title=Արխիվացված պատճենը |accessdate=2010 թ․ հուլիսի 29 |archive-date=2013 թ․ հունիսի 22 |archive-url=https://www.webcitation.org/6HZA6qfVb?url=http://cm.bell-labs.com/cm/cs/who/dmr/chist.html |url-status=dead }}</ref><ref>{{Cite web |url=http://www.livinginternet.com/i/iw_unix_c.htm |title=Արխիվացված պատճենը |accessdate=2010 թ․ հուլիսի 29 |archive-date=2013 թ․ հունիսի 22 |archive-url=https://www.webcitation.org/6HZA43P3j?url=http://www.livinginternet.com/i/iw_unix_c.htm |url-status=dead }}</ref>։ Ի սկզբանե նախատեսված է եղել [[Յունիքս]] [[օպերացիոն համակարգ]]ի համար, սակայն օգտագործվում է նաև որպես [[կիրառական ծրագրավորում|կիրառական ծրագրավորման]] լեզու։ Ամենատարածված ծրագրավորման լեզուներից մեկն է։ Մեծ ազդեցություն է ունեցել իրենից հետո առաջացած լեզուների մեծ մասի վրա։ Մասնավորապես այսօր առավել տարածված ծրագրավորման լեզուների մեծ մասը ([[C++]], [[Ջավա]], [[C Sharp|C#]], [[ՋավաՍկրիպտ]] և այլն) ունեն այսպես կոչված [[C-աձև սինտաքսիս]]։ Լեզվի հեղինակ [[Դենիս Ռիտչի]]ն նպատակ է ունեցել ստեղծել [[B(ծրագրավորման լեզու)|B]] լեզվին փոխարինող լեզու, որը կփոխարինի այն որպես UNIX օպերացիոն համակարգի գրման հիմնական լեզու։ Այսպիսով C-ն սերտ կապված է UNIX ընտանիքի օպերացիոն համակարգերին։ Չնայած, որ C-ն նախատեսված չի եղել նորեկների համար, այն լայնորեն օգտագործվում է որպես ուսուցողական լեզու։


== Պատմություն ==
== Պատմություն ==
C-ն նախագծվել է 1969-1973 թվականներին Դենիս Ռիտչիի կողմից, և գրված է եղել [[DEC PDP-11]] համակարգչի վրա ՝ UNIX օպերացիոն համակարգի համար։ Համաձայն հեղինակի, առավել ակտիվ շրջանը եղել է 1973 թ․։ Լեզուն անվանվել է C, որպեսզի ցույց տա, որ այն [[B(ծրագրավորման լեզու)|B]] լեզվի շարունակությունն է, որն էլ իր հերթին սկիզբ է առնում [[BCPL]] լեզվից։ Լեզվի ստեղծման հիմնական նպատակն էր նորաթուխ UNIX օպերացիոն համակարգը, որը գրված էր PDP-11/2 [[Ասսեմբլեր լեզու|ասեմբլերի լեզվով]]։ Մինչ այդ տարածված միայն երկու օպերացիոն համակարգ էր գրված եղել [[բարձր մակարդակի լեզու|բարձր մակարդակի լեզվով]] ([[Multics]]-ը՝ գրված [[PL/I]] և [[TRIPOS]]–ը ՝ BCPL լեզվով)։


[[1978]] թվականին լույս է տեսել [[Բրայան Կերնիգան]]ի և Դենիս Ռիտչիի հայտնի «C ծրագրավորման լեզուն» ({{lang-en|«The C Programming Language»}}) գիրքը, որը մինչև լեզվի ստանդարտ ի հայտ գալը հանդիսացել է C լեզվի ոչ ֆորմալ նկարագրությունը։
C լեզուն նախագծվել է 1969-1973 թթ․ [[AT&T Bell Telephone Laboratories|Bell Labs]] Դենիս Ռիտչիի կողմից։ Համաձայն հեղինակի առավել ակտիվ շրջանը եղել է 1973թ․։ Լեզուն անվանվել է C, որպեսզի ցույց տա, որ այն [[B(ծրագրավորման լեզու)|B]] լեզվի շարունակությունն է, որն ել իր հերթին սկիզբ է առնում [[BCPL]] լեզվից։ Լեզվի ստեղծման հիմնական նպատակն էր նորաթուխ [[UNIX]] օպերացիոն համակարգը, որը գրված էր PDP-11/2 [[ասսեմբլերի լեզու|ասսեմբլերի լեզվով]]: Մինչ այդ տարածված միայն երկու օպերացիոն համակարգ էր գրված եղել [[բարցր մակարդակի լեզու|բարցր մակարդակի լեզվով]] ([[Multics]]-ը` գրված [[PL/I]] և [[TRIPOS]] գրված BCPL-ով)։


Հետագա տարիներին C-ն լայն տարածում է գտել։ Ութսունականների սկզբներին [[Բյորն Ստրաուստրուպ]]ը սկսեց աշխատել [[C++]] լեզվի վրա, որը հանդիսանում է C լեզվի ընդլայնումը ՝ [[ՕԿԾ|օբկեյտ կողմնորոշված ծրագրավորման]] առկայությամբ։ Այս ամենի հետևանքով անհրաժեշտություն ստեղծեց լեզվի ստանդարտ մտցնել։ Այդ նպատակով 1983 թ. [[ANSI|Ամերիկայի ազգային ստանդարտների ինստիտուտը]] (ANSI) ստեղծեց կոմիտետ, որը պետք է զբաղվեր C լեզվի ստանդարտի ստեղծմամբ։ 1989 թ․ ստանդարտն ընդունվեց որպես «C ծրագրավորման լեզու» ANSI X3.159-1989. Մեկ տարի անց, 1990 թ․ չնչին փոփոխություններից հետո այդ ստանդարտը ընդունվեց նաև [[ISO|Ստանդարտների միջազգային կոմիտետի]] (ISO) կողմից։ Տասը տարի անց ՝ 1999 թ. լույս տեսավ C-ի հաջորդ ստանդարտը ՝ ISO 9899։1999, որը սովորաբար անվանվում է C99։ 2000 թ․ այն ընդունվեց նաև ANSI-ի կողմից։
[[Պատկեր:Kr c prog lang.jpg‎|thumb|180px|Բրայան Կերնիգանի և Դենիս Ռիտչիի «C ծրագրավորման լեզու» գրքի շապիկը]]


2007 թվականից սկսվել է C-ի հաջորդ ստանդարտի վրա աշխատանքը, որը անվանում են C1X, որտեղ X-ը ցույց է տալիս ստանդարտի ընդուման թվականի վերջին թվանշանը (օրինակ, եթե ստանդարտը ընդունվի 2013 թ․, ապա X = 3)։
[[1978]] թ․ լույս տեսավ [[Բրայան Կերնիգան]]ի և Դենիս Ռիտչիի հայտնի «[[C ծրագրավորման լեզուն]]»( {{lang-en|«The C Programming Language»}} ) գիրքը, որը մինչև լեզվի ստանդարտ ի հայտ գալը հանդիսացել է C լեզվի ոչ ֆորմալ նկարագրություննը։


== Առանձնահատկություններ ==
Հետագա տարիներին C-ն լայն տարածում գտավ։ Ութսունականների սկզբներին [[Բյորն Սրտաուստրուպ]]ը սկսեց աշխատել [[C++]] լեզվի վրա, որը C լեզվի ընդլայնումն է։ Այս ամենի հետևանքով անհրաժեժեշտություն ստեղծեց լեզվի ստանդարտ մտցնել։ Այդ նպատակով 1983թ [[ANSI|Ամերիկայի ազգային ստանդարտների ինստիտուտ]]ը (ANSI) ստեղծեց կոմիտետ, որը պետք է զբաղվեր C լեզվի ստանդարտի ստեղծմամբ։ 1989թ․ ստանդարտը ընդունվեց, որպես «C ծրագրավորման լեզու» ANSI X3.159-1989. Մեկ տարի անց 1990թ․ չնչին փոփոխություններից հետո այդ ստանդարտը ընդունվեց նաև [[ISO|Ստանդարտների միջազգային կոմիտետի]](ISO) կողմից։ Տաս տարի անց՝ 1999թ լույս տեսավ C-ի հաջորդ ստանդարտը՝ ISO 9899:1999, որը սովորաբար անվանվում է C99:2000թ․ այն ընդունվեց նաև ANSI-ի կողմից։


C-ն հանդիսանում է բարձր մակարդակի ծրագրավորման լեզու։ C-ի համար կարելի է ձևավորել միակողմանի կոմպիլատորներ, որի հետևանքով էլ C-ն հասանելի է բազմաթիվ հարթակների վրա։ Նրա գրելաձևը ազատ ձևի է, և չունի ավելորդ բարդույթներ, որը թույլ է տալիս C-ով գրված պրոյեկտները հեշտությամբ տեղափոխել դեպի այլ հարթակներ։
2007 թվականից սկսվել է C-ի հաջորդ ստանդարտի վրա աշխատանքը, որը անվանում են C1X, որտեղ X-ը ցույց է տալիս ստանդարտի ընդուման թվականի վերջի թվանշանը(Օրինակ եթե ստանդարտը ընդունվի 2013թ․, ապա X=3)։

Այդ ամենի հետ մեկտեղ այս լեզուն իր մեջ ներառում է տարբեր այլ առանձնահատկություններ․

* Ունի հեշտ լեզվային բազա․ Իր ստանդարդ գրադարանի տարբեր header-ֆայլերում առկա են հիմնական ֆունկցիաները (մաթեմատիկական օպերացիաները, ֆայլերի ու հիշողության հետ աշխատանքը և այլն)։
* C-ով գրված ծրագրերը հեշտությամբ կարելի է տեղափոխել մեկ այլ համակարգ, առանց հիմնային վերափոխելու ծրագրի ֆունկցիաները։
* Առկա է տիպերի համակարգ, որը զերծ է պահում կողմնակի օպերացիաներից։
* Կառավարում է ծրագրի հիշողությունը ցուցիչների միջոցով։
* Թույլ է տալիս օգտագործել պրեպրոցեսսորը միատեսակ օպերացիաները և մակրո ծրագրերը իրագործելու համար։
* Ունի անունների տեսանելիության տեղամասեր։
* Կարելի է ստեղծել սեփական ստրուկտուրաներ և միավորումներ, որոնք օգտվողը կարող է մանիպուլացնել։

Որոշ բացակայող հատկություններ C-ում կարելի է օգտագործել <code>setjmp</code> և <code>longjmp</code> միջոցով, ավելացնելով <code><setjmp.h></code> ֆայլը, սակայն կան նաև կողմնակի գրադարաններ (օրինակ ՝ ''GTK''), որոնք լրացնում են C-ի հատկությունները, ավելացնելով գրաֆիկայի և այլ գործառույթների ընդլայնումները։ Նաև C-ում կարելի է ֆունկցիան կանչել հենց իր մեջից, որը առաջացնում է ֆունկցիաների ռեկուրսիա։


== Կիրառությունները ==
== Կիրառությունները ==
C լեզվի հիման վրա ձևավորվել են բազմաթիվ ժամանակակից ծրագրավորման լեզուներ։ Օրինակ՝ [[Python]] և [[PHP]] ծրագրավորման լեզուները գրված են C-ի վրա, [[C++]]-ը հանդիսանում է C-ի ավելի բարելավված տարբերակը։ Գոյություն ունեն տարբեր C-ի կոմպիլյատորների իրացումներ, որոնցից են՝


* [[GCC]] – բաց ծրագրային կոդով կոմպիլյատոր, որի միջոցով կոմպիլյացվում են բազմաթիվ ծրագրեր, օրինակ՝ Լինուքս օպերացիոն համակարգը։ Այն հանդես է գալիս GNU General Public License-ի ներքո։
=== Հայտնի ծրագրեր, որոնք գրված են C լեզվով ===
* [[MSVC|Microsoft Visual C/C++ (MSVC)]] – [[Մայքրոսոֆթ]]ի կողմից ստեղծված կոմպիլյատոր, հիմնված Lattice C-ի վրա, որով ստեղծվում են [[Windows]] օպերացիոն համակարգի համար ծրագրեր։
* [[Borland C/C++]] – Բորլանդ ընկերության C/C++ կոմպիլյատորը, որը հիմնականում հանդիսանում էր MSVC–ի հակառակորդը։ 2006թ․–ից այն պատկանում է CodeGear ընկերությանը, որը հետագայում միավորվել է Embarcadero ընկերությանը։
* [[Intel C]] – [[Ինթել|Ինթել ընկերության]] կոմպիլյատորը, որով կարելի է ստեղծել 80386 տեսակի Ինտելի պրոցեսսորների հիման վրա ծրագրեր։
* [[K&R C]] – առաջին և օրիգինալ C կոմպիլյատորը։ Այն համապատասխանում է օրիգինալ C-ի ստանդարտին։
* [[Watcom C/C++]] – կոմմերցիալ կոմպիլյատոր, որը թողարկվել էր Վաթքոմ ընկերության կողմից։ 2003 թ․–ից այն դադարեց լինել կոմմերցիալ և բաց ծրագրային կոդով հրատարակվում է որպես Open Watcom.


և այլն
# [[Linux]] [[Օպերացիոն Համակարգ|ՕՀ]] -ի [[Օպերացիոն համակարգի միջուկ|միջուկը]]։
# [[FreeBSD]] [[Օպերացիոն Համակարգ|ՕՀ]] -ի [[Օպերացիոն համակարգի միջուկ|միջուկը]]։
# [[mathlab]]
# [[Wolfram Mathematica]]
# [[Oracle DB]]
# [[MySql]] (գրված է C և C++ լեզուներով)
# [[GCC]]
# [[PostgreSQL]]
# [[GIMP]]


== Ծանոթություններ ==
== Ծանոթություններ ==
Տող 44. Տող 50.


{{Ծրագրավորման լեզու}}
{{Ծրագրավորման լեզու}}
{{Արտաքին հղումներ}}


[[Կատեգորիա:Ծրագրավորման լեզուներ]]
[[Կատեգորիա:ISO ստանդարտի ծրագրավորման լեզուներ]]
[[Կատեգորիա:Ամերիկյան հայտնագործություններ]]

[[af:C (programmeertaal)]]
[[als:C (Programmiersprache)]]
[[am:ሲ (የኮምፒዩተር ፍርገማ ቋንቋ)]]
[[an:Luengache de programación C]]
[[ar:سي (لغة برمجة)]]
[[ast:Llinguaxe de programación C]]
[[az:C (proqramlaşdırma dili)]]
[[bat-smg:C (kalba)]]
[[be:C, мова праграмавання]]
[[be-x-old:C (мова праграмаваньня)]]
[[bg:C (език за програмиране)]]
[[bn:সি (প্রোগ্রামিং ভাষা)]]
[[br:Areg C]]
[[bs:C (programski jezik)]]
[[bug:C (basa maprogram)]]
[[ca:Llenguatge C]]
[[cdo:C ngṳ̄-ngiòng]]
[[co:C (linguagiu di prugrammazione)]]
[[cs:C (programovací jazyk)]]
[[cv:Си (компьютер чĕлхи)]]
[[cy:C (iaith rhaglennu)]]
[[da:C (programmeringssprog)]]
[[de:C (Programmiersprache)]]
[[el:C (γλώσσα προγραμματισμού)]]
[[en:C (programming language)]]
[[eo:C (programlingvo)]]
[[es:C (lenguaje de programación)]]
[[et:C (programmeerimiskeel)]]
[[eu:C (programazio lengoaia)]]
[[fa:زبان برنامه‌نویسی سی]]
[[fi:C (ohjelmointikieli)]]
[[fr:C (langage)]]
[[ga:C (Teanga ríomhchlárúcháin)]]
[[gl:C (programación)]]
[[gu:C (પ્રોગ્રામિંગ ભાષા)]]
[[he:C (שפת תכנות)]]
[[hi:सी (प्रोग्रामिंग भाषा)]]
[[hr:C (programski jezik)]]
[[hu:C (programozási nyelv)]]
[[ia:C (linguage de programmation)]]
[[id:C (bahasa pemrograman)]]
[[is:C (forritunarmál)]]
[[it:C (linguaggio)]]
[[ja:C言語]]
[[jv:C (basa pamrograman)]]
[[ka:C (პროგრამირების ენა)]]
[[kab:C (tameslayt)]]
[[kk:C (бағдарламалау тілі)]]
[[km:ភាសា C]]
[[kn:ಸಿ (ಕ್ರಮವಿಧಿ ಭಾಷೆ)]]
[[ko:C (프로그래밍 언어)]]
[[ku:C (zimanê bernamekirinê)]]
[[ky:Си (программалоо тили)]]
[[la:C (lingua programmandi)]]
[[lo:ພາສາຊີ]]
[[lt:C (kalba)]]
[[lv:C (programmēšanas valoda)]]
[[mg:Fiteny C]]
[[mk:C (програмски јазик)]]
[[ml:സി (പ്രോഗ്രാമിങ് ഭാഷ)]]
[[mn:Си хэл]]
[[mr:सी (आज्ञावली भाषा)]]
[[ms:C (bahasa pengaturcaraan)]]
[[my:C (programming language)]]
[[nl:C (programmeertaal)]]
[[nn:Programmeringsspråket C]]
[[no:C (programmeringsspråk)]]
[[oc:C (lengatge)]]
[[pl:C (język programowania)]]
[[pt:C (linguagem de programação)]]
[[ro:C (limbaj de programare)]]
[[ru:Си (язык программирования)]]
[[sah:C (программалааhын тыла)]]
[[sh:C (programski jezik)]]
[[si:C (පරිඝනක භාෂාව)]]
[[simple:C (programming language)]]
[[sk:C (programovací jazyk)]]
[[sl:Programski jezik C]]
[[sq:C (gjuhë programimi)]]
[[sr:C (програмски језик)]]
[[sv:C (programspråk)]]
[[ta:சி (நிரலாக்க மொழி)]]
[[te:సీ]]
[[th:ภาษาซี]]
[[tl:C (wikang pamprograma)]]
[[tr:C (programlama dili)]]
[[tt:Си (программалау теле)]]
[[uk:C (мова програмування)]]
[[vi:C (ngôn ngữ lập trình)]]
[[war:C (linggwahe hin pagprograma)]]
[[wuu:C (程式编制个言话)]]
[[yi:C (פראגראם שפראך)]]
[[zh:C语言]]
[[zh-min-nan:C (thêng-sek gí-giân)]]
[[zh-yue:C程式語言]]

Ընթացիկ տարբերակը 19:26, 2 Մարտի 2024-ի դրությամբ

Անվան այլ կիրառումների համար տե՛ս՝ 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 թթ․ Բելլի լաբորատորիայում[5][6]։ Ի սկզբանե նախատեսված է եղել Յունիքս օպերացիոն համակարգի համար, սակայն օգտագործվում է նաև որպես կիրառական ծրագրավորման լեզու։ Ամենատարածված ծրագրավորման լեզուներից մեկն է։ Մեծ ազդեցություն է ունեցել իրենից հետո առաջացած լեզուների մեծ մասի վրա։ Մասնավորապես այսօր առավել տարածված ծրագրավորման լեզուների մեծ մասը (C++, Ջավա, C#, ՋավաՍկրիպտ և այլն) ունեն այսպես կոչված 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-ով գրված պրոյեկտները հեշտությամբ տեղափոխել դեպի այլ հարթակներ։

Այդ ամենի հետ մեկտեղ այս լեզուն իր մեջ ներառում է տարբեր այլ առանձնահատկություններ․

  • Ունի հեշտ լեզվային բազա․ Իր ստանդարդ գրադարանի տարբեր header-ֆայլերում առկա են հիմնական ֆունկցիաները (մաթեմատիկական օպերացիաները, ֆայլերի ու հիշողության հետ աշխատանքը և այլն)։
  • C-ով գրված ծրագրերը հեշտությամբ կարելի է տեղափոխել մեկ այլ համակարգ, առանց հիմնային վերափոխելու ծրագրի ֆունկցիաները։
  • Առկա է տիպերի համակարգ, որը զերծ է պահում կողմնակի օպերացիաներից։
  • Կառավարում է ծրագրի հիշողությունը ցուցիչների միջոցով։
  • Թույլ է տալիս օգտագործել պրեպրոցեսսորը միատեսակ օպերացիաները և մակրո ծրագրերը իրագործելու համար։
  • Ունի անունների տեսանելիության տեղամասեր։
  • Կարելի է ստեղծել սեփական ստրուկտուրաներ և միավորումներ, որոնք օգտվողը կարող է մանիպուլացնել։

Որոշ բացակայող հատկություններ C-ում կարելի է օգտագործել setjmp և longjmp միջոցով, ավելացնելով <setjmp.h> ֆայլը, սակայն կան նաև կողմնակի գրադարաններ (օրինակ ՝ GTK), որոնք լրացնում են C-ի հատկությունները, ավելացնելով գրաֆիկայի և այլ գործառույթների ընդլայնումները։ Նաև C-ում կարելի է ֆունկցիան կանչել հենց իր մեջից, որը առաջացնում է ֆունկցիաների ռեկուրսիա։

Կիրառությունները

[խմբագրել | խմբագրել կոդը]

C լեզվի հիման վրա ձևավորվել են բազմաթիվ ժամանակակից ծրագրավորման լեզուներ։ Օրինակ՝ Python և PHP ծրագրավորման լեզուները գրված են C-ի վրա, C++-ը հանդիսանում է C-ի ավելի բարելավված տարբերակը։ Գոյություն ունեն տարբեր C-ի կոմպիլյատորների իրացումներ, որոնցից են՝

  • GCC – բաց ծրագրային կոդով կոմպիլյատոր, որի միջոցով կոմպիլյացվում են բազմաթիվ ծրագրեր, օրինակ՝ Լինուքս օպերացիոն համակարգը։ Այն հանդես է գալիս GNU General Public License-ի ներքո։
  • Microsoft Visual C/C++ (MSVC)Մայքրոսոֆթի կողմից ստեղծված կոմպիլյատոր, հիմնված Lattice C-ի վրա, որով ստեղծվում են Windows օպերացիոն համակարգի համար ծրագրեր։
  • Borland C/C++ – Բորլանդ ընկերության C/C++ կոմպիլյատորը, որը հիմնականում հանդիսանում էր MSVC–ի հակառակորդը։ 2006թ․–ից այն պատկանում է CodeGear ընկերությանը, որը հետագայում միավորվել է Embarcadero ընկերությանը։
  • Intel CԻնթել ընկերության կոմպիլյատորը, որով կարելի է ստեղծել 80386 տեսակի Ինտելի պրոցեսսորների հիման վրա ծրագրեր։
  • K&R C – առաջին և օրիգինալ C կոմպիլյատորը։ Այն համապատասխանում է օրիգինալ C-ի ստանդարտին։
  • Watcom C/C++ – կոմմերցիալ կոմպիլյատոր, որը թողարկվել էր Վաթքոմ ընկերության կողմից։ 2003 թ․–ից այն դադարեց լինել կոմմերցիալ և բաց ծրագրային կոդով հրատարակվում է որպես Open Watcom.

և այլն

Ծանոթություններ

[խմբագրել | խմբագրել կոդը]
  1. http://www.bell-labs.com/usr/dmr/www/chist.html
  2. https://www.sitepoint.com/mime-types-complete-list/
  3. https://www.bell-labs.com/usr/dmr/www/bintro.html
  4. http://cm.bell-labs.com/cm/cs/who/dmr/chist.html
  5. «Արխիվացված պատճենը». Արխիվացված է օրիգինալից 2013 թ․ հունիսի 22-ին. Վերցված է 2010 թ․ հուլիսի 29-ին.
  6. «Արխիվացված պատճենը». Արխիվացված է օրիգինալից 2013 թ․ հունիսի 22-ին. Վերցված է 2010 թ․ հուլիսի 29-ին.
Վիքիպահեստն ունի նյութեր, որոնք վերաբերում են «Սի (ծրագրավորման լեզու)» հոդվածին։