ویژگی های زبان برنامه نویسی سی
علمی و تکنولوژی › نرم افزار
- 97/09/17معرفی زبان برنامه نویسی سی
زبان برنامهنویسی C صرفاً به پروژههای قدیمی برنمیگردد و امروزه شاهد پروژههای وسیع و مهمی هستیم که علیرغم وجود زبانهای برنامهنویسی سطح بالای بسیاری که در میان توسعهدهندگان از محبوبت زیادی نیز برخوردارند، باز هم با زبان C نوشته میشوند!
سورسکد سیستمعامل یونیکس در سال ۱۹۷۲ با این زبان نوشته شد. در واقع، زبان برنامهنویسی C ابداع شد تا کِرنِل سیستمعامل یونیکس از زبان Assembly به یک زبان سطح بالاتر با تعداد خطوط کد کمتری بازنویسی شود.
پیشرفت دیتابیس اوراکل در سال ۱۹۷۷ آغاز شد و در سال ۱۹۸۳ سورسکد این دیتابیس از زبان Assembly به زبان C تغییر پیدا کرد و از آن وقت به بعد به عنوان یکی از معروفترین و پرطرفدارترین دیتابیسهای دنیای نرمافزار مبدل شد (نیاز به توضیح است که رَدپای زبان C در دیتابیسهای مشهور دنیا همچون MySQL ،MS SQL Server و PostgreSQL هم دیده میشود.)
در سال ۱۹۸۵، اولین نسخهٔ ویندوز ریلیس شد و اگرچه که سورسکد سیستمعامل ویندوز در دسترس عموم قرار ندارد، اما گفته میشود که بخش قابلتوجهی از این سیستمعامل با زبان C نوشته شده است. همچنین توسعهٔ کِرنِل لینوکس در سال ۱۹۹۱ اغاز شد که این هسته با زبان برنامهنویسی C نوشته شد و در سال ۱۹۹۲، کِرنِل لینوکس تحت مجوز GNU عرضه شد و این هسته به عنوان بخشی از سیستمعامل گنو/لینوکس نیز مورد استفاده قرار گرفت.
کاربرد زبان C در طراحی سیستم عامل ها
بخش قابلتوجهی از سیستمعامل ویندوز با زبان C نوشته شده است، تقریباً میتوان گفت که تمامی اَبَرکامپیوترهای دنیا بر پایهٔ لینوکس هستند که بخش قابلتوجهی از آن نیز با زبان C نوشته شده است و مقدار قابلتوجهی از کِرنِل OS X نیز با زبان C نوشته شده است. در زمینهٔ ابزارهای هوشمندی همچون موبایل و تبلت هم ما نیازمند زبان C هستیم چرا که بخشهایی از کِرنِل سیستمعاملهای iOS ،Android و Windows Phone با زبان C نوشته شده است.
فیلمها و انیمیشنهای سهبُعدی نیز با نرمافزارهایی درست میشوند که همگی با زبانهای C و ++C نوشته شدهاند. نرمافزارهای گرافیکی و انیمیشنسازی جزو اپلیکیشنهایی هستند که پرفورمنس در آنها از اهمیت بسزایی برخوردار است چرا که این دست نرمافزارها باید در کسری از ثانیه حجم قابلتوجهی از دادهها را رِندر کنند و شاید به همین علت هم باشد که از زبانهایی مانند C و ++C در توسعهٔ آنها استفاده میشود (همچنین بخش اصلی بسیاری از گیمها با زبانهای C و ++C توسعه مییابد.)
کاربرد زبان C در سیستم های اِمبدد
خیلی از سیستمهای به اصطلاح Embedded مثل مایکروفر، یخچال، سیستمهای صوتی و تصویری، ساعت دیجیتال، سیستم ضد قفل خودرو، کروز کنترل، ایربگ و غیره هستند که کِرنِل آنها با استفاده از زبان C نوشته شده است. همه این دیوایسها، کامپیوترهای کوچکی دارند که داخل آنها پردازندههای کوچکی تعبیه شده که روی آنها یک نرمافزار نصب است که عمدتاً با زبان C نوشته شده است.
چرا کاربرد زبان C بسیار زیاد است
در پاسخ به این سوال که چرا کماکان از زبان برنامهنویسی C استفاده میشود، می شود گفت که امروزه زبانهای برنامهنویسی مختلفی وجود دارند که دست دولوپرها را به مراتب بازتر از زبانی همچون سی میگذارند و بسیاری از این زبانهای سطح بالا دارای لایبرریهای از قبل نوشته شدهای هستند که کار برنامهنویس را تا حدود قابلتوجهی راحت میسازند اما به نظر میرسد یکسری علت منطقی وجود دارد که زبان برنامهنویسی سی کماکان قابلاستفاده است که برخی از مهمترین آنها عبارتند از:
پرتابل بودن
: زبان برنامهنویسی C را به نوعی میتوان نسخهای پرتابل (قابلحمل) از زبان برنامهنویسی Assembly قلمداد کرد. این زبان ارتباط تنگاتنگی با زبان ماشین (صفر و یک) دارا است و خیلی از پردازندهها به خوبی میتوانند با کدهای نوشتهشده با این زبان ارتباط برقرار سازند.
مادر سایر زبان ها:
زبان های تفسیری مثل پایتون، روبی و پیاچپی با استفاده از زبان سی طراحی شدهاند و از همین روی میتوان گفت که کامپایلرها، لایبرریها و مفسرهای زیادی از دیگر زبانها بر پایهٔ این زبان هستند. به غیر از این این، از آنجا که زبان برنامهنویسی سی مادر بسیاری از زبانهای سطح بالای دیگر مانند جاوا، سیپلاسپلاس، پیاچپی، سیشارپ، روبی و … قلمداد میشود، از این زبان میتوان به عنوان یک زبان مشترک مابین توسعهدهندگان یاد کرد که با استفاده از آن به راحتی خواهند توانست به تبادل ایدههای خود بپردازند.
استفادهٔ بهینه از حافظه:
یکی از علت هایی که از زبان برنامهنویسی C در طراحی سیستمعاملها استفاده میشود این است که این زبان ارتباط خوبی با مموری سیستم دارا است به طوری که این امکان را به دولوپر میدهد تا به خوبی بتواند کنترل حافظهٔ سیستم را در دست گیرد. یکی از با اهمیت ترین محدودیتهایی که سیستمهای Embedded با آن دست و پنجه نرم میکنند، وجود حافظهٔ محدود است برای این که مدیریت حافظه در این نوع سیستمها به بهینهترین شکل ممکن از اهمیت بسزایی برخوردار است و ساختاری که C دارا است، این زبان را برای اینگونه سیستمها به یکی از بهترین کاندیداها مبدل میسازد.