زبان C و Cpp

آموزش زبان C بخش اول: معرفی و شناخت C

getting-started-wit-c-programming-part-one-introduce-digispark
نوشته شده توسط فرهود جعفری

در این عصر مدرن، ما به طور منظم شاهد تولد فناوری های شگفت انگیزی هستیم و در پوشش آنها لذت و تجمل زائدالوصفی را تجربه می کنیم که در چند دهه پیش حتی تصور آنها نیز برایمان غیرممکن می نمود. مثلاً خودروهای خودران در خیابانهای شهرها در آستانه تبدیل شدن به یک واقعیت انکارناپذیر هستند. روزی نیست که به شب برسانیم و خبری جدید در خصوص محاسبات کوانتوم، هوش مصنوعی، بلاک چین و ارزهای دیجیتال و یا حتی برنامه های بلند پروازانه بشر برای سفر یا اقامت در سیارات دیگر را نخوانیم یا نشنویم.

از دیگر سو پیشرفتهای روز افزون شرکت های تولید کننده بردهای توسعه ای همچون Nano Jetson و یا Pi Raspberry ما را بر آن می دارد تا به زبانی مشترک و قابل فهم در کلیه تکنولوژی های ذکر شده دست پیدا کرد. زبانی که همچون خون در رگهای این پیکره می گردد و به آن جان می دهد. در این سری آموزش ها قصد داریم تا به زبان C بپردازیم. با یادگیری زبان C قادر خواهیم بود گستره وسیعی از نیازهای برنامه نویسی پروژه هایمان را پوشش دهیم. از ایجاد برنامه های ساده چند خطی بر روی یک برد مبتدی همچون آردینو گرفته تا درایور نویسی سیستم های مبتنی بر امبدد لینوکس.

 


تاریخچه زبان C


شاید از توسعه سیستم عامل یونیکس بتوان به عنوان عامل و منشأ اصلی پیدایش زبان C نام برد. دو همکار به نام های دنیس ریچی و کن تامپسون با استفاده از زبان اسمبلی بر روی سیستم های یونیکس پایه، برنامه نویسی می کردند. ولی تامپسون یک زبان برنامه نویسی جدید برای ایجاد برنامه های کاربردی برای سیستم عامل جدید خود می خواست. در اینجا بود که با ایجاد یکسری تغییرات در syntax زبان BCPL توانست زبان B را ایجاد کند اما به دلیل کندی آن و چند دلیل دیگر همچون عدم پشتیبانی از آدرس پذیری بایت نتوانست توفیق مورد نظر را کسب کند. در سال ١٩٧٢ دنیس ریچی شروع به بهبود زبان B نمود که منجر به ایجاد زبانی جدید به نام C شد!! حال دیگر وقت آن بود که C جای خود را در هسته یونیکس (سیستم عامل) باز کند و بدین سان کامپایلر C و برخی برنامه های کاربردی ساخته شده با آن در یونیکس جای گرفتند.

در اواخر دهه ٧٠میلادی افزایش قابل توجه محبوبیت زبان C باعث شد تا این زبان در طیف گسترده ای از frame Main ها، مینی کامپیوترها و حتی میکرو رایانه ها مانند Pc IBM پیاده سازی شده و به عبارتی دیگر جای خود را باز کند. در سال ١٩٨٣ موسسه استاندارد آمریکا(ANSI (بر آن شد تا کمیته ای را جهت تبیین استاندارهای زبان C به نام X3J11 ایجاد کند. C ANSI حاصل این استاندارد سازی است.

 


کاربردهای زبان C


زبان C کاربرد بسیار وسیعی دارد، از توسعه برنامه های سیستمی در انواع سیستم عامل ها گرفته تا برنامه نویسی سیستم های امبدد. وقتی که کد C را با هدف داشتن قابلیت متحرک بودن می نویسید، می تواند برای مقاصد بسیاری استفاده گردد. C با کمک کد های خاص هر سیستم می تواند به سخت افزار دسترسی داشته باشد و از طرفی اتلاف منابع آن در time-run بسیار پایین است. پس برنامه نویسی مرتبط با سخت افزار یکی از قابلیت های بسیار مهم و پایه ای زبان C محسوب می شود.

بسیاری از کامپایلرها، کتابخانه ها و مفسرهای سایر زبان های برنامه نویسی اغلب توسط C پیاده سازی می شوند. از آنجاییکه لایه جداکننده پیاده سازی C و سخت افزار بسیار نازک است، پیاده سازی انواع الگوریتم ها و ساختمان داده توسط C سربار کمی روی سخت افزار ایجاد میکند که این خود معیاری بسیار مهم برای انتخاب یک زبان برای تولید برنامه های محاسباتی است. به عنوان مثال برنامه هایی همچون MATLAB و Mathematica با زبان C نوشته شده اند.

 

توسعه سیستم های امبدد و همچنین برنامه نویسی میکروکنترلر ها نیز از مواهب زبان C بی نصیب نمانده اند و این زبان یکی از اصلی و عمده ترین زبان های مورد استفاده در ساخت و پیاده سازی برنامه های امبدد و میکروکنترلر های AVR و ARM به شمار می آید. C دارای کتابخانه های داخلی بسیار زیادی است که فرآیند برنامه نویسی را بسیار ساده و در عین حال خلاصه تر می کند و برای پیاده سازی آنها نیازی نیست تا خودتان دست به کد شوید.

در این نوشتار با تاریخچه پیدایش زبان C آشنا شدیم که خود از تغییرات ساختاری زبانهایی همچون BCPL و B به وجود آمده است و با توجه به اینکه در نگارش هسته سیستم عامل های یونیکس پایه استفاده شده است از همان ابتدا خود را به عنوان یک زبان با قابلیت های سیستمی و سطح پایین نشان داد. همچنین به کاربردهای وسیع آن پرداخته شد که از پایین ترین سطح سیستمی تا بالاترین سطح یعنی ایجاد برنامه های وب و امبدد و میکروکنترلر را در بر می گیرد.

 


لوازم مورد نیاز


فعلا هیچی! در بخش های بعدی بردهای مناسب را معرفی خواهیم کرد.

 

چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد می‌توانید از همین طریق اطلاع رسانی کنید.

 

درباره نویسنده

فرهود جعفری

When did Noah build the ark? Before the rain, before the RAIN...

تبادل نظر و رفع عیب با ثبت دیدگاه