Հարգելի՛ ընթերցող։
Այս իմ զրույցների շարքում ես ուզում եմ խոսել C ծրագրավորման լեզվի մասին անպես, ինչպես կուզենայի, որ ինձ հետ խոսեին այն ժամանակ, երբ ես դեռ նոր էի ծրագրավորման մասնագիտական կրթություն ստանում։ Իմ զրույցները նախատեսել եմ հատկապես սկսնակ ծրագրավորողների համար և նպատակ ունեմ, հնարավորությանս սահմաններում, լրացնել ծրագրավորման տեխնիկային վերաբերող հայալեզու գրականության պակասը։ Բնականաբար, իմ նպատակը C ծրագրավորման լեզուն ամբողջությամբ նկարագրելը չէ, և իմ զրույցները չեն կարող C լեզվի տեղեկատուի դեր կատարել։ Ես պատմում եմ ամենաանհրաժեշտի մասին, երբեմն նաև այնպիսի բաների մասին, որոնք քիչ են հանդիպում, կամ չեն հանդիպում դասագրքերում։
Ծրագրավորման C լեզուն զրույցներիս թեմա ընտրելու պատճառներից ու նախադրյալներից մեկը նրա պահանջված ու արդիկան լինելն է։ Երկար ժամանակ է, որ ես հետևում եմ ծրագրավորման լեզուների տարածվածության TIOBE Index վարկանիշին, որն ամեն ամիս ինչ-որ չափանիշերով որոշում և հրապարակում է այն 20 (ապա 50) ծրագրավորման լեզուների աղյուսակը, որոնց մասին ամենաշատն են հարցումներ կատարվել որոնողական համակարգերում։ Վերջին 15 տարիներին այդ վարկանիշում C լեզուն զբաղեցնում է կա՛մ առաջին, կա՛մ երկրորդ հորիզոնականը։
Պատճառներից մյուսը C լեզվի քրականությունն է, որն, անկեղծ ասած, ինձ այնքան էլ դուր չի գալիս։ Բայց այսօր լայն տարածում գտած լեզուներից շատերը, ինչպիսիք են, օրինակ, Java, Objective-C, Go և այլ, որպես հիմք են ընդունել C լեզվի քերականությունը։ Եվ չնայած այն բանին, որ ամեն մի ծրագրավորման լեզու ունի իր ինքնուրույն գաղափարները, C լեզվի ուսումնասիրությունն ինչ-որ չափով կհեշտացնի նման քերականությամբ այլ լեզուներ սովորելը։
C-ն կոմպակտ, լավ ուսումնասիրված, հարուստ գրադարաններով ծրագրավորման լեզու է, նրա մասին գրվել և գրվում են բազմաթիվ հաջող գրքեր (ցավոք, դրանց մեջ չկան հայերենով գրված կամ հայերեն թարգմանված օրինակներ)։ Ես կաշխատեմ զրույցների տեքստում հղումներ դնել այն աղբյուրներին, որոնցում տվյալ թեման ավելի հետաքրքիր կամ ավելի մանրամասն է ներկայացված։
Բոլոր զրույցները պարունակում են օրինակներ։ Ավելին, զրույցները կառուցված են օրինակների վրա և այդ բոլոր օրինակներն ամբողջական, աշխատող ծրագրեր են։ Ես փորձում եմ անել այնպես, որ ընթերցողի մոտ հարցեր չմնան, թե ինչպես աշխատեց, կամ ինչի համար է գրված ծրագիր այս կամ այն կտորը։ Հընթացս ես պատմում եմ նաև օգտագործված օժանդակ գրադարաննների, գործիքների կամ մեթոդների մասին։
Իմ զրույցներում ես օգտագործում եմ Ubuntu GNU/Linux օպերացիոն համակարգը և նրանում մատչելի գործիքները՝ bash հրամանային ինտերպրետատորը, GNU Emacs տեքստային խմբագրիչը, C ծրագրավորման լեզվի calng կամ gcc կոմպիլյատորները և ծրագրերի շտկման gdb և ddd գործիքները։ Ի դեպ, հետաքրքիր ու օգտակար հնարավորություններ է առաջարկում tutorialspoint կայքը։ Այստեղ հնարավոր է հենց բրաուզերի մեջ աշխատեցնել օրինակները և տեսնել արդյունքները (առանց կոմպյուտերի մեջ ինչ-որ ծրագրեր տեղադրելու)։