C (პროგრამირება)/რატომ C?: განსხვავება გადახედვებს შორის

შიგთავსი ამოიშალა შიგთავსი დაემატა
ახალი გვერდი: <pre>C პროგრამირება</pre> = რატომ ისწავლო [http://ka.wikipedia.org/wiki/C_(პროგრამირები...
 
ხაზი 2:
 
 
C ყველაზე ხშირად გამოიყენება ოპერაციული სისტემების პროგრამირებისათვის. პირველი ოპერაციული სისტემა რომელიც დაიწერა C-ში, იყო [[w:იუნიქსი|იუნიქსი]] , შემდეგ კი [[w:ვინდოუსი|ვინდოუსი]],[[w:მაკ ოს X|მაკ ოს X]] და [[w:ლინუქსი|ლინუქსი]].
= რატომ ისწავლო [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]? =
 
C გამოიყენება არა მარტო ოპერაციული სისტემების პროგრამირებისათვის, არამედ დღეს-დღეობით არსებული თითქმის ყველა მაღალი-დონის ენებისათვის, მაგალითად:[[w:პერლი|პერლი]], [[w:PHP|PHP]], [[w:პითონი|პითონი]] და [[w:რუბი_(პროგრამირების_ენა)|რუბი]].
 
ანალოგიურად, ვთქვათ რომ თქვენ უნდა ისწავლოთ ესპანური, იტალიური, ფრანგული, ან პორტოგალიური. გგონიათ რომ ლათინურის ცოდნა დაგეხმარებათ? ისევე როგორც ლათინური იყო ამ ყველა ენის ფუძე, C-ის ცოდნა თქვენ გაძლევთ შესაძლებლობას რომ გაერკვიოთ და შეაფასოთ მთელი რიგი პროგრამირების ენების ჯგუფი რომლებიც შექმნილნი არიან C-ს ტრადიციების მიხედვით. C-ს ცოდნა ხსნის ნებისმიერი სხვა პროგრამირების ენებისკენ მიმავალ გზას.
[http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C] არის ყველაზე ხშირად ნახმარი ენა ოპერაციული სისტემების პროგრამირებისათვის.
[http://ka.wikipedia.org/wiki/იუნიქსი იუნიქსი] იყო პირველი ოპერაციული სისტემა რომელიც დაიწერა [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-თი.
შემდეგ კი [http://ka.wikipedia.org/wiki/ვინდოუსი ვინდოუსი], [http://ka.wikipedia.org/wiki/მაკ_ოს_X მაკ ოს X], და [http://ka.wikipedia.org/wiki/GNU GNU]/[http://ka.wikipedia.org/wiki/ლინუქსი ლინუქსი] იყვნენ დაწერილი [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-თი.
 
[http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C] არა მარტი ოპერაციული სისტემების ენაა, ის არის ავანგარდი ლამის ყველა პოპულარული მაღალ-დონიანი ენების რომლებიც
დღევანდელ დყეს არსებობენ. ფაქტი არის ის რომ, [http://ka.wikipedia.org/wiki/პერლი პერლი], [http://ka.wikipedia.org/wiki/PHP PHP]-ი, [http://ka.wikipedia.org/wiki/პითონი პითონი], და [http://ka.wikipedia.org/wiki/რუბი_(პროგრამირების_ენა) რუბი] არიან დაწერილი [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-თი.
 
== რატომ C და არა ენა assembler? ==
ანალოგიურად, ვთქვათ რომ თქვენ უნდა ისწავლოთ ესპანური, იტალიური, ფრანგული, ან პორტოგალიური.
გგონიათ რომ ლათინურის წოდნა დაგეხმარებათ? ისევე როგორც ლათინური იყი ამ ყველა ენების ფუძე,
C-ის წოდნა თქვენ გაძლევთ შესაძლებლობის რომ გაერკვიოთ და შეაფასოთ მთელი ერთი პროგრამირებსი ენების ჯგუფი რომლებიც
არიან შექმნილნი [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ის ტრადიციების მიხედვით. [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ის წოდნა თქვენ მიგანიჭებთ თავისუფლებას.
 
 
იმიტომ რომ assembler-ის მეშვეობით დიდი პროგრამების წერა რთულია, ამასთან რთულია მისი კოდის კითხვა, ან ლოგიკურად ახსნა. მითუმეტეს, სხვადასხვა [[w:მიკროპროცესორი|მიკროპროცესორები]] დაპროგრამებულნი არიან assembler-ის სხვადასხვა ენაზე და ერთ-ერთი მათგანის შერჩევა და სწავლა შემთხვევითია. ფაქტია რომ, C-ს ერთ-ერთი ძალა არის მისი უნივერსალურობა და პორტატულობა მრავალი კომპიუტერის არქიტეკტურებზე.
 
== რატომ [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C], და არა ენაJava, Basic, assembler-იPerl? ==
 
 
უმთავრესად მეხსიერების ასიგნირების გამო. სხვა პროგრამირების ენებისაგან განსხვავებით, C პროგრამისტს საშუალებას აძლევს, ასემბლირების ენის მიხედვით მიმართოს მეხსიერებას მისთვის სასურველი გზით. ენები, როგორიცაა [[w:ჯავა_(პროგრამირების_ენა)|Java]] და [[w:პერლი|Perl]], პროგრამისტს თავიდან აშორებს ზრუნვას მეხსიერების განაწილებასა და მიმთითებლებზე. ეს ჩვეულებრივ სასარგებლოა. ძალიან მოსაბეზრებელია მეხსიერების სათითაოდ განაწილება, როდესაც იქმნება მაღალი დონის პროგრამა, მაგ.: კვარტალური შემოსავლის ანგარიში. ზოგჯერ პროგრამა იწერება დაბალი დონის კოდით - აქ მეხსიერების მართვა კრიტიკული საქმეა და ეს ჯავაში არ ხდება.ამ შემთხვევაში C არის სწრაფად კომპილირებადი და ეფექტური.
იმიტომ რომ assembler-ი, მაინც თუ ძალიან რთულია, მისი მეშვეობით დიდი პროგრამების პროგრამირემა ძნელია, თან ძნელია
მისი კოდის კითხვა ან მისი კოდის ლოგიკურად ახსნა.
მითუმეტეს, სხვა და სხვა [http://ka.wikipedia.org/wiki/მიკროპროცესორი მიკროპროცესორები] არიან პროგრამირებულნი სხვა და სხვა assembler-ის ენის მეშვეობით და მაინც და მაინც ერთი assembler-ის
შერჩევა და სწავლა საკმაოდ შემთხვევითია.
ფაქტი ის არის რომ, [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ის ერთ ერთი ძალა არის მისი უნივერსალურობა და პორტატიულობა მრავალ კომპიუტერების არქიტეკტურებზე.
 
როგორც დომინოები, მომავალი პროგრამები მიედევნებიან თავიანთი წინაპრების მიმართულებებს.[http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-თი დაწერილ ოპერაციულ სისტემებს ყოველთვის ჰქონიათ თავიანთი სისტემური ბიბლიოთეკები აგრეთვე დაწერილი [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ს მეშვეობით.
 
 
 
== რატომ [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C], და არა [http://ka.wikipedia.org/wiki/ჯავა_(პროგრამირების_ენა) ჯავა] ან Basic-ი ან [http://ka.wikipedia.org/wiki/პერლი პერლი]? ==
 
 
Mostly because of memory allocation. სხვა პროგრამირების ენებთან განსხვავებით, [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ე აძლევს საშუალებას პროგრამისტს რომ მოიხმაროს ოპერატიული
მერხსიერება როგორც იმიას შეეძლება assembler-ით.
ენები როგორიც არიან [http://ka.wikipedia.org/wiki/ჯავა_(პროგრამირების_ენა) ჯავა] და [http://ka.wikipedia.org/wiki/პერლი პერლი] პროგრამისტს თავიდან აშორებს ზრუნვას მეხსიერების განაწილებაზე და ცვლადების მიმთითებლებზე.
ეს ჩვეულებრივათ კარგი რამეა. ასე თუ ისე მოსაბეზრებელია მეხსიერების განაწილების განხილვა როცა ქმნით პროგრამებს როგორც სამთვიური
შემოსავლის მოანგარიშეს.
 
მიუხედავად იმისა რომ, when dealing with low level code როგორც ოპერაციული სისტემის ნაწილი რომელიც ბაიტებისგან შედგენილ სტრინგების გადაადგილებაზე
მუშაობს და რომელიც გამოიყენება სამთვიური შემოსავლის მოანგარიშე პროგრამის მიერ რახან კომპიუტერის მეხსიერებიდან ქსელის კარტის ბუფერში გადაიტანოს ინფორმაცია რომ ის გაიგზავნოს ქსელურ პრინტერში, ასეთ შემთხვევაში მეხსიერების პირდაპირი მანიპულაცია კრიტიკული საქმეა და --
ამის ასე გაკეთება [http://ka.wikipedia.org/wiki/ჯავა_(პროგრამირების_ენა) ჯავათი] არ შეგიძლიათ. [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ე კი შეიძლება იყოს კომპილირებული სწრაფ და ეფეკტურ პროგრამად.
 
გვიკვირდეს რომ [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ე ასეთი პოპულალურია?
 
როგორც დომინოები, მომავალი პროგრამები მიედევნებიან თავიანთი წინაპრების მიმართულებებს.
[http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-თი დაწერილ ოპერაციულ სისტემებს ყოველთვის ჰქონიათ თავიანთი სისტემური ბიბლიოთეკები აგრეთვე დაწერილი [http://ka.wikipedia.org/wiki/C_(პროგრამირების_ენა) C]-ს მეშვეობით.
ეს სისტემური ბიბლიოთეკები არიან თავიანთ ჯერად გამოყელნებულნი მაღალ-დონიანი ბიბლიოთეკების შექმნისათვის (როგორც [http://ka.wikipedia.org/wiki/OpenGL OpenGL-ი], ან [http://ka.wikipedia.org/wiki/GTK GTK-ი]),
და ამ ბიბლიოთეკების შემქმელნი ხშირად წყვიტავენ იმ ენის გამოყენებას რომელიც იყო ნახმარი იმ სისტემური ბიბლიოთეკების დასაწერათ.