![http://parsviva.parsaspace.com/parsviva-post-image/c++.png](http://parsviva.parsaspace.com/parsviva-post-image/c++.png)
يكي از زبانهاي سطح بالا وقديمي كه توان بسيار زيادي در پيادهسازي برنامههاي رايانهاي دارد زبانسي (C) است. بسياري از افراد اين زبان را به عنوان زبان سطح بالانميدانند و چون گاهي درك كدهاي آن كمي مشكل است آن را زباني بين سطح بالاو سطح پايين ميدانند، اما در حقيقت سي خصوصيات يك زبان سطح بالا را دارد.
سي از جملهزبانهاي بسيار قديمي است كه هم به منظور برنامهنويسيهاي سيستمي و همبراي برنامههاي كاربردي به كار ميرفته است. همچنين در بسياري از مراكزنيز به عنوان يك زبان آموزشي به كار گرفته ميشود. البته اين زبان بهمنظور تامين اهداف آموزشي طراحي نشده است. اما به دليل توان بالا و كاربردوسيع آن در امور مختلف آن را براي آموزش انتخاب ميكنند. شايد دليل ديگريكه از اين زبان به عنوان يك زبان آموزشي استفاده ميكنند اين باشد كه سيتمامي مفاهيم مربوط به يك زبان را در بر دارد و از اين نظر يك زبان كاملبه شمار ميرود.
زبان و كامپايلر
ميدانيم كه برنامههاي نوشته شده به يك زبان بايدبا استفاده از نرمافزاري به نام كامپايلر به زبان قابل فهم ماشين تبديلشود. يك زبان مستقل از كامپايلر طراحي و استانداردسازي ميشود. سپسشركتها و اشخاص مختلف با در نظر گرفتن آن استانداردها، اقدام به طراحيكامپايلر خود ميكنند. سپس براي برتري دادن محصول خود به ساير محصولات.امكانات و تسهيلاتي براي كاربران در نظر ميگيرند كه آن ديگر مربوط بهزبان نيست. براي سي هم از ابتداي پيدايش تاكنون دهها كامپايلر از سويشركتها و افراد مختلف ارائه شده است. دو شركت مايكروسافت وبورلند(Borland) از بزرگترين شركتهايي هستند كه توانمندترين وكاملترين ابزارهاي مربوط به اين زبان را از ابتدا تاكنون عرضه كردهاند.
پس ازC، زباني به نام ++C (سيپلاسپلاس) باتغييرات و افزودگيهاي بنيادي معرفي شد كه يكي از اين مفاهيم، شيءگرايياست. در حال حاضر كمتر به زبان سي برنامه نوشته ميشود و اكثر ابزارها وكامپايلرهاي جديد مربوط به زبان++C است. دو كامپايلر وIDE معروف و قدرتمندبراي اين زبان كه از طرف دو شركت مايكروسافت و بورلند ارائه شدهاند++Microsoft Visual C و ++ Buidler Borland C است.
اين ابزارهاهمچنان توسط شركتهايشان پشتيباني شده و نسخههاي جديد آنها عرضه ميشود.خوب است بدانيم كه كامپايلر يك نرمافزار كوچك است كه حجم آن معمولا كمتراز يك مگابايت است. تمام حجم اين ابزارها كه در قالب يكCD يا DVD عرضهميشوند مربوط به IDE ، ابزارها و امكاناتي است كه براي راحتي كاربرنامهنويس در نظر گرفته شده است. امروزه با استفاده از اين ابزارها، كاربرنامهنويسي بسيار ساده شده و فاصله زبانها با كاربران بسيار كم شدهاست.
ساده يا دشوار؟
C و++ C يكي از توانمندترين زبانهاي دنيا هستندكه تقريبا هر برنامهاي را ميتوان با آن نوشت. بسياري افراد اين زبان رابرادر سطح بالاي اسمبلي ميدانند و برخي از آن به عنوان زباني دشوار يادميكنند، اما حقيقت اين است كه در زبانهاي سطح بالا بهتر است از واژههايراحت و راحتتر استفاده كرد بويژه با عرضه ابزارهاي پيشرفته امروزي،ميتوان در عرض چند دقيقه برنامههايي توليد كرد كه اگر قرار بود به روشقديمي در 10 سال پيش با ابزارهاي آن زمان نوشته شود شايد ماهها به طولميانجاميد و شايد بخوبي برنامه امروز هم نميشد.
كاربردها
اگر C و ++ Cيك زبان كامل و توانمند هستند پسچرا همه به سراغ اين زبان نميروند و چرا زبانهاي ديگر معرفي ميشوند؟واقعيت آن است كه هر زبان با در نظر گرفتن يك هدف اصلي طراحي ميشود.بنابراين بهخوبي پاسخگوي نيازهاي آن هدف خواهد بود.
ضمن آنكهممكن است بتواند اهداف ديگر را نيز تامين كند. هدف طراحيC++,C بوجود آوردنيك زبان همه منظوره بوده است. شايد زبانهايي باشند كه بسياري از كارها راخيلي راحتتر از C انجام ميدهند. بهطوريكه يك خط كه در آن زبان معادل100 خط كه در زبان C باشد. اما ممكن است آن زبان در انجام برخي امورناتوان باشد. در حالي كه در C آن امور هم قابل انجام است. بنابراين بهتراست هدف از انتخاب زبان و هدف از برنامهنويسي از پيش تعيين شود.
معمولابراي اشخاصي كه ميخواهند برنامههاي سيستمي بنويسند و يا برايسختافزارها نرمافزارها راهانداز طراحي كنند. انتخاب اول C است. (توجهداشته باشيد كه C++ هم كليه تواناييهاي C را در بردارد) جالب استبدانيم كه سيستم عاملهايي نظير يونيكس (UNIX) و لينكس به زبان C نوشتهشدهاند و اين بيانگر توانايي اين زبان در نوشتن برنامههاي سيستمي است.البته بايد توجه داشت كه اين مساله بدان معنا نيست كه ساير زبانها در اينكار ناتوانند و يا C از ساير زبانها قويتر است. قدرت يك زبان را بايدبه دور از تعصب، در توانايي انجام هدفي بيان كرد كه براي آن در نظر گرفتهشده است.
زباني با وسعت بالاي كاربرد
كساني كه فكر ميكنند در آينده قرار است هرگونهبرنامهاي در هر زمينهاي بنويسند، برايشان C يا C++ گزينه مناسبي است.البته شايد در برخي زمينهها كارشان مشكلتر از كسي باشد كه با زباني مختصآن زمينه برنامه مينويسد. اما ميداند كه با تسلط كافي به آن ميتواندبرنامههاي لازم را بنويسدC . زباني است كه در مقياس كوچك ميتوان با آنبه طراحي يك نرمافزار پخش فيلم و موسيقي و در مقياسهاي بزرگ به طراحيسيستم عامل و حتي يك زبان سطح بالاي ديگر پرداخت.
اشخاصي كهميخواهند براي ميكروكنترلرها و ريز پردازندههاي ديگر غير ازپردازندههاي رايانههاي شخصي، برنامه بنويسند، ميتوانند با اين زبان ازعهده چنين كاري نيز بربيايند. راه ديگر براي اين اشخاص، دانستن زباناسمبلي مخصوص همان ريزپردازنده است كه اين كار در صورت وجود يك كامپايلرمناسب C براي آن ريز پردازنده، به هيچ عنوان توصيه نميشود (مگر در مواردخاص) در ساخت روبوتها، سيستم عاملهاي كوچك مربوط به دستگاههايالكترونيكي مثل يخچالهاي پيشرفته امروزي، خودروهاي جديد، برخي سازهايموسيقي الكترونيكي و حتي در برخي موشكها ميتوان از قابليتها وتواناييهاي زبان C بهره گرفت.
برنامههاي نوشته شده بهزبانC++,C سرعت بسيار خوبي دارند و تا حد زيادي به اسمبلي نزديك هستند.اما نميتوان انتظار داشت كه با آن هر برنامهاي به سرعت نوشته شود. گاهينوشتن برخي برنامهها با اين زبان هم به زمان بيشتري نياز دارد و هم درصورت بروز اشكال در برنامه، اشكالزدايي آن دشوارتر خواهد بود.
براينوشتن برنامههاي محاسباتي و رياضي نيز C زبان مناسبي است. افرادي كه درزمينههاي رياضي و محاسبات و شبيهسازي فعاليت داشتهاند حتما بانرمافزار قدرتمندMatlab آشنايي دارند. اين نرمافزار تمامي توانايي وقدرت خود را از C دارد زيرا اين ابزار با C طراحي شده است. اما حقيقتااگر قرار باشد هر يك از اموري را كه باMatlab انجام ميشود، مستقيما باC انجام دهيم، كاري بسيار طاقت فرسا خواهد بود.